qqqa:极速无状态的命令行 AI 助手,重塑终端交互体验
又一款 AI cli 助手,跟我们之前介绍的 Cai 挺类似,都是基于 Rust 编写的 CLI 工具集,主打高效快速。
什么是 qqqa?
qqqa 是一款基于 Rust 编写的命令行 AI 助手,主要由两个核心命令组成:
qq(Quick Question):用于快速提问。不保存上下文,只负责回答当前的问题,非常适合查询命令用法、代码片段或概念解释。qa(Quick Agent):一个单步代理。既能回答问题,又能调用工具(如读取文件、执行命令),适合处理具体的任务。
至于为什么要用 qq 和 qa 这样的命名,开发者的意思是, q 和 a 在键盘上挨得近,触手可及,同时还是 “Quick Question” 和 “Quick Agent” 的简写。
一词双关,有点意思。
核心设计哲学:无状态与管道友好
与一般的 Chatbot 不同,qqqa 默认是无状态的。也即是说每次运行都是独立的,没有对话历史。好处呢:
- 省钱:这是必然的,移除了对话历史,调用 API 时 token 消耗也少了。
- 简单纯粹:方便实现,这点是开发者而言的,对用户来说没什么影响。
- Shell 友好:可以完美地融入管道(Pipe)操作中,将上一个命令的输出作为 AI 的输入。
- 可复现性:相同的输入(通常)会产生相似的输出,便于脚本化。
场景一:智能查询 (qq)
当你需要 Google 一个复杂的 ffmpeg 参数或 git 命令时:
# 加不加引号都没影响
qq convert mp4 to mp3
# 或者查询特定系统操作
qq "how do I kill a process by name on macOS"
qq 默认采用流式输出,响应极快。如果你需要将结果直接用于后续操作,可以使用 --no-stream 配合 --copy-command(或简写 --cc),工具会自动将回答中的代码块复制到剪贴板。
场景二:上下文感知与管道 (|)
这是 qqqa 最强大的用法之一。你可以将任何命令的输出 “喂” 给 AI:
# 分析 git 状态并建议下一步操作
git status | qq "summarize what I should do next"
# 解释一段复杂的代码
cat src/main.rs | qq "explain the error handling logic here"
这两点都是基本功能,前面提到的 cai 也有实现,功能比较类似,qqqa 的一个亮点是支持了 agent。
场景三:让 Agent 替你干活 (qa)
qa 具备执行能力,它可以读取文件、写入文件或执行 Shell 命令(需用户确认)。
# 自动生成文档
qa "read src/lib.rs and write a summary to docs/intro.md"
# 执行任务(会先请求确认,使用 -y 可自动同意)
qa "list all Rust files sorted by size"
灵活的模型支持:丰俭由人
qqqa 的配置灵活,支持多种模型后端,本地模型也好,OpenAI API 也罢,都能信手拈来。
1. 开箱即用:OpenRouter (默认)
默认配置下,qqqa 使用 OpenRouter 的 API,并指向 openai/gpt-4.1-nano。这个模型速度极快且价格便宜,非常适合日常的快速问答。你只需要设置 OPENROUTER_API_KEY 环境变量即可。
2. 零边际成本:复用 ChatGPT/Claude 订阅
这是 qqqa 最具吸引力的特性之一。如果你已经订阅了 ChatGPT Plus 或 Claude Pro,你可以直接利用现有的订阅,而无需额外支付 API 费用。
- Codex CLI Profile:通过配置
codexprofile,qqqa 可以调用 ChatGPT 桌面应用的 CLI 接口(需先安装codex-cli)。 - Claude Code CLI Profile:同理,支持调用 Anthropic 的
claude命令行工具。
也即是说,你可以在终端里 “免费” 使用 GPT-5 (preview) 或 Claude 3.5 Sonnet 的能力。
3. 隐私优先:本地 Ollama
对于处理敏感代码或处于离线环境的场景,qqqa 对 Ollama 的支持非常完善。通过 qq --init 初始化时选择 Ollama,或者手动配置:
{
"profiles": {
"ollama": {
"model_provider": "ollama",
"model": "llama3.1",
"api_base": "http://127.0.0.1:11434/v1"
}
}
}
安全性设计
qqqa 在这方面做了严格的限制,避免了 AI 直接通过 rm -rf / 帮你清空系统的尴尬。
- 文件沙箱:文件读写操作被限制在用户主目录或当前工作目录内,防止路径遍历攻击。
- 命令白名单:
qa内置了一个默认的安全命令列表(如ls,grep,find等)。 - 人工确认:对于不在白名单内的命令,或者涉及管道、重定向的操作,
qa会强制要求用户确认。危险命令(如rm -rf /)会被直接拦截。 - 只读模式:
qq命令本身是完全只读的,无法执行任何副作用操作。
高级配置技巧
首次安装后,建议运行 qq --init 生成配置文件 ~/.qq/config.json。以下是一些实用的高级配置:
- 开启历史记录:虽然主打无状态,但你可以通过
--history参数或在配置中设置"include_history": true,将最近的 10 条qq/qa命令作为上下文发送,实现类似 “多轮对话” 的效果。 - 严肃模式:如果你不喜欢 AI 回复中带有 Emoji,可以使用
--no-fun参数(或在配置中永久关闭),让 AI 变身为严肃的系统管理员。 - 企业级代理:支持自定义 TLS 证书路径,方便在需要自签名证书的企业内网环境中使用。
总结
如果你之前试过了同样主打 AI 终端工作流的 Cai,觉得还不满意,那不妨也试试 brew install qqqa,AI cli 会不断演化,总有一款适合你。
- GitHub 仓库: https://github.com/iagooar/qqqa
- 发布页: Releases


