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
What is this?A terminal CLI that lets you ask AI questions and get a direct answer back in your shell, powered by Codex, Claude Code, Pi, or OpenCode.
Is this its own AI engine or a wrapper around other tools?It is a thin wrapper, not a standalone AI engine — it runs whichever coding-agent CLI you already have installed, in read-only mode.
How do I get it running?Run the installer script, which checks your platform and installs the binary to ~/.local/bin/ask; then just run 'ask' to start a session or 'ask -c' to continue the latest one.
Do I need an AI subscription or API key set up first?You need Codex, Claude Code, Pi, or OpenCode's CLI already installed and logged in — ask itself doesn't ship its own model access.
Can ask actually edit my code or run commands for me?No — the agent always stays read-only; it reads the project, answers, and you're the one who runs commands and makes changes.
Does the installer support Windows?No — the installer only covers Intel/ARM Macs and x86_64/ARM64 Linux, there's no Windows build.
How do I continue a previous conversation?Run 'ask -c' to continue the latest saved session in the current folder, restoring the same agent, model, and reasoning that were used before.
Can I pick which agent or model it uses?Yes — run 'ask --settings' to set the default agent, model, and reasoning, or use '/settings' inside a session to change that session's model.
Does it update itself automatically?It checks for a new version once a day and tells you when one is available, but only actually upgrades when you run 'ask --upgrade'; you can disable the check with ASK_NO_UPDATE_CHECK=1.
Why did the author build this instead of just using a TUI agent?He wanted a normal terminal command that answers a question and hands the shell back immediately, without the agent making background changes, so he still runs the commands himself and learns.
Creator
benja
Size
0.1 MB
Stars
139
Age
1mo
Commits · 90 Days