cc-haha 是什么?一个把 Claude Code 做成桌面工作台的项目

整理 NanmiCoder/cc-haha 项目的定位、桌面端能力、Computer Use、多模型接入、H5 远程访问、安装方式和风险边界。它更像一个 Claude Code 桌面工作台,而不只是命令行工具。

cc-haha 是一个围绕 Claude Code 工作流改造出来的项目。它的完整仓库名是 NanmiCoder/cc-haha,项目页面写得很直接:它基于 2026-03-31 从 Anthropic npm registry 泄露的 Claude Code 源码修复而来,现在主要形态是一个桌面端 Claude Code 工作台。

项目地址:https://github.com/NanmiCoder/cc-haha

这句话里有两个重点。

第一,它不是 Anthropic 官方 Claude Code。项目 README 也明确写了原始源码版权归 Anthropic 所有,仅供学习和研究用途。

第二,它现在的重点已经不只是“本地跑一个 Claude Code CLI”。从 README 和最新 release 看,cc-haha 更像一个把 Claude Code 的会话、项目、权限、Diff、Computer Use、远程访问和模型提供商配置集中起来的桌面应用。

它想解决什么问题

Claude Code 原本是偏终端的工具。会话、命令执行、权限确认、文件修改、上下文切换都在终端里完成。对熟悉 CLI 的人来说没问题,但长期使用时会遇到几个不方便的地方:

  • 多个项目和多个会话不好同时管理。
  • AI 改了哪些文件,需要自己切到 Git 或编辑器里看。
  • 权限审批、命令执行、文件 Diff 分散在不同界面。
  • 想在手机或其他设备上远程看当前会话,需要额外方案。
  • 想接入非 Anthropic 模型,需要自己处理协议兼容。

cc-haha 的方向就是把这些东西做成一个图形化工作台。它并不是只给 Claude Code 换皮,而是把“会话管理”和“本地开发流程控制”放到了桌面端里。

桌面端工作台:从终端变成控制台

根据 README,cc-haha 桌面端把这些能力集中到 macOS / Windows App 里:

  • 多会话工作台:用标签页、项目切换、终端入口和历史记录管理不同任务。
  • 分支 / Worktree 启动:新会话可以选择仓库分支,也可以选择使用当前工作树或隔离 Worktree。
  • 右侧代码改动面板:聊天时直接查看修改过的文件、增删行和工作区状态。
  • 代码修改可视化:查看 AI 对文件的编辑、Diff 和执行过程。
  • 权限与确认流:把危险命令、工具调用和 AI 反问集中到桌面端审批。
  • 多模型提供商:支持 Anthropic 兼容 API、第三方模型、WebSearch fallback 和本地配置。
  • H5 远程访问:用一次性 token 在手机或其他设备上接入当前桌面会话。
  • IM 接入:通过 Telegram、飞书、微信、钉钉远程对话、切换项目和审批权限。
  • 定时任务与 token 用量统计:在桌面端创建计划任务,并查看本机 token 使用趋势。

这类功能说明它更接近“AI 编程工作台”,而不是单纯的命令行替代品。它想把 AI 写代码时最常见的几个界面放到同一个地方:聊天、文件改动、权限、项目、远程入口、模型配置。

安装和启动方式

普通用户更适合从 Releases 下载桌面端安装包。

项目 README 给出的桌面端安装流程是:

  1. 前往 GitHub Releases 下载 macOS 或 Windows 安装包。
  2. 首次启动后,在桌面端设置里配置模型提供商、API Key 和默认模型。
  3. 如果 macOS 提示应用无法打开,按安装指南处理 Gatekeeper 权限。

最新 release 页面显示,v0.2.6 发布于 2026-05-13。这个版本主要围绕 H5 手机访问安全恢复、桌面会话管理、文件提及搜索和桌面体验细节。

如果想从源码启动 CLI,README 给出的命令是:

1
2
3
bun install
cp .env.example .env
./bin/claude-haha

这个路径更适合想调试底层 CLI、服务端或自行开发的人。普通使用还是桌面端更直接。

v0.2.6 更新了什么

v0.2.6 的重点是把 H5/LAN 访问从临时放行收回到显式开启和 token 配对模型。

几个值得注意的变化:

  • H5/LAN 访问需要本地显式开启。
  • QR 链接会携带一次性显示的 token。
  • 远程 API、proxy 和 WebSocket 不再裸露。
  • Settings 新增独立 H5 Access 页面。
  • 桌面侧边栏增加批量管理模式,支持多选和删除会话。
  • 桌面文件提及搜索改为 git-first,遵守 ignore 规则,减少 node_modules 和构建产物噪声。
  • 新增纯白主题,修复长 URL 撑破聊天布局、多 tab 草稿串台等问题。

这说明项目已经不只是“能跑”,而是在补桌面产品需要的安全边界和日常体验。

尤其是 H5 访问这一块,作者在 release 里明确提醒:H5 是给个人或可信团队使用的浏览器访问入口,不是公开多租户登录系统。实际使用时,不应该把它当成公网开放的 SaaS 登录后台。

Computer Use:让 Agent 操作桌面

cc-haha 另一个重要卖点是 Computer Use。

项目文档说明,这个功能基于 Claude Code 泄露源码中的 Computer Use 内部实现改造而来。官方实现依赖 Anthropic 内部私有原生模块,例如 @ant/computer-use-swift@ant/computer-use-input,无法公开获取。cc-haha 用 Python bridge 替换底层操作层,通过 pyautoguimsspyobjc 等公开库实现系统交互。

Computer Use 支持的操作包括:

  • 截屏:screenshotzoom
  • 鼠标:点击、拖拽、移动、滚动、读取光标位置
  • 键盘:输入文字、按键、按住按键
  • 应用:打开应用、切换显示器
  • 权限:请求应用授权、列出已授权应用
  • 剪贴板:读取和写入剪贴板
  • 其他:等待、批量操作

它的工作方式是一个“截图 - 分析 - 操作”的闭环:

  1. 模型收到用户请求。
  2. 调用 screenshot 获取屏幕画面。
  3. 模型根据视觉能力识别按钮、输入框和坐标。
  4. 调用点击、输入或应用操作工具。
  5. 再次截图确认结果,再继续下一步。

从文档看,完整支持的平台主要是 macOS,包括 Apple Silicon 和 Intel。Windows / Linux 在理论上可行,但涉及 pyobjc 的应用管理部分需要替换为对应平台方案,当前并不是完整适配状态。

运行要求包括:

  • Bun >= 1.1.0
  • Python >= 3.8
  • macOS Accessibility 辅助功能权限
  • macOS Screen Recording 屏幕录制权限

这类功能很强,但也意味着权限风险更高。让 AI 操作桌面应用时,最好只授权明确需要的应用,不要在无关窗口里打开敏感内容。

多模型接入:通过 Anthropic 协议兼容层

cc-haha 的通信基础仍然是 Anthropic Messages API 协议。项目文档给出的推荐方案是用 LiteLLM 做协议转换代理。

基本结构是:

1
claude-code-haha ──Anthropic协议──▶ LiteLLM Proxy ──OpenAI协议──▶ 目标模型 API

也就是说,cc-haha 发出 Anthropic Messages API 请求,LiteLLM 把它转换成 OpenAI Chat Completions 等格式,再转发给 OpenAI、DeepSeek、Ollama 或其他模型服务。

文档给出的 LiteLLM 安装方式是:

1
pip install 'litellm[proxy]'

然后可以在 litellm_config.yaml 里配置 OpenAI、DeepSeek、Ollama 等模型。启动代理后,在 .env~/.claude/settings.json 里设置:

1
2
3
4
5
6
7
8
9
ANTHROPIC_AUTH_TOKEN=sk-anything
ANTHROPIC_BASE_URL=http://localhost:4000
ANTHROPIC_MODEL=gpt-4o
ANTHROPIC_DEFAULT_SONNET_MODEL=gpt-4o
ANTHROPIC_DEFAULT_HAIKU_MODEL=gpt-4o
ANTHROPIC_DEFAULT_OPUS_MODEL=gpt-4o
API_TIMEOUT_MS=3000000
DISABLE_TELEMETRY=1
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

这里有几个实际注意点:

  • drop_params: true 很重要,因为 Anthropic 的 thinkingcache_control 等参数在 OpenAI API 中不存在。
  • Extended Thinking 属于 Anthropic 专有能力,使用第三方模型时不可用。
  • Prompt Caching 也不会按 Anthropic 原生方式生效。
  • 工具调用会经过 Anthropic tool_use 到 OpenAI function calling 的转换,复杂工具调用可能存在兼容性问题。
  • 本地 Ollama 小模型未必能稳定处理这套工具调用流程。

所以多模型接入能跑,不等于所有模型体验一样。cc-haha 对模型的工具调用、代码理解和长上下文能力要求仍然不低。

适合什么人

cc-haha 更适合这几类用户:

  • 已经熟悉 Claude Code,但想要桌面端会话管理的人。
  • 经常同时处理多个仓库、分支和 AI 会话的人。
  • 希望在右侧直接看 AI 文件改动、Diff 和工作区状态的人。
  • 想尝试 Computer Use,让 Agent 操作桌面应用的人。
  • 想用 Anthropic 协议接入 OpenAI、DeepSeek、Ollama 或其他模型的人。
  • 需要手机或 IM 远程查看会话、审批权限的人。

不太适合:

  • 只想稳定使用官方 Claude Code 的用户。
  • 不能接受泄露源码背景和版权不确定性的人。
  • 不愿意给本地工具较高系统权限的人。
  • 需要企业合规、审计和官方支持的人。
  • 不熟悉 API key、代理、模型兼容和本地服务配置的人。

风险和边界

这篇文章不能只讲功能,也必须讲风险。

cc-haha 的来源决定了它不是一个普通的社区重写项目。README 明确写到它基于泄露的 Claude Code 源码,且原始源码版权归 Anthropic 所有。这会带来版权、合规和长期维护上的不确定性。

另外,Computer Use、H5 远程访问、IM 接入和本地权限审批都属于高权限能力。它们越方便,越需要清楚边界:

  • 不要在不可信网络下开放 H5 访问。
  • 不要把 token 当作长期公开登录凭证。
  • 不要给 Agent 操作不相关的敏感应用。
  • 不要在生产环境或公司合规环境里随意接入。
  • 不要把第三方模型代理和 API key 配置暴露到公共仓库。

如果只是学习 AI 编程工具架构、桌面端工作流和 Computer Use 实现,它很有参考价值。如果要放进长期生产工作流,就要先评估法律、权限、安全和维护风险。

总结

cc-haha 最值得关注的地方,不是“它能不能复刻 Claude Code”,而是它把 Claude Code 类型的 AI 编程工具推向了桌面工作台形态。

会话、项目、Worktree、Diff、权限、远程访问、Computer Use、多模型提供商、定时任务和 token 用量统计都被放进同一个桌面体验里。这说明 AI 编程工具的下一步,不只是模型更强,也包括工作流界面更完整。

不过它的边界也很清楚:这不是 Anthropic 官方产品,来源存在敏感背景,高权限能力需要谨慎使用。更合适的态度是把它当成一个观察 AI 编程工具演化方向的项目,而不是无脑替代官方 Claude Code。

参考资料

记录并分享
使用 Hugo 构建
主题 StackJimmy 设计