从 Cha 到 Ch
重大公告
我正在终止 Cha 并专注于 Ch。在 2025年8月23日 我将 Cha 标记为已弃用,并将所有未来的开发工作指向 Ch。现在的理念很简单:保留一个 简单、轻量且快速 的工具,维护它并修复错误。不追逐新特性。
我最初构建 Cha 的原因
当 LLM 和 ChatGPT 还很新时,我想要的 CLI 工具从未出现。ChatGPT 于 2022 年 11 月发布,并在 2023 年初随 GPT-4 的发布真正走红。我一直在等待可靠的命令行工具出现,但它们都没有以我想要的方式工作。因此我构建了 Cha 并每天使用它。事实上,在我的 第一篇博客文章 中,我直言不讳:此类项目很常见,但没有一个满足我的需求,于是我自己写了一个。
Cha 是我的心头宝。我每天使用它并热爱对它的开发。在一年之内,它通过在 GitHub 上累计 +60 星稍有增长。在此期间,它加入了网页抓取、YouTube 字幕获取、图像生成、多行输入、交互式/非交互式聊天、语音转文字提示输入、对自定义工具的支持、对除 OpenAI 之外的各种平台的支持、自己的答案搜索引擎、先进的目录导航与文件编辑、复制内容到剪贴板的功能、响应的文本转语音等。它做了很多,运行良好,且作为命令行工具 非常有用且强大。
为何迁移到 Ch(Python 到 Go)
随着时间推移,Cha 变得臃肿。功能集很棒,但对我日常所需来说覆盖面过大,导致 Cha 非常臃肿。它是用 Python 编写的,这带来了两个关键问题。其一是 速度,即使经过大量优化和工程手段绕过 Python 缓慢的初始包导入时间并使用多进程,初始加载时间仍然需要 0.8 秒。而且 Python 非常 难以安装。由于 Cha 依赖各种第三方开源工具,安装过程非常困难。我的突破点是当我仅携带一台运行 iTermux 的 Android 平板旅行时,它根本无法工作,且让它勉强工作非常痛苦且毫无意义。
所以我决定启动一个名为 Ch 的新实验。Ch 将像 Cha 一样,但改用 GoLang 编写,而不是 Python,并仅包含 Cha 的 核心特性,旨在轻量、快速、易于在大多数系统上安装,并且不那么功能繁重。这样做可以让单人维护者更容易维护项目。
在使用和开发 Ch 几个月后,我看到 Cha 的未来在于 Ch,而不是原始的 Cha 代码库。我在 Cha 上花费了太多时间,作为单个开发者维护两个代码库既耗时又困难,而 Ch 完成了核心工作,同时 更轻量、更快速、更易于安装。这让决定变得明确……
Go 重写为我带来了 快速启动、单一二进制文件,以及更小的认知模型。Ch 的 README 很好地概括了这一点:Ch 是后继者,启动速度提升超过 10 倍,性能显著提升。
决定
我在 2025年8月23日 正式 弃用 Cha,并通过 Cha 的 README 将人们指向 Ch。Cha 仓库仍作为历史参考保留,我将 Ch 维持在 维护模式,专注于 稳定性和错误修复,除非值得或关键,否则几乎不添加新功能。
Ch 今日包含的功能
Ch 覆盖了日常工作流而不臃肿:
- 高性能启动,使用 GoLang 编写的轻量 CLI
- 多提供商支持(OpenAI、Groq、DeepSeek、Anthropic、XAI、Together、Gemini、Mistral、Ollama)
- 交互式和直接模式,可从任何命令管道输入,文件和目录加载,令牌计数,代码块导出,聊天历史查看,模型/平台切换,回溯,代码转储,Shell 会话记录,剪贴板集成
- 内置网页抓取和搜索,包括 YouTube 链接处理,以直观方式集成
与 Cha 相比,Ch 缺少的内容(以及原因)
Ch 只保留 Cha 的 核心特性,因此我从 Ch 中剔除了以下 Cha 功能:
- 高级的 “Editor” UI 和 “Answer Search” 不会迁移
- 音频、视频、图像摄取,语音转文字和文字转语音,以及一些额外的导出和代码转储功能不在优先考虑范围
- Cha 中的部分导航助手和 “更改根目录” 行为在 Ch 中不存在
- 本地 “带保存聊天的配置文件” 故意不设为默认路径
我将其中许多标记为臃肿或 “可有可无”。我认为关键的是 网页浏览和网页抓取,虽然在 Ch 中缺失,但我已将其感知集成到 Ch 中,使核心循环完整且无需其他功能。不仅如此,Ch 还有一个名为 !x 的新功能,它在你仍处于 Ch 会话时记录 Shell 会话并将其加入聊天历史,允许你使用其他 CLI 工具并将其输出保存给模型(如果需要)。此功能让你在不让 Ch 变得臃肿的情况下,获得许多原本 Cha 中缺失的功能。
Ch/Cha 与 Claude Code 对比
在 2025年7月,我撰写了一篇 比较,将 Cha 与最新的 AI 驱动 CLI 工具进行对比,以说明 Cha 提供而这些工具未具备的价值。了解这一点后,我仍想在本博客中加入此内容,因为 Ch 的核心价值与之相同,且 比较仍然成立,即使在此切换数月后也是如此。同样的理念同样适用于 Ch。
关键差异
- Ch/Cha 方法强调在每一步都由用户完全控制,不使用后台 AI 工作者进行自主决策。你获得明确的、由用户控制的上下文管理,日常活跃使用的费用通常在每月 $1 到 $20 之间。没有意外编辑,一切由用户引导,适合深度参与和严格的成本控制。
- 像 Claude Code 和 Gemini 这样的代理式 CLI 采用不同路径,使用自动化工作流决策和智能代理进行自主选择。它们处理 AI 管理的上下文和文件,费用通常在每月 $10 到 $200+ 之间,适用于类似使用水平。它们在自主代码修改方面表现出色,是快速原型制作和委托的理想选择。
何时选择 Ch/Cha 风格
- 成本最低且完全透明
- 对每次交互拥有完整控制
- 深度参与你的开发过程
- 对敏感项目进行明确的上下文管理
何时选择代理式工具
- 快速原型制作和快速迭代
- 偏好 AI 自动化和委托
- 重视速度而非成本
推荐
没有万能钥匙。没有任何工具能覆盖所有情况。Ch 适合成本效益高的日常任务和精确控制。像 Claude Code 或 Gemini CLI 这样的代理式工具在复杂的、多文件、多环境的编码场景中表现出色,侧重于速度和自动化。当你想降低成本并保持控制时使用 Ch;当你需要快速迭代且不介意将控制权委托出去时使用代理式工具。许多人先使用 Ch 学习良好的交互模式,然后随着需求演变再加入代理式工具。
Cha 与 Ch 的未来
Cha 与 Ch 的未来如下。Cha 已 弃用并归档,仅作为历史参考。Ch 现在是新的 Cha。它将继续 维护、增强(如有需要)并使用。我将强力抵制 功能膨胀。今后,当我提及 Cha 时指的是 Ch,而旧的基于 Python 的 Cha 将称为 “Cha v0” 或 “旧 Cha”。有了这些前提
致谢
如果你从一开始就关注 Cha 的历程,谢谢你。那个项目教会了我很多,并推动我走向更符合我实际工作方式的版本,同时也更有利于整个社区。如果你是新手,开始使用 Ch 并 保持简洁!