929 字
5 分钟
ASK:一个轻量级的命令行 AI 聊天工具

有时候你只想在终端里快速问一个问题,不想打开浏览器,不想登录网页,不想等页面加载。ASK 就是为这种场景设计的。

StevenLi-phoenix
/
ask
Waiting for api.github.com...
00K
0K
0K
Waiting...

这是什么#

ASK 是一个命令行工具。它把你输入的文字发送给 OpenAI,然后把回答打印在终端里。没有图形界面,没有多余的功能,就是一个简单的问答工具。

整个程序用 C++17 写成,依赖 libcurl 和 cJSON。编译后是一个单独的二进制文件,没有运行时依赖。

主要功能#

ASK 支持两种使用方式。

第一种是单次问答。你输入一个问题,它给你一个回答,然后结束。适合快速查询。

Terminal window
./ask "法国的首都是哪里?"

第二种是交互模式。程序保持运行,你可以连续提问,它会记住上下文。输入 exit 退出,输入 status 查看当前状态。

Terminal window
./ask -c "我们来聊聊"
TIP

交互模式下,ASK 会记住整个对话历史,所以你可以进行多轮对话。

安装方法#

ASK 需要手动编译。依赖项很少:一个支持 C++17 的编译器、libcurl、cJSON。

macOS 用户可以用 Homebrew 安装依赖:

Terminal window
brew install curl cjson
make

Ubuntu/Debian 用户:

Terminal window
sudo apt-get update
sudo apt-get install -y g++ libcurl4-openssl-dev libcjson-dev
make

编译完成后会生成 ask 可执行文件。

配置#

使用前需要配置 OpenAI API 密钥。有三种方式。

通过环境变量:

Terminal window
export OPENAI_API_KEY=sk-...
export ASK_GLOBAL_MODEL=gpt-5.2-latest-chat

通过 .env 文件:

OPENAI_API_KEY=sk-...
ASK_GLOBAL_MODEL=gpt-5.2-latest-chat

通过命令行参数(会自动写入 .env):

Terminal window
./ask --setAPIKey sk-... --setModel gpt-5.2-latest-chat
IMPORTANT

默认模型是 gpt-5.2-latest-chat,默认 token 限制是 128000。

实用功能#

ASK 有一个很方便的功能:可以用 @ 符号引用本地文件。程序会自动读取文件内容并附加到提问中。

Terminal window
./ask "总结一下 @README.md"

文件限制:最大 10KB,必须是纯文本,路径必须精确。

另外,默认情况下回答会以流式方式输出,就像你在 ChatGPT 网页上看到的那样,一个字一个字地显示。如果你不喜欢这样,可以关掉:

Terminal window
./ask --no-stream "讲个故事"

常用参数#

参数作用
-c, --continue进入交互模式
--no-stream关闭流式输出
-t, --token临时指定 API 密钥
-m, --model临时指定模型
-T, --temperature设置采样温度(默认 1.0)
-l, --tokenLimit设置 token 上限
--tokenCount只计算输入的 token 数量,不发送请求
--debug开启调试模式

发布与下载#

项目使用 GitHub Actions 自动构建。每次推送带 v* 格式的 tag,就会自动编译并发布。

目前提供 Linux 和 macOS 的预编译包,格式是 ask-<os>-<arch>.tar.gz,附带 SHA256 校验码。

NOTE

截至本文写作时,最新版本是 v1.0,发布于 2025 年 12 月。

适用场景#

这个工具适合以下情况:

你经常在终端工作,不想切换到浏览器。你需要快速查询一些信息。你想把 AI 集成到 shell 脚本里。你喜欢轻量级、无依赖的工具。

如果你需要复杂的对话管理、多模态输入、或者图形界面,这个工具不适合你。

技术细节#

ASK 使用 SSE(Server-Sent Events)接收流式响应。如果流式传输失败,会自动回退到完整 JSON 响应。

程序内置了超时处理:60 秒超时后会自动重试一次。等待期间会显示一个”thinking…”的动画,让你知道程序还在运行。

token 计数是近似值,不是精确计算。

总结#

ASK 是一个小巧实用的工具。它没有花哨的功能,但把该做的事情做得很好。如果你经常在终端工作,值得一试。

Works Cited#

StevenLi-phoenix. “ASK.” GitHub, https://github.com/StevenLi-phoenix/ask. Accessed 29 Dec. 2025.

ASK:一个轻量级的命令行 AI 聊天工具
https://blog.lishuyu.top/posts/repo-ask/
作者
猫猫魔女
发布于
2025-12-29
许可协议
CC BY-NC-SA 4.0