← Discover MCPs and Agents
w
AgentAI & MLGitHub

wizard

Self-extending autonomous agent in one Rust binary. One-line install, any provider (OpenAI-compatible, Anthropic, xAI) or fully local via llama.cpp, live /evolve self-modification, MCP, messaging gateway, built-in bench

Links

README

From the repo.

Wizard

The fastest agent in your terminal: one Rust binary, any model, at its prompt before the others have finished loading.

Install

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/teddytennant/wizard/main/install.sh | bash

# Homebrew
brew install teddytennant/tap/wizard

# Nix
nix run github:teddytennant/wizard

# Arch: not on the AUR yet, build the package from the repo
cd contrib/aur/wizard-bin && makepkg -si

Every other flavor (a preinstalled local model, the window, from source, Termux) is in Getting started.

Startup

agentwarm startcold startRSS at the promptinstall
wizard 3.16 ms135 ms20 MB26 MB
Codex CLI 0.154.034 ms511 ms179 MB553 MB
Goose 1.50.054 ms414 ms72 MB315 MB
Crush 0.93.180 ms445 ms81 MB96 MB
Claude Code 2.1.268268 ms1035 ms241 MB219 MB
Aider 0.86.2822 ms6747 ms200 MB664 MB
OpenCode 1.18.302847 ms6230 ms786 MB185 MB

Measured 2026-09-11 with bench/startup/run.sh on an idle 16-core box: one ubuntu:24.04 container per agent, installed the way its README says, phone-home switched off where the agent offers a switch, the model endpoint on a dead local port, ten pty starts each with the page cache dropped before the first. Warm is the median of starts two to ten. The full table, each agent's setup, the host record and what is not measured are in bench/startup/results.md.

First run

Wizard's first run: one screen, a pasted key, the TUI, a starter prompt

The first run is one screen: sign in with xAI or ChatGPT, paste an API key, or run a model locally. Pick one and the TUI opens with the config saved and, in a git repo, three starter prompts read off the directory, so ↓ and Enter is a first turn. That screen is up in single-digit milliseconds on a release build, timed by contrib/first-run-pty.py; the rest is in Getting started.

Terminal-Bench

agentmodelresolved of 89
wizard 3.1.1Grok 4.666 (74.2%)
Terminus 2, same boxGrok 4.669 (77.5%)
Grok Build 1.0.24, same boxGrok 4.669 (77.5%)
Terminus 2, public reference (Artificial Analysis, on e2b)Grok 4.688.4%

Run 2026-09-12 with Harbor, one trial per task, through the tbench/ adapter. Wizard's run had every public copy of the benchmark blocked, so no pass came from reading a task's own tests; the two same-box control rows are earlier runs with their fetched-answer passes counted as failures. One trial per task is noisy: three tries each on the 35 hardest tasks resolved 46.7% where a single try resolved 34.3%. Wizard's default prompt was also tuned on 10 of the 89 tasks. The per-task list, every failure's reason, and what is being changed are in tbench/RESULTS.md.

Also

  • Any model. xAI, OpenAI, Anthropic, Gemini, DeepSeek, Groq, Mistral, OpenRouter, Cloudflare Workers AI, Ollama and any OpenAI-compatible endpoint; /provider switches live. Keys live in env vars or ~/.wizard/credentials.toml (0600). Providers
  • Local models. Pick Local and Wizard sizes a Qwen GGUF to your hardware and runs llama.cpp's llama-server for you. Bring your own model
  • /fusion. A panel of your providers critique each other's drafts, then you get one answer. Fusion
  • /ultra. N read-only subagents on the model you're using, then a judge. Ultra
  • /evolve. Skills, MCP servers, scripted tools (embedded LuaJIT, no interpreter to install) and subagents as plain files that go live on /reload; deep evolve rebuilds the binary behind a locked build, the test suite and a smoke test, with the old binary one mv away. Self-extension
  • MCP, both directions. stdio and HTTP servers join the tool registry at runtime; wizard mcp-serve serves Wizard's own tools to any client. MCP
  • Editors. wizard acp runs it inside Zed, Neovim and Emacs over the Agent Client Protocol. ACP
  • Modes. Genie is the TUI, sovereign is headless (wizard -p), --continuous is a mission that outlives outages. Modes
  • Gateway. Headless as a Telegram bot, each message a turn in your project. Gateway
  • Memory. Plain markdown under ~/.wizard/memory/, indexed into the prompt each session; /memory reads it back. Memory
  • Fork it. /publish puts your evolved Wizard on your GitHub with its own installer; wizard skills shares one piece from a git-backed registry. Fork and distribute
  • A window (preview). wizard gui from a --features native build, or wizard-native gui from the installer. Native GUI

Limitations

  • Linux (x86_64, aarch64), macOS (Apple Silicon and Intel) and Termux on Android from source. Windows runs it under WSL2.
  • Releases are signed with minisign and both install.sh and wizard update refuse what they cannot verify; that needs minisign, an OpenSSL with ed25519 and blake2b, or python3, which macOS ships. Install
  • Small local models are worse than frontier models: a quantized 4B to 36B Qwen misformats tool calls and needs more steering, and the 4B tier that an 8 GB machine gets is a floor, not a good agent. Model tiers
  • No sandbox. Tools run with your privileges and nothing asks first. Read SECURITY.md before an autonomous run and prefer a container.
  • Context is finite. Wizard reads selectively and compacts old history, but a long session still pushes out early detail. Agent-managed context

Docs

Every page is indexed in docs/README.md, grouped by what you are trying to do. CHANGELOG.md has what changed and what breaks; WIZARD.md is the agent's charter, inherited by every fork.

Development

Rust 2024, Ratatui, Tokio, embedded LuaJIT (mlua). Single binary.

git clone https://github.com/teddytennant/wizard
cd wizard
cargo build --release
./target/release/wizard

nix develop gives a shell with the Rust toolchain and llama-cpp. Local inference is llama.cpp; Ollama is a supported provider.

License

MIT AND Apache-2.0, both at once. Wizard's own code is MIT (LICENSE-MIT). The terminal-UI code ported from OpenAI Codex and xAI grok-build stays under Apache-2.0 (LICENSE-APACHE); NOTICE names every file it landed in and docs/ui-skins.md has the file-by-file table.

Collected info

  • 67 stars
  • 3 forks
  • Language: Rust
  • Source updated: 8/2/2026