opcode
winfunc/opcode加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的周一早晨:你打开终端,准备让 Claude Code 帮你重构一个 12 万行的老系统。你敲了三次 claude --resume,翻了三屏历史会话才找到上周那个"改到一半"的上下文;你想并行跑三个任务(一个跑测试、一个改文档、一个查依赖),但终端只有一个光标;你想知道这个月 Claude 花了多少钱,Claude Code 自己不会告诉你;你还想在改崩了以后能一键回到上午 11 点的状态——git stash 帮不上,因为会话上下文不是代码。
opcode 就是来解决这一串问题的。它的作者把 Claude Code 当作一个"命令行黑盒",在旁边加了一层图形界面:会话像文件夹一样可以浏览和搜索,智能体像子进程一样可以后台并行跑并留下日志,费用像仪表盘一样可以按模型/项目/日期拆开看,而每一次对话都可以打成一个"检查点",随时回滚、可以分叉出新分支。

这个项目最早叫 Claudia,由独立开发者 Asterisk(asterisk.so)团队发起,2025 年 6 月开仓,2025 年 8 月 15 日发布 v0.1.0,8 月 31 日发布 v0.2.0。名字随后改成 opcode——一个更像"操作码"的词,也更准确地描述了它的定位:Claude Code 的操作前端,而不是另一个 AI 工具。
它至今保持着专门为 Claude Code 打造的第三方图形界面里 star 数最高的记录(22.4k★、1.7k fork),而 338 个 open issues 也说明它远未到"维护良好"的状态。截至最近一次提交(2026-09-18),主分支在 2025 年 10 月 13 日之后基本停更,仅 2026-09-18 删了一张 README 图片。
如果 Claude Code 是引擎,opcode 就是仪表盘加中控屏。引擎的输出(token 流、工具调用、退出码)还是引擎产生的,仪表盘不替代引擎,它做三件事:把散落在磁盘各处的日志收拢到一个界面里;把需要肉眼盯着的任务(并行跑 agent)交给后台进程;把不可见的状态(token 消耗、会话拓扑)画成图表。
这个定位决定了它的能力边界:它不自带模型。所有推理都走本地安装的 Claude Code CLI,Anthropic 的 API Key、配额和账单仍由使用者自己负责。
启动时自动扫描 ~/.claude/projects/,把 Claude Code 散落的会话文件组织成可视化项目树。每个会话显示首条消息摘要、时间戳和元数据,支持搜索与一键 resume。对那些同时开五六个项目的人来说,这是最实用的功能——它解决的是"我上次在哪个项目里让它干的那件事"。
这是 opcode 的差异化功能。你可以定义带名称、图标、自定义系统提示词和权限(文件读写、网络访问)的智能体,然后以后台独立进程运行,不阻塞前台界面。每次运行都会留下执行历史和日志。
仓库里自带三个示例 agent:git-commit-bot.opcode.json、security-scanner.opcode.json、unit-tests-bot.opcode.json,用户可以直接导入改写。这也是它的关键差异点——Claude Code 自带的 subagent 是会话内的临时存在,而 opcode 的 agent 是可导入、可导出、可版本化的"产品化"资产。
按模型、项目、日期维度统计 token 与费用,可视化图表,支持导出数据用于财务对账。这是一个很实际的需求:Claude Code 本身不提供跨会话的成本报表。
用界面管理 Model Context Protocol 服务器:手动添加、粘贴 JSON、从 Claude Desktop 配置导入、连通性测试。相比手改 ~/.claude.json,对不熟悉 MCP 配置格式的用户友好度提升明显。
会话级版本控制:在任意时刻打检查点,可视化时间线导航,一键回滚到某个已知良好状态,还能从检查点分叉出新分支继续试错,并提供 diff 查看器。这是纯终端和多数竞品都不具备的能力,README 里的 Thinking Workspace 与会话分支树设计即源自此。
内置编辑器直接改写各项目的 CLAUDE.md,带实时预览、语法高亮和全项目扫描。对需要维护多份项目级规则文件的团队很方便。
前端:React 18 + TypeScript 5.6 + Vite 6 + Tailwind CSS v4 + shadcn/ui + Zustand + Recharts
后端:Rust (edition 2021) + Tauri 2 + tokio + rusqlite(SQLite) + reqwest + axum(可选 Web 服务)
打包:Bun 作为包管理器,tauri build 产出 .deb/.AppImage/.dmg/.msi
Rust 后端按命令域拆分为 commands/agents.rs(70KB)、commands/claude.rs(82KB)、commands/mcp.rs、commands/usage.rs、commands/slash_commands.rs、checkpoint/(时间线与检查点)、process/(后台进程管理)。另有一条 web_main.rs / web_server.rs(29KB,基于 axum)分支,把同一套能力以本地 Web 服务形式提供,前端通过 WebSocket 接收流式输出。
值得注意:claude_binary.rs 有 24KB,负责在不同平台定位 claude 可执行文件(曾专门修过 Windows 下的检测问题),并提供 opcode-web 这个独立二进制——也就是说 opcode 除桌面形态外还有"本地起个 Web UI"的部署选项。
必须有 Claude Code CLI。 opcode 是 CLI 的包装器而非替代品,claude 必须已在 PATH 中。
libwebkit2gtk-4.1-dev、libgtk-3-dev、libxdo-dev、libsoup-3.0-dev 等一整套 WebKit/GTK 依赖。命令是 bun install → bun run tauri dev。整体属于"中等偏难":不是 Docker 一键,但也不涉及 GPU 和模型部署。opcode-web 可作为本地服务跑起来,浏览器访问,适合在无桌面环境或远程开发机上使用。硬件要求极低:4GB 内存(推荐 8GB)、1GB 磁盘,不需要 GPU——所有推理都在 Anthropic 云端完成。
项目活跃度是最大的问号。 主分支最后一次功能性提交在 2025 年 10 月 13 日,此后近一年只有一次删图提交。338 个 open issues 悬而未决。有第三方评测直接把它标为"no public commits since October 13, 2025",并建议选型时"自己打开 commit history 看看"。仓库未归档,维护者可能随时回来,但也可能长期沉寂。
AGPL-3.0 的传染性。 这是被反复强调的一点:AGPL 的 copyleft 条款会延伸到"通过网络提供服务的衍生作品",任何基于 opcode 的修改并对外提供网络服务,都可能触发源码开放义务。内部使用、二次分发商用前,务必让法务确认义务边界。
安全模型的两个注意点。 README 声明"Process Isolation(进程隔离)""Per-agent 权限控制""All data stays on your machine""No telemetry"。但项目依赖列表里出现了 posthog-js(产品分析服务)和 AnalyticsConsent.tsx 组件——即"无遥测"并非绝对,前端存在 PostHog 集成(虽带同意流程),企业内网部署时需自行核查外联行为。另外,Agent 运行本质是在本机以配置好的权限执行命令,权限授予需谨慎。
版本停留在 0.2.1。 语义化版本的 0.x 阶段意味着破坏性变更会直接出现,不适合直接固化进生产工作流。
opcode 代表的其实是一类正在成型的产品形态:Claude Code 生态的第三方 GUI 层。同类还有浏览器形态的 CloudCLI(claudecodeui)、macOS 原生的闭源 crystl。有意思的是,社区对比文章给出的结论是——没有一个"最好的 Claude Code UI",选型取决于形态偏好:想要跨平台免费开源桌面应用 + 检查点模型,选 opcode;想在任意浏览器里用,选 CloudCLI;想在 Mac 上极致原生体验,crystl 是闭源付费的。
这个格局本身说明了一件事:Anthropic 官方只提供 CLI,没有官方图形客户端,围绕它的第三方工具链因此有了生存空间。22.4k star 是这个缺口规模的直接证据。
对团队落地的判断:opcode 适合作为 Claude Code 的可视化增强层引入试点,尤其是需要并行 agent、会话回滚和成本归因的场景;不适合作为"必须长期稳定"的平台级依赖——项目活跃度与 AGPL 授权是两个需要向上反馈的风险点。若要试点,建议锁定 v0.2.0 版本,先在非核心仓库上验证。
