llama-studio — 基于 llama.cpp 的本地大模型桌面工作站。
搜索下载模型、模板化多实例运行、Agent 编码工作台(含纯聊天模式),全程本地完成。
一套完全本地运行的大模型工作台,覆盖从模型获取到智能体自动化的完整链路。
| 分类 | 主要界面 |
|---|---|
| 🔍 模型与下载 | 模型中心 · 模型 · 我的模板 · 模型文件夹 |
| 💬 对话与多模态 | Web 界面 · 知识库 · OCR · 语音合成 · 语音转写 · 图像生成 · 音频工作室 |
| 🧰 分析与工具 | 模型工具 · 模型运行数据 · 性能测试 · Token 统计 |
| 🤖 智能体 | Agent Code 工作台 · AI Agent |
| ⚙️ 系统与后端 | 后端与引擎 · 设置 · 关于 |
- 模型中心:在应用内搜索 Hugging Face / ModelScope,浏览仓库与文件、一键下载 GGUF 模型,无需打开浏览器。
- 模型:本地模型库管理,查看已下载 GGUF 文件信息,通过 URL 直接下载或分析 HuggingFace 仓库并管理文件。
- 我的模板:将模型配置保存为可复用模板,多端口同时运行多个模型,支持 Chat UI 与 API Only 两种启动模式。
- 模型文件夹:统一管理文本 / 图片 / 语音 / OCR / stable-diffusion.cpp 五类模型文件夹,可增删外部目录。
- Web 界面:内嵌运行中的 llama.cpp server Web UI 和 audio.cpp,可复制服务地址、在外部浏览器打开、一键停止服务(旧称「llama-server」)。
- 知识库:本地知识库(RAG),上传/拖入文档向量化入库,供对话时检索增强。
- OCR:利用 llama.cpp 从图片中提取文字,全程本地处理。
- 语音合成:本地 TTS(Qwen3-TTS / OuteTTS),文本离线生成 wav,支持多语言与参考音频克隆音色,可试听/下载。
- 语音转写:本地 ASR(llama-mtmd),选择音频文件离线转写为文本,兼容 granite-speech / Qwen3-Omni 等。
- 图像生成:文生图 / 图生图,调用运行中的 stable-diffusion.cpp(sd-server)兼容接口,支持采样器、提示词预设与历史记录。
- 音频工作室:内嵌运行中的 audio.cpp 服务 Web UI,进行音乐 / 音频生成,可刷新、外部打开、停止服务。
- 模型工具:GGUF 分析工具集——GGUF 检查器(元数据检查)、Token 可视化、显存计算器(显存与上下文层数估算)、模型对比。
- 模型运行数据:运行中模型的 CPU、内存等资源占用实时监控。
- 性能测试:内置 llama-bench 基准测试视图,一键跑分对比模型吞吐。
- Token 统计:基于本地使用记录的 Token 用量统计(按模型、按活动时间分布),纯本地、不联网。
- Agent Code 工作台:本地模型驱动的编码代理,通过 20+ 内置工具(读写/编辑文件、代码搜索、目录分析、后台任务等)自主完成任务;配套文件树、Git diff 审查、变更汇总、内置浏览器、提示词配置、工具调用审计与调试面板。
- 纯聊天模式:原独立的「聊天」界面已移除,对话能力并入本工作台——开启纯聊天模式即可直接与模型对话,支持思考链、LaTeX 公式与代码块渲染。
- 内置终端:多标签终端(xterm.js + node-pty),内嵌于工作台中,可指定工作目录、调整字号、多会话并行。
- AI Agent:侧边栏管理与启动基于 npm 的 AI 代理脚本(安装状态检测、版本更新),扩展自动化工作流。
- 后端与引擎:维护与切换多个 llama.cpp 二进制版本,自动检查新版本并在设置中一键下载更新。
- 设置:全局偏好配置(主题、后端路径、下载目录等)。
- 关于:版本与许可证信息。
| 层级 | 技术 |
|---|---|
| 桌面框架 | Electron 43 |
| 包管理器 | Bun 1.4 |
| UI 框架 | React 19 |
| 语言 | TypeScript 5 |
| 构建工具 | Vite 5 + electron-vite |
| 状态管理 | Zustand |
| 终端 | xterm.js + node-pty |
| Markdown 渲染 | react-markdown + KaTeX |
| 文档解析 | PDF.js、Mammoth.js |
| PDF 导出 | jsPDF + html2canvas |
| 图标 | Lucide React |
| 打包 | electron-builder |
- Bun ≥ 1.4(依赖安装与脚本运行,推荐)
- Node.js ≥ 18(构建及部分原生工具需要)
- Git
本项目使用 Bun 管理依赖,锁文件为
bun.lock。若改用 npm 需注意 lockfile 差异。
# 克隆仓库
git clone https://github.com/zwchyt/llama-studio.git
cd llama-studio
# 安装依赖
bun install
# 启动开发模式
bun run devbun run package使用 electron-builder 构建安装包,产物位于 dist/ 目录。
注:
bun run build仅执行过滤构建脚本,不会产出安装包。Electron 二进制:Bun 默认屏蔽
postinstall脚本,可能跳过 Electron 二进制下载,启动时报Electron uninstall。若出现,执行node node_modules/electron/install.js提取二进制,或运行bun pm trust允许安装脚本。
- 打开 模型中心 标签页,搜索 Hugging Face 上的 GGUF 模型。
- 点击模型查看详情,选择量化版本,一键下载。
- 进入 我的模板,点击 新建模板。
- 选择已下载的模型,配置上下文长度、GPU 层数等 llama.cpp 参数。
- 选择 Chat UI(交互对话)或 API Only(服务端)启动模式。
- 在模板上点击 运行,后端会自动启动并输出运行日志。
- Chat UI 模式可直接对话;API Only 模式使用提供的端点地址。
- 模型运行后,进入 Agent Code 视图并开启 纯聊天 模式,即可与模型对话(无需浏览器)。
- 支持思考链展示、LaTeX 公式与代码块渲染,以及朗读 / 继续生成等操作。
- 进入 Agent Code 视图,选择项目工作区目录并连接运行中的模型。
- 在会话中下达任务,模型会调用工具读写文件完成编码;通过顶栏的 变更 审查 Git diff,审计 / 调试 面板追踪工具调用。
- 在 性能测试 视图选择模型一键跑分;在 模型运行数据 视图查看运行中模型的资源占用。
- 进入 设置 → 后端与引擎,切换或更新 llama.cpp 版本。
- 从侧边栏打开 AI Agent 面板,管理基于 npm 的代理脚本。
- 在 OCR 视图中上传图片,利用正在运行的模型提取文字。
配置应用打包参数——应用 ID、安装程序类型、文件关联、签名等。
将自定义 Jinja2 聊天模板放入此目录,应用会自动加载。
保存模板时自动生成,每个文件是一个以 UUID 命名的 JSON:
{
"id": "uuid",
"name": "我的模板",
"modelPath": "models/qwen2.5-7b-q4_k_m.gguf",
"ctxSize": 8192,
"gpuLayers": 33,
"port": 8080,
"mode": "chat"
}自动生成的全局偏好配置(主题、后端路径、下载目录等)。
本应用 完全本地运行。不收集、不存储、不传输任何遥测或个人数据。模型下载依赖第三方服务(Hugging Face 和 ModelScope),后端二进制文件遵循各自的许可协议。
本项目基于 hexllama 衍生。详见 LICENSE 文件。
为本地 AI 社区而建 ❤️
