The project's README from github.com/context-labs/whip. As one markdown file: README.md.
█ ▀
█ ▄ █ █▀█ █ █▀█
▀▄▀▄▀ █ █ █ █▄█
▀ ▀ ▀ ▀ ▀ █
whip — a fast coding-agent harness in Go
An LLM tool-use loop (bash / read / write / edit / subagent), an interactive bubbletea session, and provider-routable models. One binary, no runtime, config you can read.
curl -fsSL https://raw.githubusercontent.com/context-labs/whip/main/install.sh | sh
Checksum-verified prebuilt binaries (Linux/macOS, x64/arm64). Or from source (Go ≥ 1.27):
go install github.com/context-labs/whip/cmd/whip@latest
Then whip and you're in. Defaults to inference.net models — any
OpenAI-compatible endpoint works as a provider. One command wires up
OpenRouter's whole catalog (/model lists every model, no per-model
config):
whip auth openrouter # masked key prompt — or /auth openrouter in-session
To update to the latest release later, run whip update — it re-runs the
install script above.
Whip can use an existing ChatGPT/Codex subscription instead of an API key.
Run whip auth codex and follow the displayed URL and one-time code. On
approval, Whip saves the login and adds
the account's available Codex models to /model immediately. The same flow is
available from an active session with /auth codex. /usage shows the
subscription's rate-limit windows; whip auth codex logout removes the
provider from Whip again.
Whip saves the login in ~/.codex/auth.json. Expiring tokens refresh locally
and are never printed or added to conversations. Whip fetches the signed-in
account's https://chatgpt.com/backend-api/codex/models catalog and refreshes
it every 24 hours (or with /model refresh), so plan and rollout availability
come from the backend rather than a hard-coded list. gpt-5.5 @ codex-subscription remains
as a compatible fallback route. OAuth credentials are only sent to
https://chatgpt.com/backend-api.
/context-doctor audit what a fresh session injects, in tokens
/goal <text> work until done
/model pick a model — type to filter (new) entries come from the
provider catalog, no config needed
Drop a .mcp.json in your repo and MCP servers just appear (/mcp to see
them). ctrl+c once interrupts; twice quits.
The full setup, config reference, MCP, browser/computer-use, and how everything works: docs/README.md.
Highlights: