桃子桃子快讯
返回首页
工具

开源终端工具 q 发布:在命令行 REPL 中直接调用 LLM

开发者发布开源 C 语言 CLI 工具 q,可在终端 REPL 中向本地 OpenAI 兼容 API 发送问题并流式接收…

2026.07.08 · 周三4 分钟阅读

Hacker News 上一个 Show HN 项目展示了名为 q 的开源命令行工具,它在本地终端 REPL(交互式读取-求值-输出循环)中直接集成大语言模型,用户无需切换到浏览器即可获得 shell 命令建议。

工具定位与基本形态

q 是一个 C 语言编写的轻量级 CLI,可执行文件编译后可直接运行。它通过环境变量 OPENAI_API_KEY 与本地符合 OpenAI 兼容规范的 API 通信,默认地址为 http://127.0.0.1:8080/v1/responses。在不设置该环境变量时,也可配合无需鉴权的本地推理服务器使用。

启动 REPL 的最简命令为:

  • ./q --repl --color,配 OPENAI_API_KEY 后即可进入持续对话模式
  • ./q "your question" 可使用一次性查询模式

交互方式

q 设计了「正常 shell 行为」与「向 LLM 提问」两种状态之间的简单切换:

  • 使用 ? query 强制发起一次 LLM 问答
  • 使用 ! command 强制执行 shell 命令
  • 当 LLM 回复中含围栏代码块时,这些示例会被自动编号,用户输入 数字. 即可直接执行对应命令而无需手敲
  • REPL 内置一组斜杠命令,包括 /help/show-system-prompt/llm-timeout/llm-turn-limit/truncate-context/add-mcp-server/note

作者还提供了上下文保持(--keep-context)与会话回放(--record-session / --resume-session)选项,会话默认存储于 ~/.config/q/sessions/session-<timestamp>

工具能力与扩展点

q 支持通过 HTTP MCP(Model Context Protocol)服务器扩展可用工具,启动时会主动调用 initializetools/list 进行探测,并把发现的工具与内置的 get_timeread_filewrite_file 一起暴露给模型:

  • --add-mcp-server http://127.0.0.1:3000/mcp 注册一个 MCP 服务
  • --list-mcp-servers 列出已注册服务
  • 注册信息持久化在 ~/.config/q/mcp-servers.tsv

在底层 API 调用层面,q 通过 libcurl 直接发起请求,并支持 --api-logging query|response|both|path 进行请求/响应落盘以便排查。其默认系统提示词针对 Linux 系统管理员场景,但可通过 --system-prompt-file 完全覆盖。

作者定位与现状

作者明确表示 q 是一个「proof of concept」而非成熟产品,代码量约 7000 行,属于「vibed code」(借助 LLM 快速产出)范畴,目前由作者本人作为日常工具使用,但仍存在以下已知问题:

  • 当用户问题以 whowhich 等容易与命令同名的词开头时,q 可能误判为 shell 指令;通过首字母大写可缓解
  • 流式推理/思考过程默认以动画点占位,可通过 --think-loud 显示原文
  • 输出质量强依赖于所连接的后端模型

构建方式较为直接:make 编译默认版本,make release 生成精简发布版,sudo make install 安装到 /usr/local/bin。Debian/Ubuntu 系发行版需安装 build-essentiallibcurl4-openssl-dev 开发头文件。

信源