Skip to content

Repository files navigation

        ▄ ▄   ▄ ▄ ▄ ▄   ▄
        █ █   █   █ █▀▀▀█▀▀▄
        ▀█▀ ▄▄█   █ █   █
        whip — a fast coding-agent harness in Go

An LLM tool-use loop (bash / read / write / edit / task), an interactive bubbletea session, and provider-routable models. One binary, no runtime, config you can read.

Why whip

  • Agent harnesses should be FAST — literally as fast as possible. whip is built in Go around that constraint: parallel tool calls, streaming everything, nothing between you and the model but a loop.
  • Defaults across other harnesses suck. They all have awesome patterns, but none of them bring them all together. whip cherry-picks the best ideas from pi, opencode, codex, and exo into one opinionated harness (see docs/roadmap.md — every feature cites its source).
  • Go is great for networking-heavy applications, and harnesses do a whole lot of networking. whip leans on channels where the TypeScript reference designs hand-roll promises — per-path file locks and background subagents collapse into primitives the compiler checks (docs/concurrency.md).
  • whip is focused on a future where open-source models are the preferred models. Keeping up with those models is hard — whip brings you an opinion on what model you should be using: live discovery from every provider's catalog, new models surfaced in the picker, a fast default that tracks the frontier.

Install

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.

First things to try

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

Docs

The full setup, config reference, MCP, browser/computer-use, and how everything works: docs/README.md.

Highlights:

About

A fast coding-agent harness in Go. Tool-use loop, bubbletea TUI, provider-routable models with live catalog discovery, MCP support, background subagents. One binary, no runtime, built for open-source models.

Resources

Contributing

Stars

115 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages