Find a file
2026-07-26 07:17:18 +08:00
.github feat(ci): automate stable releases and Linux repositories 2026-07-26 07:17:18 +08:00
.vscode fix(dev): reduce Rust development check noise 2026-06-24 22:40:25 -04:00
default Merge branch 'sync/upstream-1.18.0' into next/2.0.0 2026-05-20 19:13:09 +08:00
docs ci(canary): configure Codex effort via secret 2026-07-24 23:34:09 -04:00
fastools refactor(rust): move Tauri host crate into workspace crates 2026-07-02 15:30:20 -04:00
nix feat(nix): add native Linux flake packaging 2026-07-26 07:17:14 +08:00
scripts feat(ci): automate stable releases and Linux repositories 2026-07-26 07:17:18 +08:00
src feat(update): add Canary channel and release pipeline #146 2026-07-24 21:19:23 -04:00
src-tauri fix(ci): prevent Canary portable artifact conflicts and cache Gradle builds 2026-07-25 00:10:54 -04:00
tests feat(ci): automate stable releases and Linux repositories 2026-07-26 07:17:18 +08:00
.gitattributes git: add .gitattributes 2026-03-11 01:09:44 -04:00
.gitignore feat(update): add Canary channel and release pipeline #146 2026-07-24 21:19:23 -04:00
.taurignore perf: package size optimization 2026-02-24 10:42:10 +08:00
AGENTS.md docs: codify project philosophy and relocate agent guidelines 2026-07-18 18:43:19 -04:00
CONTRIBUTING.md docs: codify project philosophy and relocate agent guidelines 2026-07-18 18:43:19 -04:00
ExtensionDEV.md feat (api): Add mobile layout API 2026-04-05 23:20:02 -04:00
flake.lock feat(nix): add native Linux flake packaging 2026-07-26 07:17:14 +08:00
flake.nix feat(nix): add native Linux flake packaging 2026-07-26 07:17:14 +08:00
LICENSE Initial commit 2025-04-17 21:13:08 +08:00
package.json fix(test): build frontend before contract checks 2026-07-23 16:12:54 -04:00
pnpm-lock.yaml feat(chat): add opt-in ChatSurface DOM virtualization 2026-07-22 20:00:03 -04:00
pnpm-workspace.yaml feat(frontend): sync SillyTavern 1.18 baseline 2026-05-13 23:49:06 +08:00
README.md feat(update): add Canary channel and release pipeline #146 2026-07-24 21:19:23 -04:00
README_EN.md feat(update): add Canary channel and release pipeline #146 2026-07-24 21:19:23 -04:00
rspack.config.js fix(build): harden Tauri hooks and Rust quality gates #137 2026-07-17 19:04:06 -04:00
tsconfig.host.json Refactoring (Frontend): Standardized frontend refactoring, incorporating code contracts. 2026-03-11 19:51:17 -04:00

TauriTavern

TauriTavern

SillyTavern, as a native app — desktop & mobile, out of the box

简体中文 · English

Downloads · Docs · Releases · Issues

Release License Stars Platforms
Telegram Discord Issues Canary

Download

⬇ Download TauriTavern

Auto-detects your device · one click to the latest stable build

Windows macOS Linux Android iOS TestFlight

All platforms · GitHub Releases

Tip

iOS: install via the public TestFlight beta. It requires iOS 16 or later. TestFlight builds are subject to Apple's TestFlight rules and have usage restrictions.

Windows portable: requires the WebView2 runtime on the system.

What is TauriTavern

TauriTavern ports SillyTavern into a true native app: the frontend keeps the full upstream experience (synced to 1.18.0), while the backend is rebuilt from Node.js into Rust (Tauri v2).

No Node.js to install, no command line — just download and run. Your character cards, chats, presets, world info, and frontend extensions all stay compatible with SillyTavern.

Note: TauriTavern is an independently maintained open-source project, not an official SillyTavern client. TauriTavern is free and open source under the AGPL-3.0 license. Please review the license terms before use.

Highlights

  • 🖥️ Five native platforms: Windows, macOS, Linux, Android, and iOS — one experience everywhere
  • 🎭 Full SillyTavern experience: frontend synced to upstream 1.18.0, with fully compatible data formats and directory layout
  • 🧩 Frontend extension ecosystem: built-in native Git — install, update, and switch branches right in the UI (Node-only backend plugins are not supported)
  • 🔄 Built-in multi-device sync: encrypted LAN pairing, or automatic upload via the remote TT-Sync v2
  • 🤖 Agent framework: tool calling, Skills, sub-agents, and a run timeline; development is ongoing
  • 📦 One-click migration: SillyTavern export scripts + in-app import for a smooth move
  • ⚡ Performance engineering: phased startup and windowed chat loading keep even very long chats smooth
  • 🔒 Your data, yours: everything stays on your device, with an optional portable mode

Screenshots

TauriTavern on desktop and mobile

Architecture at a Glance

The Rust backend is a Clean Architecture Cargo workspace (src-tauri/crates/):

  • tauritavern: Tauri host, command layer, and composition root
  • tt-application · tt-ports · tt-domain · tt-contracts: use cases, ports, domain models, and cross-crate contracts
  • tt-adapter-*: concrete storage, HTTP, media, sync, extension, and tokenization implementations

The frontend is upstream SillyTavern plus a modular Tauri injection layer (src/tauri/main/), talking to the Rust backend through the window.__TAURITAVERN__ platform ABI. See docs/BackendStructure.md and docs/FrontendGuide.md for details.

🛠 Development (prerequisites · common commands · Tauri Pilot · portable builds · FasTools)

Prerequisites: Rust stable (edition 2024) · Node.js 20.19.x or 22.12+ · pnpm · Tauri CLI

git clone https://github.com/Darkatse/TauriTavern.git
cd TauriTavern
pnpm install

Common commands:

pnpm run check         # frontend guardrails/types/contracts + Rust dev check
pnpm run web:build     # build frontend bundles (Rspack)
pnpm run tauri:dev     # desktop dev mode
pnpm run tauri:build   # build desktop installers
pnpm run android:dev   # Android dev mode
pnpm run ios:dev       # iOS dev mode

Tauri Pilot (UI development with AI agents)

The project already includes the development-only Tauri Pilot plugin and capability. It lets an AI agent inspect and operate the desktop WebView through accessibility snapshots. The standard development and release commands do not enable it.

cargo install tauri-pilot-cli  # only needed once
pnpm run tauri:dev:pilot

After the app starts, use another terminal for the basic workflow:

tauri-pilot ping
tauri-pilot snapshot -i
tauri-pilot click @e3          # use a ref from the current snapshot
tauri-pilot diff -i
tauri-pilot logs --level error

Take a snapshot before interacting and perform one action at a time. Use wait after asynchronous updates and prefer assert for verification. An MCP-capable agent can register tauri-pilot mcp as a stdio server.

Portable builds: pnpm run tauri:build:portable (outputs to release/); force portable runtime with TAURITAVERN_RUNTIME_MODE=portable or a portable.flag file.

FasTools: the recommended toolkit for development and deployment debugging. Build with pnpm run fastools:build, run with pnpm run fastools:run.

Platform details: docs/AndroidDevelopment.md and docs/iOSDevelopment.md.

Documentation

Contributing

Issues and PRs are welcome! Please read CONTRIBUTING.md first, target the dev branch unless it is an urgent fix.

Acknowledgements & License

Built on SillyTavern and Tauri, with thanks to Cocktail, Tavern-Helper, LittleWhiteBox, and MikTik.

Released under AGPL-3.0 (same license family as SillyTavern).

Contributors

Made with love and care ❤️ — The TauriTavern Team