# SillyTavern Launcher
**Repository Path**: al01/sillytavern-launcher
## Basic Information
- **Project Name**: SillyTavern Launcher
- **Description**: SillyTavern Launcher 是一款专为 SillyTavern 设计的启动器,方便在所有平台上管理 SillyTavern,分为电脑端和移动端。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: GUI
- **Homepage**: https://st.al01.cn
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2026-03-18
- **Last Updated**: 2026-04-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

# SillyTavern Launcher GUI
**酒馆启动器** · 专为 SillyTavern 打造的跨平台桌面管理工具
[](https://github.com/al01cn/sillyTavern-launcher/releases)
[](https://v2.tauri.app/)
[](https://vuejs.org/)
[](https://www.rust-lang.org/)
[](LICENSE)
[](https://github.com/al01cn/sillytavern-launcher/releases)
[中文文档](#-中文文档) · [English Docs](#-english-documentation)
---
## 📖 中文文档
### 简介
**SillyTavern Launcher GUI** 是一个专为 [SillyTavern](https://github.com/SillyTavern/SillyTavern) 设计的跨平台桌面客户端,基于 **Tauri v2 + Vue 3 + Rust** 构建。它提供了直观、现代的图形界面,让用户无需命令行即可完整管理 SillyTavern 的安装、启动、配置和扩展。
> 🌐 官网:[st.al01.cn](https://st.al01.cn/)
---
### ✨ 功能特性
| 功能模块 | 说明 |
| ------------------- | -------------------------------------------------------------- |
| 🚀 **一键启停** | 一键启动/停止 SillyTavern 服务,实时查看控制台日志 |
| 📦 **版本管理** | 可视化安装、切换、卸载任意 SillyTavern 版本(稳定版 / 开发版) |
| 🧩 **扩展管理** | 浏览、启用/禁用、安装(支持 ZIP 离线包)、删除扩展 |
| ⚙️ **酒馆配置** | 可视化编辑 `config.yaml`(端口、代理、白名单、备份、缩略图等) |
| 🌐 **Node.js 管理** | 自动检测系统 Node.js / npm,支持一键下载内置私有 Node 环境 |
| 🎭 **角色卡管理** | 浏览、预览、导入、删除角色卡(PNG 格式) |
| 📚 **世界书管理** | 浏览、导入、删除世界书(JSON 格式) |
| 🔄 **自动更新** | 基于 GitHub Releases 的静默自动更新(可关闭提醒) |
| 🌍 **多语言** | 内置简体中文 / English,可跟随系统自动切换 |
| 🎨 **主题切换** | 深色 / 浅色主题,支持跟随系统 |
| 🔧 **GitHub 代理** | 内置多节点代理加速,解决 GitHub 下载慢的问题 |
| 💾 **窗口记忆** | 可选记住上次窗口位置 |
---
### 🚀 快速安装(普通用户)
> 如果你只是想**使用**酒馆启动器,不需要搭建开发环境,按以下步骤操作即可:
1. 前往 [GitHub Releases](https://github.com/al01cn/sillyTavern-launcher/releases) 页面
2. 根据你的操作系统下载对应的安装包:
| 系统 | 文件格式 |
| ------- | --------------------- |
| Windows | `.msi` 或 `.exe` |
| macOS | `.dmg` |
| Linux | `.AppImage` 或 `.deb` |
3. 运行安装程序完成安装,然后直接启动即可
> [!WARNING]
> **Windows 用户注意**:如果安装程序提示权限不足或安装失败,请右键点击安装文件,选择「**以管理员身份运行**」后重试。
---
### 🛠️ 技术栈
| 层次 | 技术 |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| **前端框架** | [Vue 3](https://vuejs.org/) + [TypeScript](https://www.typescriptlang.org/) + [Vite](https://vite.dev/) |
| **UI 组件** | [TailwindCSS v4](https://tailwindcss.com/) + [FluxUI](https://fluxui.dev/)(所有组件可用) |
| **图标库** | [Lucide Vue Next](https://lucide.dev/) + [@phosphor-icons/vue](https://phosphoricons.com/) + [@iconify/vue](https://iconify.design/) |
| **国际化** | [vue-i18n v11](https://vue-i18n.intlify.dev/) |
| **通知** | [vue-sonner](https://vue-sonner.vercel.app/) |
| **后端框架** | [Tauri v2](https://v2.tauri.app/) + [Rust](https://www.rust-lang.org/) |
| **主要 Rust 库** | `tokio`、`reqwest`、`serde`、`serde_yaml`、`serde_json`、`zip`、`tracing` |
| **包管理工具** | [Bun](https://bun.sh/)(推荐) |
---
### 📁 项目结构
```text
SillyTavern-Launcher/
├── src/ # 前端 Vue 3 源码
│ ├── assets/ # 静态资源(图片、Logo 等)
│ ├── components/ # 可复用公共组件(15 个)
│ │ ├── AppTooltip.vue # 统一悬浮提示组件
│ │ ├── GlobalDialog.vue # 全局弹窗容器
│ │ ├── InstallDialog.vue # 版本安装弹窗
│ │ ├── InstallExtensionDialog.vue # 扩展安装弹窗
│ │ ├── CharacterCardDialog.vue # 角色卡预览弹窗
│ │ ├── ChatDialog.vue # 对话历史弹窗
│ │ ├── NetworkLinkDialog.vue # 局域网/公网链接面板
│ │ ├── OneClickCapsule.vue # 一键安装胶囊
│ │ ├── ConfigMigrateDialog.vue # 配置迁移弹窗
│ │ ├── ResourceMigrateDialog.vue # 资源迁移弹窗
│ │ ├── RepairGitDialog.vue # Git 修复弹窗
│ │ ├── UploadCharacterCardDialog.vue # 上传角色卡弹窗
│ │ ├── UploadWorldInfoDialog.vue # 上传世界书弹窗
│ │ ├── WorldInfoDialog.vue # 世界书预览弹窗
│ │ └── Model.vue # 通用的 FluxUI Modal 封装
│ ├── lang/ # 国际化语言文件(zh-CN / en-US)
│ ├── layouts/ # 布局组件(自定义标题栏)
│ ├── lib/ # 工具函数与 Tauri 命令封装(24 个)
│ │ ├── config.ts # 前端配置状态管理
│ │ ├── consoleState.ts # 控制台日志状态
│ │ ├── st_list.ts # SillyTavern 实例列表
│ │ ├── theme.ts # 主题切换
│ │ ├── cache.ts # 缓存管理
│ │ ├── imageCache.ts # 图片缓存
│ │ ├── updater.ts # 自动更新
│ │ ├── useScan.ts # 酒馆扫描逻辑(scanManager 单例)
│ │ ├── useInstall.ts # 版本安装/删除
│ │ ├── useReleases.ts # GitHub Releases 获取
│ │ ├── useExtensions.ts # 扩展列表与状态
│ │ ├── useExtensionInstall.ts # 扩展安装/修复/删除
│ │ ├── useOneClick.ts # 一键安装流程
│ │ ├── useNodeGitInstall.ts # Node.js / Git 安装进度
│ │ ├── useDialog.ts # 全局弹窗控制
│ │ ├── useCharacterCardDialog.ts # 角色卡弹窗
│ │ ├── useChatDialog.ts # 对话历史弹窗
│ │ ├── useWorldInfoDialog.ts # 世界书弹窗
│ │ ├── useUploadCharacterCard.ts # 上传角色卡
│ │ ├── useUploadWorldInfo.ts # 上传世界书
│ │ ├── useCheckpoint.ts # 检查点管理
│ │ ├── useRepairGitDialog.ts # Git 修复弹窗
│ │ ├── useAnimations.ts # 动画与性能检测
│ │ └── index.ts # lib 导出入口
│ ├── router/ # Vue Router 路由配置
│ ├── views/ # 页面视图
│ │ ├── Home.vue # 主页(启动/停止/网络链接面板)
│ │ ├── Versions.vue # 版本管理(本地实例扫描/在线下载)
│ │ ├── Tavern.vue # 酒馆配置(config.yaml 可视化编辑器)
│ │ ├── Extensions.vue # 扩展管理
│ │ ├── Resources.vue # 资源管理(角色卡/世界书/对话历史)
│ │ ├── Console.vue # 控制台日志
│ │ ├── Settings.vue # 应用设置
│ │ ├── Tools.vue # 鸣谢页面
│ │ └── App.vue # 根组件
│ ├── App.vue # 根组件
│ ├── main.ts # 前端入口
│ ├── style.css # 全局样式
│ └── tailwind.config.css # Tailwind v4 配置
│
├── src-tauri/ # 后端 Rust 源码 (Tauri)
│ ├── src/
│ │ ├── main.rs # Rust 入口(Windows GUI 入口点)
│ │ ├── lib.rs # 模块声明与 run()
│ │ ├── types.rs # 所有公共类型/结构体/枚举定义
│ │ ├── utils.rs # 日志、目录布局、tracing 子scriber
│ │ ├── config.rs # AppConfig 读写、代理检测、窗口管理
│ │ ├── node.rs # Node.js / npm 检测与安装
│ │ ├── git.rs # Git 检测、内置 MinGit、GitHub 加速逻辑
│ │ ├── sillytavern.rs # ST 版本管理、启停、YAML 配置读写
│ │ ├── extensions.rs # 扩展管理(列表/启用/安装/删除/修复)
│ │ ├── character.rs # 角色卡 PNG 管理
│ │ ├── worldinfo.rs # 世界书 JSON 管理
│ │ ├── chat.rs # 对话历史读取与删除
│ │ ├── finderst.rs # SillyTavern 全盘扫描(jwalk + walkdir)
│ │ ├── logs.rs # 应用运行日志读写
│ │ ├── elevation.rs # Windows UAC 提权辅助
│ │ └── Cargo.toml # Rust 依赖
│ ├── icons/ # 应用图标(多平台)
│ └── tauri.conf.json # Tauri 配置文件
│
├── data/ # 运行时数据目录(自动生成)
│ ├── config.json # 应用全局配置
│ ├── logs/ # 应用运行日志(按天滚动)
│ ├── node/ # 内置 Node.js 环境(可选)
│ ├── mingit/ # 内置 PortableGit(可选)
│ ├── st_data/ # SillyTavern 全局数据
│ │ ├── config.yaml # 全局酒馆配置
│ │ ├── characters/ # 角色卡目录
│ │ └── worlds/ # 世界书目录
│ └── sillytavern/ # 各版本酒馆安装目录
│ └── / # 具体版本,如 release-v1.12.0
│
├── scripts/ # 构建辅助脚本
├── public/ # Vite 静态资源
├── package.json
├── vite.config.ts
├── tsconfig.json
├── tsconfig.node.json
├── UPDATELOGS.md # 版本更新记录
└── README.md
```
---
### 💻 开发环境搭建
#### 前置依赖
| 依赖 | 版本要求 | 说明 |
| ------------------------------------------------------------ | ----------------- | --------------------------------------------------------------- |
| [Rust](https://www.rust-lang.org/zh-CN/) | 1.80+ | 含 Cargo,Tauri 后端必须 |
| [Node.js](https://nodejs.org/zh-cn) / [Bun](https://bun.sh/) | Node 18+ / Bun 1+ | 推荐使用 Bun |
| Tauri 系统依赖 | — | [查看官方文档](https://v2.tauri.app/zh-cn/start/prerequisites/) |
> **Windows 用户**额外需要:安装 [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/) 或 Visual Studio。
#### 克隆与安装
```bash
# 克隆仓库
git clone https://github.com/al01cn/sillyTavern-launcher.git
cd sillyTavern-launcher
# 安装前端依赖(推荐使用 bun)
bun install
```
#### 开发模式
```bash
# 启动 Vite 热更新 + Tauri 桌面窗口
bun run tauri:dev
```
#### 生产构建
```bash
# 构建安装包(同时同步版本号)
bun run tauri:build
```
构建产物位于 `src-tauri/target/release/bundle/` 目录下。
#### 其他命令
```bash
bun run cargo:check # 仅检查 Rust 编译是否通过
bun run cargo:build # 仅构建 Rust 后端
bun run sync-version # 同步 package.json 版本号到 Tauri
```
---
### 🏗️ 架构说明
#### Rust 后端模块划分
```
main.rs ← Rust 入口(Windows GUI 入口点)
lib.rs ← 模块声明与 run()
├── types.rs 所有共享数据结构(类型/结构体/枚举,纯定义无逻辑)
├── utils.rs 日志初始化、目录布局、tracing subscriber
├── config.rs AppConfig 读写、窗口管理、代理检测(PowerShell/reg)
├── node.rs Node.js / npm 检测与安装
├── git.rs Git 检测、内置 MinGit、GitHub 加速(--import / insteadOf)
├── sillytavern.rs ST 版本 CRUD、启停、YAML 配置读写
├── extensions.rs 扩展列表、启用/禁用/安装/删除/修复
├── character.rs 角色卡 PNG 管理
├── worldinfo.rs 世界书 JSON 管理
├── chat.rs 对话历史读取与删除
├── finderst.rs SillyTavern 全盘扫描(jwalk + walkdir 双引擎)
├── logs.rs 应用运行日志读写
└── elevation.rs Windows UAC 提权辅助
```
#### 前后端通信
所有前端操作均通过 **Tauri Command**(`invoke`)调用 Rust 后端,前端不直接发起外部网络请求,确保无跨域问题。
```
前端 Vue (invoke) → Rust Command → 系统/文件/网络
```
长耗时操作(下载、解压、npm 安装)通过 **Tauri Event**(`emit`)向前端推送进度:
| 事件名 | 说明 |
| ------------------- | ------------------------ |
| `install-progress` | 版本安装/删除进度 |
| `download-progress` | Node.js 下载/解压进度 |
| `process-log` | SillyTavern 进程实时日志 |
| `process-exit` | SillyTavern 进程退出通知 |
---
### 📝 开发规范
- **组合式 API**:始终使用 Vue 3 `