ask README

The project's README from github.com/benja/ask. As one markdown file: README.md.

ask

A small CLI for asking AI questions from your terminal.

Motivation • Install • Usage • How it works

Ask a question and get back to your shell:

$ ask how do i find TODO or FIXME comments in src
Use ripgrep:
  rg -n 'TODO|FIXME' src

$ rg -n 'TODO|FIXME' src
src/generated/client.ts:18:// TODO: generated placeholder
src/generated/schema.ts:204:// FIXME: compatibility shim
src/api.ts:42:// TODO: retry failed requests

$ ask -c how do i exclude generated files
Add an exclude:
  rg -n --glob '!generated/**' 'TODO|FIXME' src

$ rg ...

Or just run ask to start a session:

$ ask
> why is this container restarting?
Check its exit code:
  docker inspect -f '{{.State.ExitCode}}' my-container

> it says 137. what does that mean?
Exit code 137 usually means SIGKILL, often from running out of memory.

> thank you
You're welcome.
> ^D

$ ...

Every answer is saved. Use ask -c to continue the latest one in this folder.

Motivation

I made ask because I wanted a normal terminal command for asking AI questions, whichever agent or model I used. I didn't want a TUI. I wanted to ask something, read the answer, and get my shell back.

Coding agents do a lot in the background, and I don't always want that. With ask, the agent stays read-only. I run the commands and make the changes myself. That way I actually learn.

Install

curl -fsSL https://benja.dev/ask/install.sh | sh

The installer supports Intel/ARM Macs and x86_64/ARM64 Linux. It verifies the release checksum and installs to ~/.local/bin/ask. Set ASK_INSTALL_DIR to change the destination.

Usage

ask [QUESTION...]          ask once
ask                        start a session
ask -c [QUESTION...]       continue the latest session here
ask --sessions             reopen a saved session
ask --settings             set defaults for new sessions
ask --upgrade              update ask
ask -V                     print the version

Answers go to stdout. Prompts and errors go to stderr, so one-shot answers are safe to pipe. Agents start in the current directory and run read-only.

ask checks for updates at most once a day. If a new version is available, it lets you know when you get your shell back. You won't get another notice for that version. Set ASK_NO_UPDATE_CHECK=1 to turn this off. ask only updates when you run ask --upgrade.

How it works

Under the hood, ask runs Codex, Claude Code, Pi, or OpenCode using the CLI already installed and logged in on your machine.

For a new session, ask uses your default agent, model, and reasoning. Continuing a session restores those saved choices and the underlying agent session ID. Answer instructions come from the current global setting. Ask starts the selected CLI read-only in your current folder, prints the answer to stdout, and saves the turn automatically.

Agents and models

Run ask --settings to choose the default agent, model, reasoning, and answer instructions. Use /settings inside a session to change that session's model or reasoning, or to edit the global answer instructions. Start a new session to switch agents.

Contributing

Requires Rust 1.88 or newer. Before opening a pull request:

cargo fmt --check
cargo test --locked
cargo clippy --locked --all-targets -- -D warnings

Installer changes also need shellcheck install.sh tests/install.sh and sh tests/install.sh.

License

MIT. Have fun :)

ask (benja/ask)

Searching Database…

139 ·GitHub
这是什么?一个终端命令行工具,让你在 shell 里向 AI 提问并直接得到答案,由 Codex、Claude Code、Pi 或 OpenCode 驱动。
它有自己的 AI 引擎,还是其他工具的封装?它是一个薄封装,不是独立的 AI 引擎——它以只读模式运行你已经安装的任一编程智能体命令行工具。
怎么让它跑起来?运行安装脚本,它会检测你的平台并把二进制装到 ~/.local/bin/ask;然后运行 'ask' 开始会话,或运行 'ask -c' 继续最近一次会话。
需要先设置好 AI 订阅或 API 密钥吗?你需要先安装并登录 Codex、Claude Code、Pi 或 OpenCode 的命令行工具——ask 本身不带自己的模型访问能力。
ask 能真的替我改代码或执行命令吗?不能——智能体始终保持只读;它负责读项目、给答案,执行命令和做出修改的是你自己。
安装程序支持 Windows 吗?不支持——安装程序只覆盖 Intel/ARM Mac 和 x86_64/ARM64 Linux,没有 Windows 版本。
怎么继续上一次的对话?运行 'ask -c' 即可继续当前文件夹中最近保存的会话,并恢复之前所用的同一智能体、模型和推理设置。
可以挑选它用哪个智能体或模型吗?可以——运行 'ask --settings' 设置默认的智能体、模型和推理选项,或在会话里用 '/settings' 更改该会话的模型。
它会自动更新吗?它每天检查一次新版本,有更新时会提醒你,但只有运行 'ask --upgrade' 才会真正升级;可以用 ASK_NO_UPDATE_CHECK=1 关闭检查。
作者为什么要做这个,而不直接用 TUI 智能体?他想要一个普通的终端命令:回答完问题就立刻把 shell 还给用户,智能体不会在后台做任何改动,这样他仍然亲自执行命令并从中学习。
Creator
benja
Size
0.1 MB
Stars
139
Age
1mo
Commits · 90 Days