The open-source client-agnostic agent harness
Wingman is not production ready. Expect frequent API and data model changes for the time being.
Wingman is yet another agent harness, but this one is:
- Written in Go.
- Client agnostic: multiple clients/UIs on one machine can use Wingman as a shared dependency. Wingman is decoupled from any specific use case, so it does not come bundled with a coding TUI, but you can run a coding TUI on top of it.
- Independent from common harness dependencies: no Vercel AI SDK, no models.dev, etc. This makes it better suited for secure or airgapped environments.
- Highly extensible: plugin support via in-process Go modules or out-of-process JSON-RPC. Plugins can register tools, attach to lifecycle events, rewrite history, and more.
Grab a binary from the releases page or use the install script.
curl -fsSL https://wingman.actor/install | bashsudo wingman upsudo wingman up installs and starts wingman.service with systemd. The server listens on 127.0.0.1:2323 (by default) and stores data in SQLite at ~/.local/share/wingman/wingman.db by default.
- Client-agnostic runtime - Run Wingman as the backend for any client that depends on LLM functionality.
- Extendable - Strong plugin support so you can extend session behavior however you want.
- Provider-agnostic - Wingman ships its own provider-agnostic model SDK, WingModels.
- Context handoff - Swap between provider/model combinations with minimal, and often zero, data loss.
- SQLite-backed sessions - Store agents, sessions, messages, parts, and provider auth in a local SQLite database.
- HTTP API - Communicate with Wingman via HTTP from your own clients.
Want to learn more? Check out the site & Read the docs
Also I made a hackernews client.
