在终端中使用 AI 编写代码,无需 Electron 和 Node.js
大多数现代 AI 编码助手都采用大致相同的构建方式。它们被打包成庞大的 Electron 应用,拖带着 Node.js、Python 或其他重型运行时,在发出第一个请求之前就消耗数百兆字节的 RAM,还试图接管整个屏幕。如果你使用的是性能较弱的服务器、老旧笔记本电脑,或者只是更喜欢快速的 Unix 工具,这种方式很快就会让人感到沮丧。
最近偶然发现了 Alexander Chekhovsky 开发的一个有趣项目 hax。这是一个用纯 C 编写的紧凑型终端编码助手。作者决定逆流而上,不走重型包装器的路线,而是创建了一个启动迅速、仅占用几兆字节的工具。

它是什么以及为什么你需要它
Hax 是一个编译成单一原生二进制文件的 CLI 工具。该进程在内存中仅占用几兆字节。如果你在工作站上通过 llama.cpp 直接运行本地神经网络,每节省一 GB 的 RAM 都很重要,因为内存需要用于模型上下文和权重。
这个工具是为那些不想看到插件市场、臃肿的 Web 仪表盘和无尽的权限确认对话框的人设计的。这里的一切都遵循经典的 Unix 哲学:有 stdin、stdout、清晰的配置文件,以及将工具嵌入常规管道的能力。
这个项目在实践中的亮点
与许多围绕 API 的 CLI 包装器不同,hax 被专门设计为用于持续控制台工作的工具。
对终端友好
Hax 不会破坏终端回滚,也不会通过 ncurses 重绘整个屏幕。该工具输出流式 Markdown 并自动换行,只更新当前行或输入区域。你的整个终端历史记录保持不变,文本可以用鼠标安全复制,不会出现伪图形伪影。
轻松使用本地模型
对于本地运行,只需启动 llama-server 或启动 ollama。Hax 可以自动检测正在运行的 llama.cpp 实例,确定模型参数,并调整上下文。无需编写多页 JSON 配置来进行本地测试。
网络请求透明度
在任何时候,你都可以在交互式会话中按 Ctrl+T,查看发送给模型的完整记录以及返回的响应。如果你正在调试提示词或想验证额外文件是否泄露到上下文中,这个功能可以省去很多麻烦。还有一种模式可以收集详细的网络协议日志。
支持不同的提供商
该工具可与标准云 API 和本地引擎配合使用:
- 通过
OPENAI_API_KEY的 OpenAI 及兼容端点 - 通过
ANTHROPIC_API_KEY的 Anthropic Claude - OpenRouter、OpenCode Zen / Go
- 通过交互式 ChatGPT 订阅登录的 Codex(
/login) - 本地 llama.cpp 和 Ollama
安装和构建
Hax 可在 Linux、macOS、FreeBSD 和 OpenBSD 上运行,Windows 用户可以在 WSL 中运行它。
在 macOS 和 Linux 上,安装该工具最简单的方式是通过 Homebrew:
brew install oleksandrchekhovskyi/hax/hax
在 Arch Linux 中,该软件包在 AUR 中以 hax 的名称提供。
如果你想手动构建二进制文件并与系统库链接:
git clone https://github.com/OleksandrChekhovskyi/hax.git
cd hax
scripts/install_deps.sh
make
make install
依赖脚本会拉取 C 编译器、libcurl、jansson、meson、ninja、pkg-config、fzf,以及通过 @file 语法进行文件名自动补全的 @file。
如何使用它
主要操作模式是直接在项目目录中的交互式 REPL:
hax
内部提供了斜杠命令。例如,/provider 输出可用后端和模型的列表,而 /help 显示热键。Hax 会记住运行之间的选定模型和提供商。
对于脚本和快速自动化,有一种一次性模式 -p:
# Задать разовый вопрос по коду в текущей папке
hax -p "найди места с утечками памяти в main.c"
# Передать данные через пайп
git diff | hax -p "напиши понятный commit message по этому диффу"
# Продолжить последнюю сессию для этого каталога
hax -c
在 -p 模式下,该工具只向 stdout 输出干净的响应,将服务提示发送到 stderr。这使得它可以轻松地与 grep、xargs 和其他 Unix 工具结合使用。
底层原理
该项目使用标准 C 编写,没有重型框架。网络请求通过 libcurl 处理,JSON 解析和构建依赖一个紧凑的库 jansson。
整个架构围绕代码可审计性构建。会话和设置按照 XDG 标准存储为纯文本文件。功能通过生成操作系统子进程来扩展,而不是使用复杂的插件系统。
这个项目适合谁
如果你需要带有内置聊天和可视化图表的重型 IDE 套件,hax 可能不适合你。这里没有插件或编辑器菜单集成。
但如果你习惯在 tmux 中工作,通过 llama-server 在自己的硬件上运行本地 LLM,或通过 SSH 管理远程服务器,hax 绝对值得一试。它不张扬,不消耗资源,只做你要求它做的事情。
相关项目