Model or dataset
Darkatse/TauriTavern avatar
Darkatse/TauriTavern

TauriTavern: SillyTavern as a Native Tauri and Rust Desktop App

The classic Sillytavern, now has been rewritten in Tauri/Rust.

1,805 stars150 forksJavaScriptAGPL-3.0

At a glance

What is it?
TauriTavern ports the SillyTavern frontend to a Tauri v2 shell with a Rust backend, so you install an app instead of running Node.js. It keeps the upstream 1.18.0 interface and data layout, and it is the wrong choice if you rely on Node-only backend plugins.
Who is it for?
Adopt TauriTavern if you want SillyTavern's interface as an installed application on desktop or mobile and you can live without Node-only backend plugins; skip it if your workflow depends on those plugins or on a server-style deployment. Before you migrate, run the SillyTavern data export script, import it in the app, and confirm your extensions still load, since the README states frontend extensions are supported but backend Node plugins are not.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What TauriTavern replaces, and for whom

SillyTavern is normally a Node.js server you start from a terminal and reach through a browser. That model assumes you can install a runtime, keep a process alive, and open a local URL. TauriTavern keeps the SillyTavern frontend and swaps the process model: the README states the project ports SillyTavern into a native application, with the frontend synced to upstream 1.18.0 and the backend rebuilt in Rust on Tauri v2. The stated promise is that you do not install Node.js and do not touch a command line.

The audience follows from that. People who want character cards, chat history, presets, world books and frontend extensions to keep working, but who would rather double-click an installer on Windows, macOS, Linux, Android or iOS. The README is explicit that this is an independently maintained open source project and not an official SillyTavern client, which matters when you are deciding where to file bugs.

The Rust workspace behind the window

The repository layout shows a Cargo workspace under src-tauri/crates/ that the README describes as following Clean Architecture. The crates split into a Tauri host and composition root (tauritavern), use cases (tt-application), ports (tt-ports), domain models (tt-domain) and cross-crate contracts (tt-contracts), with concrete implementations in tt-adapter-* crates for storage, HTTP, media, sync, extensions and tokenization.

On the frontend side, the project keeps upstream SillyTavern and adds a modular injection layer under src/tauri/main/. The two halves talk over a platform ABI exposed as window.__TAURITAVERN__, which the README points to for details in docs/BackendStructure.md and docs/FrontendGuide.md. That boundary is the interesting design decision: instead of rewriting the UI, the project intercepts the calls the web frontend would normally make and routes them into Rust. It also explains the compatibility claim, because the same frontend code path is what produces the familiar interface.

The build tooling reflects the same split. package.json defines check scripts that run frontend guardrails, TypeScript checks, logging-boundary checks, Rust crate-boundary checks, contract tests and clippy, plus separate web:build via Rspack and cargo check or cargo test against src-tauri/Cargo.toml with --no-default-features. A project that ships this many boundary checks is usually one where the boundary is easy to break.

Installing TauriTavern from a package manager

The download page at tauritavern.github.io/downloads/ is the primary route, and the README also documents package managers. On Windows, the project publishes a Scoop bucket. Adding the bucket and installing the package is two commands:

powershell
scoop bucket add Darkatse https://github.com/Darkatse/Scoop-Darkatse.git
scoop install Darkatse/TauriTavern

On macOS the README gives a Homebrew cask, which installs the application bundle rather than a command line tool:

sh
brew install --cask tauritavern

On Arch Linux the package is tauritavern-bin in the AUR, maintained by a contributor according to the README, and installed through whatever AUR helper you use:

sh
yay -S tauritavern-bin

For Debian, Ubuntu, Fedora, openSUSE and NixOS the README provides a script that detects the system and picks an install method. Nix users can instead add the flake output directly to their profile:

sh
nix profile add github:Darkatse/TauriTavern#tauritavern

Flatpak is also documented, through a project-hosted remote and the com.tauritavern.client application ID:

sh
flatpak remote-add --user --if-not-exists \
  tauritavern \
  https://flatpak.tauritavern.com/tauritavern.flatpakrepo
flatpak install --user tauritavern com.tauritavern.client

After installation the first real task is migration, not configuration. The README describes a SillyTavern data export script plus in-app import, and states that character cards, chat history, presets, world books and frontend extensions are compatible. Two caveats from the same README: the Windows portable build needs the WebView2 runtime already present, and the iOS build is distributed through public TestFlight, requires iOS 16 or later, and is subject to Apple's TestFlight rules.

Canary builds and what they cost you

Alongside stable releases the project publishes a Canary channel that the README says updates daily and may be less stable. The stated reason to use it is diagnostic: if you hit a problem on stable, Canary tells you whether it is already fixed. Switching channels is a flag on the Linux installer script or a different flake reference:

sh
curl -fsSL https://raw.githubusercontent.com/Darkatse/TauriTavern/main/scripts/install-linux.sh \
  | sh -s -- --channel canary
sh
nix profile add github:Darkatse/TauriTavern/Canary#canary

The release list shows the two streams are not in lockstep. A Canary release is tagged 2026.09.09 while the stable line is at v2.2.0 from 2026-07-30, with v2.1.1 before it on 2026-06-19. If your data lives in a Canary build and you later move back to stable, nothing in the README describes a downgrade path for the data directory. That is a gap worth knowing before you opt in on a device you actually use.

Where TauriTavern does not fit

The most concrete limitation is stated in the README itself: frontend extensions are supported, upstream Node-only backend plugins are not. If your setup depends on a plugin that runs in the SillyTavern Node process rather than in the browser, the Rust backend has no place to run it. The built-in native Git support covers installing, updating and switching branches of frontend extensions, which is not the same thing.

The second constraint is architectural. TauriTavern is an application, not a server you expose. The README describes local data storage and a portable mode, plus two sync paths: encrypted pairing over the local network, or automatic upload through a remote service the README calls TT-Sync v2. If your current workflow is several browsers pointed at one SillyTavern instance on a home server, that shape is not what this project builds. You would be moving to per-device installs plus one of those two sync mechanisms, and the README does not document rollback for sync conflicts.

Finally, the licence is AGPL-3.0 and the README tells readers to read the terms before use. If you plan to redistribute a modified build, or to offer it as a network service, that is a question for your own legal review rather than something this article can settle.

How it differs from running SillyTavern itself

The honest alternative is upstream SillyTavern. It is the same interface, because TauriTavern's frontend is synced to it, and it is the reference for behaviour when the two diverge. The difference is everything around the interface. Upstream is a Node.js application you run as a server and reach through a browser; TauriTavern is a Tauri v2 binary with a Rust backend that you install per device. Upstream accepts Node backend plugins; TauriTavern's README says it does not. Upstream gives you one instance that many clients can reach; TauriTavern gives you an app with local data and its own sync layer.

That trade is not obviously in TauriTavern's favour. If you already have Node.js installed and a browser open, upstream costs you nothing to keep. TauriTavern earns its place when the runtime is the obstacle: a phone, a tablet, a laptop where you do not want to manage a Node install, or a user who will never open a terminal. The performance claims in the README, staged startup and virtual-DOM loading for long chats, are the project's own description of its engineering, and the README does not publish measurements to compare against upstream.

Maintenance, licence and upgrade cost

The repository is not archived and the last push was on 2026-09-09, so the project is being worked on now. The cadence visible in the release list is roughly monthly for stable tags with a daily Canary stream on top, and the README's architecture notes describe an Agent framework with tool calling, Skills, subagents and a runtime timeline as still evolving, which is a reasonable signal that the Rust side will keep moving.

For upgrades, the package-manager routes are the cheapest: scoop, brew, the AUR package, nix profile and flatpak all have an update command, and the Linux installer script re-run is the fallback. The cost that is not automated is the data directory. Because the project keeps SillyTavern's format and directory layout, your cards and chats are portable, but the README does not describe a downgrade path, so a Canary-to-stable move is the risky direction. Back up before channel changes.

On licensing: AGPL-3.0 is a strong copyleft licence, and the README points readers to the terms. The practical implication for most users is none, since you are running the app locally. It becomes a real question if you modify and distribute the code or run a modified version as a network service for others. Treat that as a boundary to check with your own counsel, not as advice from this article.

Editorial conclusion

Adopt TauriTavern if you want SillyTavern's interface as an installed application on desktop or mobile and you can live without Node-only backend plugins; skip it if your workflow depends on those plugins or on a server-style deployment. Before you migrate, run the SillyTavern data export script, import it in the app, and confirm your extensions still load, since the README states frontend extensions are supported but backend Node plugins are not.

Frequently asked questions

What are some alternatives to TauriTavern?

Upstream SillyTavern is the direct alternative and the reference implementation, since TauriTavern's frontend is synced to it. The difference is packaging: SillyTavern runs as a Node.js server you reach through a browser and accepts Node backend plugins, while TauriTavern is an installed Tauri v2 app with a Rust backend that the README says does not support those backend plugins.

How do I install TauriTavern on Windows, macOS or Linux?

The README documents Scoop on Windows, a Homebrew cask on macOS, and on Linux either the tauritavern-bin AUR package, the install-linux.sh script for Debian, Ubuntu, Fedora, openSUSE and NixOS, a nix profile add command, or a Flatpak remote. The download page at tauritavern.github.io/downloads/ is the primary route.

Can TauriTavern use my existing SillyTavern data and extensions?

The README states that character cards, chat history, presets, world books and frontend extensions are compatible, and that the data format and directory layout match upstream. It also provides a SillyTavern data export script plus in-app import. Upstream Node-only backend plugins are explicitly not supported.

Is there an iOS or Android build of TauriTavern?

The README lists Windows, macOS, Linux, Android and iOS as supported platforms, with per-platform downloads at tauritavern.github.io/downloads/platforms/. The iOS build is distributed through public TestFlight, requires iOS 16 or later, and is subject to Apple's TestFlight rules. The README also notes that the Windows portable build requires the WebView2 runtime.

What is the difference between the stable and Canary releases of TauriTavern?

The README says Canary updates daily with the latest features and fixes but may be less stable than the stable channel, and suggests it as a way to check whether a problem you hit on stable is already fixed. Channel selection is a flag on the Linux installer script or a separate flake reference for Nix users.

Official sources

  1. Darkatse/TauriTavern on GitHub
  2. License: AGPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/darkatse-tauritavern.svg)](https://hysenlabs.com/projects/darkatse-tauritavern)