
# TauriTavern
**SillyTavern como aplicativo nativo para computadores e dispositivos móveis**
[简体中文](README.md) · [English](README.en.md) · [日本語](README.ja.md) · [Русский](README.ru.md) · **Português (Brasil)**
[Downloads](https://tauritavern.github.io/en/downloads/) · [Documentação](https://tauritavern.github.io/en/) · [Releases](https://github.com/Darkatse/TauriTavern/releases) · [Issues](https://github.com/Darkatse/TauriTavern/issues)
[](https://github.com/Darkatse/TauriTavern/releases/latest)
[](LICENSE)
[](https://github.com/Darkatse/TauriTavern/stargazers)
[](https://tauritavern.github.io/en/downloads/)
[](https://t.me/TauriTavern)
[](https://discord.gg/hn57aFGe8h)
[](https://github.com/Darkatse/TauriTavern/issues)
[](https://github.com/Darkatse/TauriTavern/actions/workflows/canary-release.yml)
Agradecemos a @shiyue137 por criar o logo do TauriTavern 💛
## Baixar
[](https://tauritavern.github.io/en/downloads/)
**Detecta seu dispositivo automaticamente · baixe a versão estável mais recente com um clique**
[](https://tauritavern.github.io/en/downloads/platforms/)
[](https://tauritavern.github.io/en/downloads/platforms/)
[](https://tauritavern.github.io/en/downloads/platforms/)
[](https://tauritavern.github.io/en/downloads/platforms/)
[](https://testflight.apple.com/join/gpqAdeTm)
[Todas as plataformas](https://tauritavern.github.io/en/downloads/platforms/) · [Versões no GitHub](https://github.com/Darkatse/TauriTavern/releases)
📦 Instalação com um gerenciador de pacotes (Windows · macOS · Linux)
### Windows · WinGet
Execute no PowerShell:
```powershell
winget install --id TauriTavern.TauriTavern
```
### Windows · Scoop
Execute no PowerShell:
```powershell
scoop bucket add Darkatse https://github.com/Darkatse/Scoop-Darkatse.git
scoop install Darkatse/TauriTavern
```
### macOS · Homebrew
Execute no Terminal:
```sh
brew install --cask tauritavern
```
### Linux
**Arch Linux · AUR**
Instale o [`tauritavern-bin`](https://aur.archlinux.org/packages/tauritavern-bin) com o AUR helper de sua preferência:
```sh
yay -S tauritavern-bin
```
Esse pacote é mantido por [@LX2000WASD](https://github.com/LX2000WASD). Agradecemos pelo trabalho contínuo no [TauriTavern-aur](https://github.com/LX2000WASD/TauriTavern-aur).
**Debian · Ubuntu · Fedora · openSUSE · NixOS**
O script identifica seu sistema e escolhe o método de instalação adequado. Ele também funciona em outros sistemas Linux que já tenham o Nix instalado.
**Versão estável**
```sh
curl -fsSL https://get.tauritavern.com/linux.sh | sh
```
**Nix / NixOS**
Se o Nix já estiver instalado, adicione o TauriTavern diretamente ao seu perfil de usuário:
```sh
nix profile add github:Darkatse/TauriTavern#tauritavern
```
**Flatpak**
```sh
flatpak remote-add --user --if-not-exists \
tauritavern \
https://flatpak.tauritavern.com/tauritavern.flatpakrepo
flatpak install --user tauritavern com.tauritavern.client
```
### Canary
A versão Canary recebe atualizações diárias com novos recursos e correções, mas pode ser menos estável que a versão estável. Se quiser testar a versão mais recente ou estiver enfrentando algum problema na versão estável, verifique se a correção já está disponível na Canary.
As compilações para Windows, macOS e dispositivos móveis estão disponíveis na página da [Canary Release](https://github.com/Darkatse/TauriTavern/releases/tag/Canary).
Instalar a Canary no Linux
**Linux**
```sh
curl -fsSL https://get.tauritavern.com/linux.sh \
| sh -s -- --channel canary
```
**Nix / NixOS**
```sh
nix profile add github:Darkatse/TauriTavern/Canary#canary
```
> [!TIP]
> **iOS**: instale pelo [teste público no TestFlight](https://testflight.apple.com/join/gpqAdeTm). É necessário ter o iOS 15.0 ou mais recente. O iOS 15.0–16.3 tem suporte limitado; o suporte completo começa no iOS 16.4. As compilações estão sujeitas às regras e limitações do TestFlight.
>
> **Versão portátil para Windows**: requer o WebView2 Runtime instalado no sistema.
## O que é o TauriTavern
O TauriTavern transforma o [SillyTavern](https://github.com/SillyTavern/SillyTavern) em um aplicativo nativo. O frontend mantém a experiência do projeto original e está sincronizado com a versão 1.18.0, enquanto o backend foi reescrito de Node.js para Rust com Tauri v2.
Não é preciso instalar o Node.js nem usar a linha de comando: basta baixar e executar. Seus cartões de personagem, chats, predefinições, Informações do Mundo e extensões de frontend continuam compatíveis com o SillyTavern.
> Observação: o TauriTavern é um projeto independente de código aberto, não um cliente oficial do SillyTavern. Ele é gratuito e distribuído sob a licença AGPL-3.0. Consulte os termos da licença antes de usar.
## Principais recursos
- 🖥️ **Cinco plataformas nativas**: Windows, macOS, Linux, Android e iOS com a mesma experiência de uso
- 🎭 **Compatibilidade com o SillyTavern**: o frontend está sincronizado com a versão 1.18.0, incluindo formatos de dados e estrutura de diretórios compatíveis
- 🧩 **Ecossistema de extensões do frontend**: o Git nativo integrado permite instalar, atualizar e trocar de branch pela própria interface (plugins de backend exclusivos para Node.js não são compatíveis)
- 🔄 **Sincronização entre dispositivos**: pareamento criptografado pela rede local ou envio automático pelo TT-Sync v2 remoto
- 🤖 **Agent Framework**: chamadas de ferramentas, Skills, subagentes e linha do tempo de execução; o desenvolvimento continua
- 📦 **Migração direta**: scripts de exportação do SillyTavern e importação dentro do aplicativo
- ⚡ **Otimizações de desempenho**: inicialização em etapas e carregamento em janelas mantêm a interface responsiva mesmo em conversas longas
- 🔒 **Seus dados permanecem com você**: tudo fica armazenado no dispositivo, com um modo portátil opcional
## Capturas de tela
## Visão geral da arquitetura
O backend em Rust é organizado como um workspace Cargo (`src-tauri/crates/`) baseado em Clean Architecture:
- `tauritavern`: host Tauri, camada de comandos e raiz de composição
- `tt-application` · `tt-ports` · `tt-domain` · `tt-contracts`: casos de uso, portas, modelos de domínio e contratos entre crates
- `tt-adapter-*`: implementações de armazenamento, HTTP, mídia, sincronização, extensões e tokenização
O frontend combina o SillyTavern original com uma camada modular de integração com o Tauri (`src/tauri/main/`). Ele se comunica com o backend em Rust pela ABI de plataforma `window.__TAURITAVERN__`. Consulte [docs/BackendStructure.md](docs/BackendStructure.md) e [docs/FrontendGuide.md](docs/FrontendGuide.md) para saber mais.
🛠 Desenvolvimento (pré-requisitos · comandos comuns · Tauri Pilot · builds portáteis · FasTools)
**Pré-requisitos**: Rust stable (edition 2024) · Node.js 22.13+ · pnpm 11 · Tauri CLI
```bash
git clone https://github.com/Darkatse/TauriTavern.git
cd TauriTavern
pnpm install
```
**Comandos comuns**:
```bash
pnpm run check # verificações de frontend, tipos, contratos e código Rust
pnpm run web:build # gera os bundles do frontend com Rspack
pnpm run tauri:dev # modo de desenvolvimento para desktop
pnpm run tauri:build # compila os instaladores para desktop
pnpm run android:dev # modo de desenvolvimento para Android
pnpm run ios:dev # modo de desenvolvimento para iOS
```
**Tauri Pilot (desenvolvimento de frontend com agentes de IA)**
O projeto inclui o plugin [Tauri Pilot](https://github.com/mpiton/tauri-pilot) e suas permissões somente para desenvolvimento. Com ele, um agente de IA pode inspecionar e operar o WebView para desktop por meio de snapshots de acessibilidade. Os comandos normais de desenvolvimento e as compilações de lançamento não ativam esse recurso.
```bash
cargo install tauri-pilot-cli # necessário apenas uma vez
pnpm run tauri:dev:pilot
```
Depois de iniciar o aplicativo, use outro terminal para executar o fluxo básico:
```bash
tauri-pilot ping
tauri-pilot snapshot -i
tauri-pilot click @e3 # use um ref do snapshot atual
tauri-pilot diff -i
tauri-pilot logs --level error
```
Tire um snapshot antes de interagir e execute uma ação por vez. Use `wait` após atualizações assíncronas e prefira `assert` para verificar o resultado. Um agente compatível com MCP pode registrar `tauri-pilot mcp` como servidor stdio.
**Builds portáteis**: `pnpm run tauri:build:portable` (gera os arquivos em `release/`). Para forçar o modo portátil, use `TAURITAVERN_RUNTIME_MODE=portable` ou crie um arquivo `portable.flag`.
**FasTools**: conjunto recomendado de ferramentas para desenvolvimento e diagnóstico de distribuição. Compile com `pnpm run fastools:build` e execute com `pnpm run fastools:run`.
Os detalhes de cada plataforma estão em [docs/AndroidDevelopment.md](docs/AndroidDevelopment.md) e [docs/iOSDevelopment.md](docs/iOSDevelopment.md).
## Documentação
- 📖 [Documentação on-line](https://tauritavern.github.io/en/): guias em chinês e inglês sobre uso, Agent, arquitetura, API e downloads
- [docs/FrontendGuide.md](docs/FrontendGuide.md): arquitetura do frontend e guia de extensões
- [docs/FrontendHostContract.md](docs/FrontendHostContract.md): contrato público da camada de host
- [docs/BackendStructure.md](docs/BackendStructure.md): Clean Architecture do backend e limites entre crates
- [docs/CurrentState/](docs/CurrentState/README.md): estado atual dos módulos implementados
## Como contribuir
Issues e Pull Requests são bem-vindos. Leia primeiro o [CONTRIBUTING.md](CONTRIBUTING.md) e, exceto em correções urgentes, use a branch `dev` como destino.
## Agradecimentos e licença
O projeto foi criado a partir do [SillyTavern](https://github.com/SillyTavern/SillyTavern) e do [Tauri](https://tauri.app/). Agradecemos aos responsáveis por [Cocktail](https://github.com/Lianues/cocktail), [Tavern-Helper](https://github.com/N0VI028/JS-Slash-Runner), [LittleWhiteBox](https://github.com/RT15548/LittleWhiteBox), [MikTik](https://github.com/Darkatse/MikTik) e a [@LX2000WASD](https://github.com/LX2000WASD), que mantém o [pacote do TauriTavern para AUR](https://github.com/LX2000WASD/TauriTavern-aur).
Distribuído sob a licença [AGPL-3.0](LICENSE), da mesma família de licenças usada pelo SillyTavern.
[](https://github.com/Darkatse/TauriTavern/graphs/contributors)
Feito com cuidado pela equipe do TauriTavern ❤️