Hacker News 中文摘要

RSS订阅

Hax – 一个用C语言编写的极简终端原生编程助手 -- Hax – a minimalist, terminal-native coding agent written in C

文章摘要

hax是一款轻量级、终端原生的编码代理工具,采用单一C语言二进制文件,启动快且内存占用低(仅几MB)。它优先支持本地模型,自动发现模型和运行时能力,无需自定义配置。尊重终端操作,保留原生滚动,支持流式Markdown和实时工具输出。提供可检查的对话记录和详细协议追踪,兼容多种AI提供商(如OpenAI、Anthropic等)。作为Unix工具,遵循XDG路径规范,配置和会话文件为纯文本。目标用户是终端开发者、本地模型运行者、工具审计者及资源受限环境下的代理使用者。

文章总结

好的,这是根据您的要求,对原文进行中文重述后的版本:

设计轻量

hax 是一个极简的、原生终端的编码助手。它采用单个原生 C 语言二进制文件,依赖集很小,启动迅速,内存占用极低(仅几MB),从而为本地大语言模型(LLM)留出更多内存。

本地模型优先

hax 能自动发现模型和运行时能力,默认设置无需自定义提供商配置。例如,使用 llama.cpp 时,只需运行 llama-server -m [model].ggufhax --provider llama.cpp 即可。

尊重终端体验

hax 支持流式 Markdown 和实时工具输出,并针对终端显示进行重排。它仅重绘当前流式行或输入区域,保留原生回滚功能,不会接管或干扰您的终端。

可审查

您可以通过 Ctrl+T 查看发送给模型的精确内容及其回复的可用转录视图。此外,还可以选择收集详细的线路协议跟踪。

支持多种提供商/模型

hax 支持 OpenAI(及兼容接口)、Anthropic(及兼容接口)、Codex(通过 ChatGPT 订阅)、OpenRouter、llama.cpp 等。

行为规范的 Unix 工具

hax 遵循 XDG 路径规范,在 -p 单次模式中,标准输出干净,标准错误输出包含恢复提示。它使用纯文本配置和会话文件,通过子进程而非插件进行组合。

目标用户

hax 面向那些在终端中工作、运行本地模型、审计工具行为、为发行版打包软件,或在资源受限环境中运行代理的开发者。如果您需要 MCP 市场、插件运行时、IDE 面板或每条命令的权限提示,其他代理工具正好提供这些功能——hax 刻意不包含它们,其哲学文档解释了每项省略及其替代模式。

如果您觉得“将新奇 AI 技术融入复古极简包装”这个理念很合口味,那么您可能会喜欢 hax。

开始使用

hax 支持 Linux 和 macOS;在 Windows 上,请通过 WSL 使用。

在 macOS 或 Linux 上,可通过 Homebrew 安装:brew install oleksandrchekhovskyi/hax/hax

在 Linux 上,可从最新发布版下载适用于您架构(x86_64 或 aarch64)的预构建静态二进制文件,然后将 hax 二进制文件解压到 PATH 中的任意目录。

从源码构建会生成一个链接到系统共享库的二进制文件(而非静态链接)。构建步骤包括:克隆仓库、安装依赖(C 编译器、libcurl、jansson、meson、ninja、pkg-config 及 fzf)、运行 make 命令,并可选择 make install

在您希望工作的项目目录中运行 hax:

  • hax:启动交互式 REPL
  • hax -p "列出待办事项":运行一个提示并打印最终答案
  • printf "解释 x" | hax -p:从标准输入读取提示
  • hax -c:继续该目录的最新会话
  • hax --resume:选择该目录的过往会话
  • hax --resume=ID -p "下一步":以单次模式恢复特定会话

最简单的首次运行是交互式:启动 hax,然后使用 /provider 查看可用提供商并选择模型。hax 会记住交互式提供商、模型和努力程度的选择。

更多提供商设置和完整文档,请参阅 README。

评论总结

根据评论内容,总结如下:

主要观点与论据:

  1. 正面评价(多数):用户普遍认可Hax的简洁、快速和轻量级设计。例如,mring33621称赞其“clean, fast performance with local models and llama.cpp”(在MacBook Pro上构建并安装后,对本地模型和llama.cpp的干净、快速性能非常满意)。myshapeprotocol认为“A minimalist, terminal-native coding agent written in C is such a clean approach to lightweight local tooling”(用C编写的极简终端原生编码代理,是轻量级本地工具的干净方法)。abawany通过Homebrew安装后,用DeepSeek-Flash快速完成Rust项目,成本仅1美分,称赞“lean and clean option”(精简干净的选择)。

  2. 技术选择争议:部分用户质疑用C语言开发新项目。torstenvl反问“If it's minimalist and written in C why does it have such specific system requirements?”(如果极简且用C编写,为何有特定系统要求?)。megamorf直言“I don't understand why anyone would still start a new software project in C today”(不理解为何现在还有人用C启动新项目)。但jarjoura对比了其他语言尝试(如Rust、Go),认为C版本更稳定,并指出非平台代理(如Claude Code)存在模型微调限制问题。

  3. 功能与体验:用户关注具体功能。Bleaphar询问“decision to create the terminal in C?”(为何用C创建终端?)及演示视频工具。marklwatson确认Hax支持ESC键中断操作(通过interrupt.c处理),并对比了自己在Common Lisp和Racket中的中断处理问题。losvedir幽默比喻“putting a big ass spoiler on a minivan”(给小型货车装大尾翼),形容用C驱动LLM的趣味性。

  4. 其他:all2提醒不要与Haxe混淆。iJohnDoe和IamDaedalus表示期待尝试和贡献。androiddrew以讽刺语气调侃C语言安全性。

平衡性总结:评论整体以正面为主,认可Hax的轻量、高效和简洁设计,尤其适合本地模型和快速开发。但存在对C语言安全性和系统要求的质疑,以及与其他语言(Rust、Go)的对比讨论。功能上,用户关注中断处理、终端实现等细节。