fschrhunt/ask

Every coding agent, behind one command.

★ 0Forks 0GoGitHub ↗Compare

README

ask

Every model, as a subagent.

CI


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.

Install

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@latest

Or 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/ask

Make 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.

Use

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 parallel

The 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.

Make it yours

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 NAME workflows, 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.

Docs

Install · Usage · Runs · Batches · Models · Agents · Hooks · Commands · Packages · Compatibility

License

MIT

Contributors

fschrhunt

Issues