单二进制 · 数据不出本机
你的模型,你的电脑,
你的 Agent。
Copher 是一个用 Go 开发的编码智能体。会话、流式输出、工具调用、权限审批、MCP、 子智能体、定时任务和 Git 快照,全部装在一个二进制里;接哪家模型你说了算, 代码和会话记录哪也不去。
Agent 在做什么,你都看得见。
不做黑盒。每一次思考、每一次工具调用、每一处文件改动,都摊在对话流里,随时展开核对。
每次工具调用都能展开看
思考过程逐行流式上屏,橙色 ✻ Thought 标签记录“这里想过”,点一下即可折叠;
工具卡片带着参数与耗时。任务进行中还有一行心跳提示——思考中、执行工具中、输出回答中,
分得清“在跑”和“断了”。
改了什么,一眼看清;不对就撤
每一回合的文件改动以 diff 呈现,/undo 撤回上一回合碰过的文件,
/redo 再应用回来。回合内还有验证与复核的闸门盯着证据,不是模型说“我做完了”就算数。
写出来的东西,直接预览
右侧抽屉就是文件浏览器:markdown、图片、PDF、音视频、docx、代码高亮,当场看; Git 面板、审计日志和应用内终端也住在同一列里。
会话再多,也井井有条。
按项目归档、随时续上;换模型和权限模式,都在输入框旁边,点一下的事。
provider/model 引用,点一下就换。
/chat/completions 的端点,填一个地址就能接进来。
按项目归档,随时续上
会话挂在项目目录下,侧栏分组、搜索、重命名、Fork、删除都在;数据库就是本机一个 SQLite 文件,历史会话打开即恢复。
插话、排队、分支
任务在跑也能继续输入,选排队或直接插话;任何一个回合都能“从此处分支”,试错不毁现场。
人不在电脑前,活照干。
排期、触发、记忆、外层循环——四样东西让 Copher 在合上盖子之后接着替你跑。
-
定时任务
五段 cron 排期一个 prompt,到点自动开跑,结果以通知块落回会话。
/jobs一条命令建好,到点看结果就行。 -
事件触发
不只看钟点:文件变了、会话结束了,都可以触发一轮新任务。租约与防重入都在常驻进程里管好。
-
持久记忆
决定、偏好、踩过的坑,写进可检索的记忆库;下一次会话先读再干,同样的学费不交两遍。
-
quest 与 workflow
quest拿着验收命令做外层循环:不过就再开一个回合,直到全绿;recipe 化的 workflow 把固定流程存下来反复跑。
需要的时候,它都在。
MCP 服务器
标准 MCP 客户端,工具、资源、prompt 都能挂;OAuth 授权与工具白名单内建。
子智能体
一批子任务并发跑,可以各发一份私有工作树,改完交回 patch,由父会话亲手应用。
Skills 与 Agents
一个 markdown 文件就是一个 agent 或一项技能:描述、模型、工具白名单、权限都写在文件头里。
Code Mode
execute工具里跑一段 JS,把十次工具调用写成一次循环,省掉来回的 token。LSP 与格式化
定义跳转、引用查找、诊断和保存即格式化——改完代码,让编译器和 linter 先说话。
持久 shell 与伪终端
目录和环境跨命令保留,长任务放后台;桌面壳里还有一块真正的应用内终端。
附件
图片、PDF、notebook 直接丢进对话,模型看得见,预览也看得见。
沙箱
macOS 走 sandbox-exec,Linux 上 rlimit + Landlock + seccomp 四道闸;约束不了就拒绝启动,绝不裸跑。
中英双语与主题
Web 与终端界面中英双语、深浅色齐备,键位可改,主题跟随系统也能手动切。
终端党的福利,也齐了。
Copher tui 是同一颗心脏的终端壳:思考流、斜杠命令、心跳行、/undo,
和 Web 版共用会话与配置。
/plan、/jobs、/quest、/steer……该有的都有,Select + Enter 补全。
你的代码和密钥,只待在你的电脑上。
Copher 不设账号、不上传会话;唯一出网的,是你自己配置的模型服务商。
留在本机的
- 全部会话与事件日志——一个 SQLite 文件,事件溯源,随时
prune - Git 快照与 undo 历史,改坏了一步就能回去
- API Key:密封后写进本机配置,界面里删不掉手写的注释
- 定时任务、记忆、Skills、agent 定义,全是本地文件
不会发生的
- 没带 token,除静态页面外任何 API 都答不上话
- 输出里的密钥被自动打码成
[redacted …],连日志都看不见原文 - 网页抓来的内容被标记为不可信,不会当成指令来执行
rm -r、sudo、git push --force、terraform destroy这类命令默认先弹审批
两条命令,先跑起来。
不用注册,不用配 Key:内置 fake/echo 离线模型,装完就能完整跑通一次工具回合。
# 编译(要求 Go 1.24+)
go build -o bin/Copher ./cmd/Copher
# 离线演示:fake/echo 会调用 glob 工具,然后汇总结果
./bin/Copher run -dir . "list files in the current directory"
# 想要 Web UI,起服务(浏览器打开 http://127.0.0.1:4096/)
export Copher_TOKEN="$(openssl rand -hex 24)"
./bin/Copher serve -addr 127.0.0.1:4096 -dir . -db ./Copher.db
要更顺手的使用:Copher tui 进终端界面;桌面版是 Tauri 壳,
和终端共用同一批会话;配好模型之后,Copher quest 可以带着验收命令整项目自主推进。
装之前,你可能想知道。
它和一般的编码 agent 有什么不同?
三件事:单二进制,Go 开发,没有任何运行时依赖;存储是事件日志加投影的 SQLite,会话可回放、可清理;权限模型长在核心里——四档模式、命令级审批、输出打码、不可信内容隔离,不是一个可选项。
必须先有 API Key 吗?
不用。内置 fake/echo 离线模型,零配置就能完整跑通工具回合,适合先看一眼它怎么工作;之后想接真模型,/connect 或改配置都行。
支持哪些模型服务商?
OpenAI Chat Completions、Anthropic Messages、Google Gemini 原生协议,以及任意兼容 /chat/completions 的网关(Ollama、vLLM、OpenRouter 等)。模型按 provider/model 引用,可以标注免费与思考档位。
Web UI 要登录吗?
不用登录、不用 cookie。页面本身不带任何会话数据,所以先于 token 放行;token 不对时停在“连接 Copher”卡片上,其余每个 API 路由都要 bearer 认证。
桌面版、Web 版和终端是三份数据吗?
是同一份。桌面壳(Tauri 2)自己不做业务,只是拉起同一个 Copher serve;TUI 甚至不经过 HTTP,直接进程内装配。三个界面打开的是同一批会话、同一份配置。
数据都存在哪里?
你指定的工作目录与数据库文件:默认一个 SQLite(Copher.db),事件日志加物化投影;配置在 ~/.config/Copher/。备份就是复制文件,Copher prune 按保留策略清理旧会话。
把下一个任务,交给它。
go build -o bin/Copher ./cmd/Copher