SillyTavern LLM 前端快速打包成桌面应用
【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern
SillyTavern 是面向高级用户的 LLM 聊天前端,默认用法是在终端执行node server.js,再打开浏览器进入界面。如果要交给非工程背景的同事,独立窗口更合适:桌面化之后,双击图标即弹出窗口,服务器进程内嵌其中,不再需要常驻终端。下面是基于仓库自带 Electron 壳的打包流程,覆盖运行、跨平台分发与定制三件事。
SillyTavern 桌面版启动后的聊天界面背景(酒馆白天场景)
🧩 仓库内置 Electron 壳:启动时序与首次运行步骤
src/electron/ 目录下,主进程逻辑集中在index.js:app.whenReady()时先把工作目录切到仓库根并动态导入server-global.js拉起服务器,监听到SERVER_STARTED事件后取到本地 URL,再创建BrowserWindow加载页面。窗口尺寸由yargs解析,--width、--height默认 800 与 600。所以直接运行壳,得到的是完整的 SillyTavern,而不是空壳。
克隆源码并完成首次启动
先把源码取到本地:
git clone https://gitcode.com/GitHub_Trending/si/SillyTavern产出是一个完整源码树,内含src/electron子目录。
在根目录安装服务器依赖,再进入 electron 子目录安装其自身依赖(含 Electron 二进制)并启动壳:
npm install cd src/electron && npm i && npm start产出是独立窗口,界面与 Web 版一致,服务器随进程在后台运行。根目录package.json另提供快捷脚本npm run start:electron,等价于 cd 加 npm start,适合确认 electron 子目录依赖已装之后使用。
用启动参数固定窗口尺寸
如果希望默认窗口更大(双栏聊天加插件面板),在根目录把尺寸参数透传给 Electron 入口:
npm run start:electron -- --width=1280 --height=800产出是按指定尺寸打开的窗口,替代 800×600 默认值;这两个参数也可以写进各机器的启动脚本固定下来。
🖥️ 多平台分发:生成 Windows、macOS、Linux 安装包的步骤
先说结论:仓库没有自带一键 dist 脚本,src/electron/package.json只定义了start: electron .。要产出可分发的安装包,需要自行引入打包工具,常用选择是electron-builder。注意两点:打包入口是src/electron/index.js(包名sillytavern-electron);壳在运行时引用根级服务器代码,构建配置的files白名单要覆盖根部的server.js、public/、default/等资源,而不是只包含 electron 子目录。
SillyTavern 桌面应用打包后加载的聊天背景示例(赛博朋克卧室)
一条命令切换目标平台
进入src/electron后先以解包形式验证(--dir跳过封装与签名,验证最快):
npx electron-builder --dir # --win / --mac / --linux 切换目标平台,产物输出到 dist 目录产出是dist/下的解包可执行目录;验证通过后带上平台参数重跑,即可得到正式安装包。
各平台产物与免安装形态
三个平台的产物形态不同:Windows 默认产出 portable 单文件 exe,属免安装即点即用的形态,配置后可再出 NSIS 安装器并带开始菜单快捷方式;macOS 产出.app,对外分发前需要代码签名与公证,否则会被系统拦截;Linux 可产出AppImage,双击即运行、无需安装,适合团队内部分享。一个跨平台编译的坑:macOS 产物必须在 macOS 上构建,实际项目通常用 CI 矩阵三平台并行出包。
🎨 个性化与深度配置:聊天背景、主题与免终端启动脚本
配置聊天背景与主题文件
桌面版与 Web 版共用同一数据目录。default/content/backgrounds/下内置十余张 1920×1080(16:9)的现成背景,复制到用户数据目录后即可在聊天页选用:
SillyTavern 桌面版内置中世纪夜景聊天背景
SillyTavern 桌面版内置樱花小径聊天背景
配色方案由default/content/themes/下的 JSON 管理(内置 Dark V 1.0、Cappuccino 等 5 套),新增 JSON 后在页面选择即生效;要再改字体与间距,可在default/content/user.css叠加自定义样式。
免终端启动脚本与服务器配置
src/electron/start.sh(Linux/macOS)与Start.bat(Windows)都自动完成"装依赖 → 启动壳"两步,并把额外参数透传给入口,可以直接在脚本里固定窗口尺寸。服务器侧读 default/config.yaml 配置,端口、白名单、登录策略都在这里,打包后该文件仍在数据目录内,运维方式与 Web 版一致。
✅ 打包验证与常见排错
打包前检查清单
构建前确认三件事:Node ≥ 20(根package.json的engines字段有约束);根目录已完成npm install(缺服务器依赖时壳会在 import 阶段直接报错);config.yaml的端口与白名单不和内网策略冲突。
窗口打不开时的定位顺序
主进程打印The server has not started yet.说明SERVER_STARTED未触发,先回终端看服务器日志,问题出在服务侧而非壳。若打包产物在目标机器上运行但窗口空白,通常是files白名单漏了静态资源,检查public/是否完整进入产物即可。
产物就绪后,把它放进团队共享目录,非工程同事的使用路径就只剩"双击图标"。
前置事项:打包前需在仓库根目录执行
npm install完成依赖安装;Electron 二进制下载较慢时,可提前为 npm 配置国内镜像。
【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考