Every model, as a subagent.
ask hands a task to a coding agent you already use and gives you its answer, like a native subagent: follow it up in the same conversation, run many at once, or give one its own git worktree. Read-only or with write access, on any model those agents offer. Each agent keeps its own login, tools and sandbox.
Download the archive for your system from Releases,
extract it, and put ask on your PATH. ask is one binary; it needs no Node or other language runtime.
Git is needed for worktrees, tracking changes and packages. Add an agent for each coding agent you
use (below); agents may be written in any language and keep their own requirements.
With Go 1.25 or newer:
go install github.com/fschrhunt/ask/cmd/ask@latestOr build from source:
git clone https://github.com/fschrhunt/ask
cd ask
go build -o ask ./cmd/ask
mkdir -p ~/.local/bin
cp ask ~/.local/bin/askMake sure your install directory ($(go env GOPATH)/bin for go install, or ~/.local/bin above)
is on your PATH. See Install for checksums and updates.
ask models # what you can run here
ask -m mycli:atlas-2.1 "Why does the login test fail?" # read-only, the default
ask -c k3f9a2 -w "Fix it, then run the test." # follow up: same agent, same conversation
ask -m mycli:atlas-2.1 -w --worktree "Add rate limits." # its own git worktree and branch
ask batch -j 4 -m mycli:atlas-2.1-mini tasks.json # many tasks in parallelThe answer goes to stdout. Status lines on stderr name the run, the model that ran, and what it changed and cost:
ask k3f9a2 · mycli:atlas-2.1 · read · ~/code/app · started
ask k3f9a2 · Atlas 2.1 · ok · 48.0s · 31.0k in · 812 out · $0.0874
Every run is recorded: ask runs lists them, ask show RUN prints one again, and ask stop RUN
stops one.
ask stays small and you add to it with executables in ~/.ask, in any language:
- agents/ run each coding agent's CLI: Claude Code, Codex, Opencode, or any other.
- hooks/ change tasks and check results: add context, guard writes, run the tests and have the agent fix what fails.
- commands/ add
ask NAMEworkflows, like a review by several models.
Share them as packages: ask install owner/repo, and ask install keeps them up
to date. Yours always win over a package's, and the contracts they rely on
stay stable across releases.
Install · Usage · Runs · Batches · Models · Agents · Hooks · Commands · Packages · Compatibility
MIT