← benja.dev

Ask, then do. Follow up when you need to.

v0.2.0. For macOS and Linux. Requires a supported coding agent already set up on your machine.

$ ask how do i find TODO or FIXME comments in src?
Use grep with an extended regex:
  grep -rEn 'TODO|FIXME' src

Back at your shell prompt, the command finds too much, so you follow up:

$ grep -rEn '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 -cContinue the latest chat how do i exclude src/generated?
Exclude that directory:
  grep -rEn --exclude-dir=generated 'TODO|FIXME' src

$ grep -rEn --exclude-dir=generated 'TODO|FIXME' src
src/api.ts:42:// TODO: retry failed requests
$ 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.
Check whether Docker marked it OOM-killed:
  docker inspect -f '{{.State.OOMKilled}}' my-container

> it says true. what should i check next?
Asking

Sessions are saved automatically, so you can return to them later.

Codex, Claude Code, Pi, and OpenCode.

The ask binary is about 556 KB. It runs a supported coding agent on your machine, keeps it in read-only mode, and uses its existing setup.

Answers stream to stdout. Prompts and errors stay on stderr, so you can pipe the output. For example: ask summarize README.md | less.

$ ask --help
Ask, then do. Follow up when you need to.

Usage:
  ask [QUESTION...]
  ask -c [QUESTION...]
  ask --sessions
  ask --settings
  ask --upgrade

With no question, ask starts an interactive session.

Options:
  -c, --continue      Continue the latest session here
  -s, --sessions      Choose a saved session to continue
      --settings      Choose defaults for new sessions
      --upgrade       Upgrade to the latest release
  -h, --help          Print help
  -v, --version       Print version