从 Cha 到 Ch

项目的 GitHub 仓库

大公告

我将 Cha 停止维护,专注于 Ch。在 2025年8月23日,我将 Cha 标记为弃用,并将所有未来的开发工作指向 Ch。现在的理念很简单:保持一个 简单、轻量和快速 的工具,维护它,修复错误。不追求新特性

我最初为什么构建 Cha

当 LLM 和 ChatGPT 刚出现时,我想要的 CLI 工具从未出现。ChatGPT 于 2022 年 11 月发布,并在 2023 年初随着 GPT-4 的发布而真正流行。我一直在等待可靠的命令行工具出现,但没有一个真正符合我的需求。因此,我构建了 Cha,并每天使用它。事实上,在我的 第一篇博客文章 中,我明确表示:这样的项目很常见,但没有一个满足我的需求,所以我写了自己的。

Cha 是我的心血。我每天使用它,并喜欢在上面工作。在一年内,它通过获得 +60 个 GitHub 星标而稍微成长。在此期间,它增加了网页抓取、YouTube 字幕提取、图像生成、多行输入、交互式/非交互式聊天、STT 提示输入、支持自定义工具、支持除 OpenAI 之外的各种其他平台、自己的答案搜索引擎、先进的目录导航和文件编辑、将内容复制到剪贴板、响应的 TTS 等等。它做了很多事情,工作良好,作为命令行工具真的 有用且强大

为什么迁移到 Ch(从 Python 到 Go)

随着时间的推移,Cha 变得臃肿。功能强大,但对于我日常所需的表面面积太大。这导致 Cha 变得非常臃肿。它是用 Python 编写的,这引入了两个关键问题。一个是 速度,初始加载时间仍然需要 0.8 秒,而这已经是在进行了大量优化和工程以绕过 Python 缓慢的初始包导入时间和使用多进程之后的结果。而且 Python 的安装非常 具有挑战性。由于 Cha 依赖于各种第三方开源工具,安装起来非常困难。我的临界点是当我只带着一台运行 iTermuxAndroid 平板电脑旅行时,它根本无法工作,想要让它勉强工作非常痛苦且毫无意义。

所以我决定开始一个新的实验,叫做 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 链接处理,以简单明了的方式集成

Ch 与 Cha 相比缺少的功能(及原因)

Ch 尝试仅保留 Cha 的 基本功能,但在这样做时,我从 Ch 中删除了以下 Cha 功能:

  • 高级 “编辑器” UI 和 “答案搜索” 不会转移过来
  • 音频、视频和图像摄取、语音转文本和文本转语音,以及一些额外的导出和代码转储功能不是优先事项
  • Cha 中的一些导航助手和 “更改根目录” 行为在 Ch 中没有
  • 本地 “保存聊天的个人资料” 故意不是默认路径

我将许多这些标记为臃肿或 “可有可无”。我认为关键的是 网页浏览和网页抓取,这在 Ch 中缺失,但我已经将其集成到 Ch 中,因此核心循环在没有其他内容的情况下是完整的。不仅如此,Ch 还有一个新功能 !x,可以在你仍在 Ch 会话中时录制 shell 会话,并将其添加到聊天历史中,允许你使用其他 CLI 工具并保存它们的输出供模型使用。这个功能使你能够将 Cha 中许多原本缺失的功能引入 Ch,而不需要 Ch 承担所有的负担并变得臃肿。你可以在这篇新的 博客 文章中了解更多关于 Ch 的信息。

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。它将继续 维护、增强(如有必要)和使用。我将强烈抵制 Ch 的 功能膨胀。往前走,当我说/提到 Cha 时,我指的是 Ch,而旧的基于 Python 的 Cha 将被称为 “Cha v0”“旧 Cha”。考虑到这一点

感谢

如果你从一开始就关注 Cha 的旅程,谢谢你。这个项目教会了我很多,并推动我朝着一个更符合我实际工作方式的版本发展,同时也更好地服务于整个社区。如果你是新来的,开始使用 Ch保持简单