本地大模型一体化桌面工作台
管理模型、运行推理服务,内置对话 / 语音 / 图片 / 视频 / 音乐 / OCR / 翻译应用,
外加提示词广场、小应用、本地知识库、共享记忆与 Skills 管理,全程本地优先。
中文 · English
⭐ Star · License: MIT · 作者:鲲鹏Talk
有任何疑问、建议,或想与开发者和其他用户交流,欢迎扫码加入我们的交流群:
扫码进群 · 一起交流本地 AI
一套工作台走完本地 AI 的整条链路:最左图标栏切换应用,应用内左栏选后端、填参数,右侧直接看结果 —— 所有页面共用同一套布局。
一次跑完上下文长度(1K–1M)× 并发档位 × 缓存场景(冷启 / 部分命中 / 完全命中)的矩阵:TTFT、TPOT、TPS、聚合吞吐、Prefill 逐档列出,「缓存命中对比」把冷启与命中的倍数差直接算给你看(×1 附近说明服务端根本没吃到缓存),结果落库并可导出 HTML。
不生成文本,只回答被约束的问题:noul(是/否)、choice(在给定选项里选一个)、score(在有序档位上打分),拿回的是概率分布与置信度 —— 分类、打标、评分这类判断因此可比较、可设阈值、可批量。左栏顶部切「本地运行 / 云端接入」并就地配引擎(装 laya-mlx、下权重、启动模型都在这一页),下面是 state 与问题清单;右栏是每个问题的概率分布。侧栏五个中英双语示例(工单分派 / 简历评分 / 内容护栏 / 检索重排 / 意图路由)一键装进左栏,也可以写一句人话交给聊天模型翻成请求体。协议与 TypeSafe 官方逐字段一致,官方 SDK 只改 TYPESAFE_BASE_URL 与 TYPESAFE_API_KEY 两行即可直连本机网关。
| 模型云服务 | 集成 · 编码工具 |
|---|---|
![]() |
![]() |
| 语音 · 实时对话 | 语音合成 TTS |
![]() |
![]() |
| 模型选择 · 引导向导 | |
![]() |
- 搜索与浏览 — 基于 ModelScope 的模型搜索,仓库文件列表与详情页(参数、大小、下载量、许可证、标签)。
- 全格式下载 — GGUF(llama.cpp)、safetensors(vLLM / SGLang)、bin / pt / ckpt / onnx 等权重;单文件或整仓下载,audio.cpp 的 GGUF 走 HuggingFace 源。
- 下载管理 — 队列并发下载、暂停 / 继续 / 取消、断点续传(HTTP 206)、收藏、多目录存储。
- 能力分类 — 按 Chat / TTS / ASR / Image / Other 自动识别并持久化分类,以徽章与筛选呈现。
- 首次引导 — 内置 Qwen3.5 4B / 9B / 35B-A3B 与 Qwen3.6 27B 一键模型,选中后自动下载并部署,选完即用;也支持手动输入 HuggingFace GGUF 自定义模型。
- 云端模型服务 — 内置 20 家主流 OpenAI 兼容厂商预设(OmniLabs、DeepSeek、通义千问、智谱 GLM、Kimi、豆包、文心一言、腾讯混元、MiniMax、讯飞星火、零一万物、阶跃星辰、硅基流动、OpenRouter、OpenAI、Anthropic、Gemini 等);配置以「厂商列表 / 配置详情 / 模型」三栏呈现,多厂商并存、单一点击激活,激活厂商自动写回网关与
omiCLI 读取的槽位;支持连通检测与在线拉取模型列表;「设置 → 云端模型」里集中指定各用途的默认模型。 - 三引擎统一运行时 — llama.cpp(默认:GGUF 本地文件或 HuggingFace,GPU 卸载、KV 缓存量化、多模态 mmproj)、vLLM、SGLang 统一抽象、热切换;也可直连任意 OpenAI 兼容端点(远程模式)。
- 统一网关 — 本地单一端点按模型名路由到本地推理服务或云端 API,同时提供 Chat Completions / Responses / Anthropic Messages 三套协议(含双向工具调用);可选 API Key 鉴权,内置交互式 OpenAPI 文档,端点
/v1、/health、/metrics设置页一键复制;另提供/mcp与/v1/memories对外暴露知识库与共享记忆。 - JEV 类型化判定(免费) — 不生成文本,而是回答被约束的问题:
noul(是/否概率)、choice(在给定选项里选一个)、score(在有序档位上打分),返回概率分布与置信度;协议与 TypeSafe 官方逐字段一致,官方 SDK(typesafe-sdk/@typesafe-ai/sdk)只改TYPESAFE_BASE_URL与TYPESAFE_API_KEY两行即可直连本机网关,供其他 Agent 调用。后端本地优先:托管laya-mlx(Apple Silicon,完全离线、免费)或自建的 TypeSafe 兼容服务,云端 TypeSafe 用你自己的 Key;价格恒为 0。界面:左侧一级菜单的 JEV 页(默认在 Agent 与通话之间)——左栏顶部切「本地运行 / 云端接入」并配引擎(装引擎 / 下权重 / 启动模型),右栏看概率分布,侧栏有五个可一键装载的中英文示例,还能复制 cURL / Python / JS 调用示例。另外两个入口是 Agent 工具jev_evaluate与网关POST /v1/systemone。详见 docs/jev-systemone.md。
全部应用采用统一工作台布局:最左侧图标栏全局切换,应用内左侧参数面板(引擎切换 / 配置 / 输入 / 主操作)+ 右侧结果区,各页体验一致。
- 对话 — 流式回复 + 推理过程展示、图片多模态输入、联网检索(Bing / DuckDuckGo / Tavily,结果注入上下文并标注来源)、文本附件;可挂载本地知识库提问并给出
[n]引用溯源;自动标题、按应用隔离会话、用量统计。 - 语音 — TTS 多来源(audio.cpp 本地引擎、Edge-TTS、OpenAI 兼容 TTS)+ 声音克隆库 + 多引擎 ASR(whisper.cpp / audio.cpp / OpenAI 兼容转写);实时聆听对话(云端 / 本地),记录库内嵌播放器。
- 图片 — 经云端 OpenAI 兼容 API、ComfyUI 或 Apple Silicon 上的本地 MLX(mflux)引擎生图;MLX 权重生成前预下载并实时显示进度;提示词广场的「去试试」会带着提示词直接落到这一页。
- 视频 — 三种后端统一为「提交任务 + 轮询」:MiniMax(H3,云端,支持首帧图生视频)、Seedance(火山方舟内容生成任务 API)、ComfyUI(本地工作流);提示词 / 负向提示词 / 分辨率 / 时长 / 种子 / 宽高比 / 水印开关与首帧图上传,成片进历史库可直接播放、下载或删除。
- OCR 文档识别 — 三引擎:本地 Tesseract(一键安装、多语言 LSTM 语言包、词级 / 行级包围盒)、PaddleOCR(PP-OCRv6 本地常驻 worker,medium 档约 140MB)与 VLM(Chandra / GLM-OCR / LightOnOCR);识别记录入库;上传 PDF / 图片输出结构化 Markdown(GFM 表格、KaTeX 公式、代码块、图注、按包围盒裁剪的图片区域),带文档队列与检索。
- 翻译 — 引擎可切:当前对话模型(本地 / OpenAI 兼容)或 Google 免费接口,22 种语言互译,支持源语言自动检测、语言交换与一键复制;「同传翻译」打开麦克风实时转写(复用 whisper.cpp / audio.cpp / API 三套 ASR 引擎)并同步输出多种目标语言译文。
- 音乐 — StepFun / MiniMax 双协议生成歌曲、翻唱与干声(本地引擎接口已预留):异步协议提交后轮询、同步协议丢后台任务回填,两种都落进同一张记录表。左栏是歌单库、右侧是曲目页、底部常驻播放条,新曲自动进默认歌单,封面按曲目确定性生成,歌单封面取前四首拼成 2×2。
- 提示词广场 — 「提示词广场 / 我的提示词」双标签,内置 2,733 条提示词(生图 638 条,按 APP / 运营 / 海报 / 插画 / IP / 其他 / 艺术分类;视频 2,060 条;大模型 35 条),带来源筛选(Image2Hub / GPT-Image-2 / H3 Cases / MiniMax …)与全文搜索;「复制」取原文,「去试试」按类型跳到生图 / 视频 / 对话并带入;「加入我的提示词」把广场条目收进个人库(按来源键去重),个人库可自建分类、新建 / 编辑 / 删除。题库随安装包内置、幂等入库,首屏示例图按需下载到本地并走系统代理。
- 小应用 — 八个「一次做一件事」的沙箱工具,首页卡片按能力徽章提示还缺哪项配置,点开即用:抠图换底(本地 ONNX 引擎,不上传、约 1 秒,可换底色并擦除修补)、证件照(本地抠人像,一寸 / 二寸 / 签证等 20 种规格换底,可排 A4 打印)、马赛克(涂抹式打码、批量导出,全程本机)、形象照(按风格预设生成职业形象照 / 角色头像)、会议纪要(导入或录制音频 → 转写 → 议题 / 结论 / 待办)、文案助手(按用途与语气批量出标题 / 卖点 / 口播稿)、笔记(日历与标签双视图、图片附件,正文存本机数据库,可选择性对 Agent 只读开放)、动态表情包(一张照片 → 16 张统一画风的静态表情,挑一张再转成循环动图 GIF;模型在页面里自选,云端用照片当参考、本地按描述作画)。每个小应用是一份自包含 HTML,跑在不含
allow-same-origin的沙箱 iframe 里,能力由宿主逐个下发。 - 知识库(本地 RAG) — 导入本地文件(文本直读,PDF / 图片走 VLM OCR)、手写笔记与网页;Markdown 感知切片(标题分节 + 段落贪心打包 + 超长硬切带重叠)+ 可选向量化(OpenAI 兼容
/v1/embeddings)+ BM25 与向量的 RRF 混合检索 + 可选重排序(Jina / SiliconFlow / Cohere 兼容/v1/rerank);召回测试 / 文档 / 访问 / 设置四个标签页;不依赖外部向量库或 FTS 扩展。 - 记忆 — 全 Agent 共享的长期记忆:Agent 经
memory_search/memory_save/memory_list工具沉淀事实、偏好与经验,置顶与高热记忆注入系统提示;同一份库可经网关 REST/v1/memories、MCP 工具或omi memory命令行读写。记忆页给出总量 / 置顶 / Agent 写入 / 近 7 天更新 / 检索命中率 / 合并写入 / 累计归档 / 拦截敏感内容等总览指标,并提供「启用记忆」与「写入需确认」两个开关(后者让 Agent / CLI / MCP 的写入先进待确认区)。 - Skills 管理 — 中央技能库(默认
~/.agents/skills)统一管理并同步到各编码工具,53 个内置工具适配器、symlink / copy 两种同步模式;六区界面:技能市场(skillssh 榜单)、我的技能、预设、项目、工具、备份(Git 远端 + 快照 + 自动备份)。
- Pi Agent 三模式 — Agent / Plan(只读工具,先出方案再动手)/ Goal;工具集 = 内置文件 / Shell / 检索工具 + 记忆工具 + 已启用 MCP 服务器的工具,Plan 模式自动排除有副作用的工具。
- MCP 客户端 — 设置页「工具」组管理 MCP 服务器:stdio / Streamable HTTP / 旧版 SSE 三种传输,支持连通检测、工具枚举与 JSON 导入;工具以
mcp_*注入 Agent,连接失败的服务器自动跳过。 - MCP 服务端 — 本地网关
POST /mcp(Streamable HTTP,无状态)把知识库(kb_search/kb_list)与记忆(memory_search/memory_save/memory_list)开放给 Claude Code / Cursor 等任意 MCP 客户端;浏览器打开GET /mcp即内置调试工作台(连接 → 枚举工具 → 按 schema 生成表单 → 调用 → 查看原始 JSON-RPC)。 - 共享记忆三通道 — 内置 Agent 工具、网关 REST / MCP、
omi memoryCLI 读写同一个 SQLite 库;omi launch启动编码工具时自动刷新 CLAUDE.md / AGENTS.md 的托管记忆区块,并给 Claude Code / Codex / OpenCode 挂载omni-memoryMCP 服务器。
- 实时仪表盘 — 吞吐 / 速度(tok/s)、请求数、活跃模型、内存 / CPU 负载、运行时长与模型磁盘占用(数据目录所在卷的可用 / 总容量),每 2 秒轮询。
- 基准测试 — 上下文长度(1K–1M)× 并发档位 × 缓存场景(冷启 / 部分命中 / 完全命中)三种维度组合扫描,逐档记录 TTFT / TPOT / TPS / 聚合吞吐 / Prefill,并用「缓存命中对比」给出冷启与命中的倍数差(llama.cpp 还会自报服务端复用比例,×1 附近即提示服务端没吃到缓存);支持本地或远程服务,结果落库、可导出 HTML,
omi benchmark --contexts 32k --cache cold,warm在命令行跑同一套矩阵。 - 日志查看 — 实时滚动、ANSI 着色、自动滚动与截断保护、复制 / 清空。
- 编码工具集成 — 为 Claude Code(本地 / 云端,Opus–Sonnet–Haiku 三档映射)、Codex、OpenCode、OpenClaw、Hermes、Pi、Copilot CLI 一键生成启动命令并绑定默认模型,并自动接入共享记忆。
- 更新与多语言 — 稳定 / 测试更新通道与应用内更新、自动 / 手动更新检查(关于页可查最新 Release 并跳转下载)、浅色 / 深色 / 跟随系统主题、左侧一级菜单可自定义(设置 → 外观:拖动排序、逐条显示 / 隐藏,配置的顺序就是菜单顺序)、安装引导向导、中英界面、SQLite 会话持久化。
环境要求
- Bun 1.3+
- macOS(Apple Silicon);Linux / Windows 支持规划中
bun install
# 开发模式(HMR,推荐)
cd apps/studio && bun run dev:hmr
# 开发模式(无 HMR)
cd apps/studio && bun run dev
# 生产构建
cd apps/studio && bun run build:devomi 是封装后端能力的全局命令行工具——启动应用、管理推理服务器、配置云端、唤起模型列表、拉起编码工具、读写共享记忆,与桌面应用共享同一个数据库(模型、设置、记忆即时互通)。
cd apps/studio && bun link # 安装全局 omi 命令(放进 ~/.bun/bin)
omi help # 查看全部命令
omi help <命令> [子命令] # 单个命令用法(如 omi help memory add)
omi guide # 完整手册:安装 / 启动 / 模型加载 / 记忆调用 / 编码工具
omi start --server # 启动应用并拉起推理服务器
omi model --select # 终端里选择活动模型(--list 只列出,不带选项打开应用模型列表)
omi models # 本地 + 云端模型清单;omi model-info <名字> 看详情
omi serve --port 8090 # 无界面常驻运行推理服务器(前台长驻,CTRL+C 退出)
omi launch codex --model qwen3-4b-q4_k_m # 拉起编码工具并接入当前模型(自动挂载共享记忆)
omi memory add "偏好用 pnpm" # 写入共享记忆(Agent 与 CLI 共用一份库)
omi memory search 构建工具 # 检索记忆
omi memory mcp # 以 stdio MCP 服务器运行,供编码工具读写同一份记忆
omi server logs # 服务器日志尾部;omi install 检查引擎依赖
omi status原理:应用主进程在数据目录监听 Unix socket(omni-control.sock,0600 权限),omi 通过该通道唤醒窗口、跳转页面、启停服务器、读写设置;应用未运行时 models / model-info / cloud / memory 直接读同一个 SQLite 兜底。
文档:完整手册 docs/omi-cli.md(由 omi guide --md 生成,与应用内「设置 → 工具 → 命令行」同源);旧版 omni 命令(chat / doctor / config 等)见 docs/omni-cli.md。
| 层级 | 技术 |
|---|---|
| 桌面 | Electrobun + Bun |
| 前端 | React 19, Tailwind, shadcn/ui, Zustand, TanStack Query |
| AI | Pi Agent(@earendil-works/pi-agent-core + pi-ai)驱动 Agent 循环;Vercel AI SDK(ai / @ai-sdk/openai-compatible)用于 OCR / 翻译等一次性调用 |
| 推理引擎 | llama.cpp, vLLM, SGLang, MLX, OpenAI-compatible |
| 语音与 OCR | audio.cpp, whisper.cpp, Tesseract, PaddleOCR, Edge-TTS, VLM |
| 视频生成 | MiniMax (H3), Seedance (火山方舟), ComfyUI |
| 知识库与记忆 | 纯 JS 向量化 + BM25×RRF 混合检索 + /v1/rerank 重排(无外部向量库 / FTS)、SQLite 共享记忆 |
| 协议 | MCP(手写客户端 + Streamable HTTP 服务端)、Chat Completions / Responses / Anthropic Messages |
| 数据库 | Drizzle ORM + Bun SQLite |
| 文档处理 | Sharp, pdfjs-dist, @napi-rs/canvas, Cheerio, Turndown |
| 模型市集 | ModelScope OpenAPI, HuggingFace |
| 构建 | Vite, Turborepo, Bun workspaces |
| 代码质量 | oxlint, oxfmt |
apps/
├── studio/ # Electrobun 桌面应用
│ └── src/
│ ├── bun/ # Main process / 主进程
│ │ ├── runtimes/ # llama.cpp / vLLM / SGLang runtime abstraction 运行时抽象
│ │ ├── vllm/ # model profiles & endpoints 模型配置与端点
│ │ ├── db/ # Drizzle schema, migrations, settings 数据库
│ │ ├── skills/ # Skills manager: central repo, sync, presets, backup 技能管理
│ │ ├── control-server.ts # `omi` CLI ↔ 应用控制通道(Unix socket)
│ │ └── ... # chat / voice / image / video / music / OCR / translation / knowledge (RAG) /
│ │ # memory / MCP (client + server) / model hub / downloads / stats / updates
│ │ # 对话、语音、图片、视频、OCR、翻译、知识库、记忆、MCP、模型市集、下载、统计、更新
│ ├── cli/ # `omi` 命令行(bin/omi.ts 入口,复用 bun 数据层与运行时)
│ ├── mainview/ # React UI(components, stores, lib)
│ └── shared/ # shared constants, i18n, engine metadata 共享常量 / 国际化 / 引擎元数据
├── landing/ # marketing site (kunpengtalk.com) 官网
架构详解(进程边界、主进程分层、对外接口面、不变量与已知架构债)见 docs/architecture.md。
- Model hub: ModelScope / HuggingFace downloads, queue, categories, favorites 模型市集(下载队列 / 分类 / 收藏 / 多目录)
- Unified llama.cpp / vLLM / SGLang runtime + remote OpenAI-compatible API 三引擎统一运行时 + 远程 API
- Chat / Voice / OCR apps with per-app sessions; voice multi-engine TTS/ASR + cloning + records 对话 / 语音(多引擎)/ OCR 应用
- Dashboard, benchmarks, log viewer, CLI integrations, update channels, i18n 仪表盘 / 基准 / 日志 / 集成 / 更新 / 多语言
- Image generation loop for the Image app 图片应用生图闭环
-
omiCLI: launch app / server / cloud, model picking, launcher tools, status & logs 命令行 omi(启动应用/服务器/云端、选模型、拉起编码工具、状态与日志) - AI video generation (MiniMax / Seedance / ComfyUI) with task polling and history AI 视频生成(三后端 + 任务轮询 + 历史库)
- AI music generation (StepFun / MiniMax, local engine reserved) — song / cover / vocal scoring AI 音乐生成(StepFun / MiniMax 双协议,本地引擎已预留:歌曲 / 翻唱 / 干声配乐)
- Local RAG knowledge base (hybrid BM25 + vector recall) with chat citations 本地知识库(混合检索 + 对话引用溯源)
- Shared memory across agents (built-in tools, gateway REST / MCP,
omi memory) 跨 Agent 共享记忆(内置工具 / 网关 / CLI 三通道) - Skills manager: central repo, 53 tool adapters, presets, Git backup Skills 管理与中央库同步
- Prompt library: 2,733 bundled prompts (image / video / LLM) with try-it routing + personal list 提示词广场(内置 2,733 条 + 我的提示词)
- Mini apps: 8 sandboxed single-page tools with per-capability gating 小应用(8 个沙箱单页工具 + 能力门禁)
- MCP both ways: client for external MCP servers + gateway
/mcpserver with playground MCP 客户端与服务端(含调试工作台) - Linux and Windows support Linux 与 Windows 支持
- More document formats (PowerPoint, Word, Excel, etc.) 更多文档格式
- Memory lifecycle (idle unload, prefault protection), KV cache tiering with SSD offload 内存生命周期与 KV 缓存分层
- Menu bar / Dock indicators, API key encryption 菜单栏指标 / Key 加密
症状:标题栏、菜单都在,内容区是单一色块;进程活着,后端也正常(http://127.0.0.1:10000/health 能返回)。
原因:WebView2 的 GPU 进程反复崩溃,Chromium 判定 GPU 不可用后就不再产出合成帧 —— 页面 DOM 其实已经渲染好了,只是没画到屏幕上(「有页面、没画面」)。所以这不是前端或安装包的问题,换更干净的载荷也不会变好。
确认(可选):在 %LOCALAPPDATA%\omni-studio.kunpengtalk.com\<channel>\WebView2\Partitions\default\EBWebView\chrome_debug.log 里搜:
GPU process exited unexpectedly
GPU process isn't usable. Goodbye.
解决:让 GPU 走进程内实现,启动前设置环境变量。
# 只对当前终端会话生效,随后从该终端启动 OmniStudio
$env:WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS = "--in-process-gpu":: 或持久设置(之后照常从开始菜单启动)
setx WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS "--in-process-gpu"这个参数只对「GPU 进程崩溃型白屏」有效。若是别的原因导致的白屏(例如前端模块报错),它不会让情况变好 —— 那种白屏要看渲染层控制台日志。等显卡驱动或 WebView2 更新后,可以去掉这个变量、恢复默认渲染路径。
MIT — by 鲲鹏Talk。见 LICENSE。














