Read, build, debug, and review code with an agent that works alongside you.
Use the same tools for cybersecurity research, technical investigation, and everyday automation.
Quick start · Features · Model providers · Commands & shortcuts · Support · Acknowledgements
Alter Zero is an open-source AI coding agent written in Rust, inspired by Claude Code and Codex CLI. It works directly in your project: reading files, making edits, running commands, and checking results while you follow along in your terminal. Coding is its focus, with the flexibility to investigate security issues, explore unfamiliar systems, and automate tasks using your existing tools.
| What you get | Why it matters |
|---|---|
| Work you can follow | Live command output, readable diffs, and a task checklist make progress easy to inspect. |
| Control over execution | Choose a permission mode, review proposed changes, and steer the agent while it works. |
| Your choice of model | Connect with a supported subscription or API key, run local models with Ollama or LM Studio, or add an OpenAI-compatible provider. |
| Room to extend | Add specialist subagents, reusable skills, lifecycle hooks, and MCP servers to fit your workflow. |
| A native terminal experience | A single Rust binary designed with a small memory footprint, persistent sessions, inline images, and keyboard-driven controls. |
Alter Zero runs on Linux (x86_64, arm64) and macOS (Intel, Apple silicon) in a modern terminal.
One line on Linux or macOS:
curl -fsSL https://raw.githubusercontent.com/linuztx/alter-zero/main/install.sh | shIt picks the build for your machine, verifies its SHA-256 against the checksum published with the release, installs alter-zero into ~/.local/bin, and tells you if that directory is not on your PATH.
Or install the same build with npm:
npm install -g @linuztx/alter-zeroInstall options
Set ALTER_ZERO_INSTALL_DIR to install somewhere else, or ALTER_ZERO_VERSION=vX.Y.Z to pin a release. CHANGELOG.md records what changed between versions.
ALTER_ZERO_INSTALL_DIR="$HOME/bin" ALTER_ZERO_VERSION=v0.1.0 \
sh -c "$(curl -fsSL https://raw.githubusercontent.com/linuztx/alter-zero/main/install.sh)"For a manual install, each release's notes list every archive with its SHA-256, so you can download, verify, and extract one by hand.
Run it in a Kali Linux container
docker/ builds a small headless Kali Rolling image around the latest release, with a working set of command-line tools, for Docker or Podman. One command builds it and starts a container on a folder of yours:
docker/build.sh ~/projects/site # add --engine podman for Podman
docker exec -it -e TERM -e COLORTERM -e TERM_PROGRAM -e KITTY_WINDOW_ID -e TMUX \
alter-zero-kali alter-zeroOutside a multiplexer, the -e flags hand over your terminal's identity so
pictures render as real images rather than half-blocks. The
container guide covers workspaces, the published ports,
pasting images, and adding tools.
Inside tmux, enable allow-passthrough on the host and explicitly select the
outer terminal's image protocol for that docker exec; the
tmux instructions include a
ready-to-run Podman example.
You need rustup and a C compiler. The repository pins the Rust toolchain, which rustup installs automatically.
git clone https://github.com/linuztx/alter-zero.git
cd alter-zero
cargo install --path .
alter-zeroWithout a configured provider, Alter Zero opens an offline demo with scripted turns so you can explore the interface. To work on your own tasks:
- Run
/loginand choose a supported subscription, API provider, or local model server. Follow the prompts to connect. - Run
/modelto choose a model. Alter Zero remembers your selection for this directory. - Describe a task, review any approval prompts, and follow the work as it happens.
Sign-ins added through /login are saved to ~/.alter-zero/.env, outside your repository. Use / to browse commands or ? in an empty composer to see shortcuts.
Connect with environment variables
You can also select your provider before launch. Set its API key variable and provider ID, then start the app. For example, with OpenRouter:
export OPENROUTER_API_KEY="your-api-key"
export ALTER_ZERO_PROVIDER=openrouter
alter-zeroChoose a model with /model, or set ALTER_ZERO_MODEL to its model ID before launching.
Start with a concrete task and let the agent work through it with you.
| Use case | Try asking |
|---|---|
| Coding and debugging | "Find why this test fails, fix the cause, and run the relevant tests." |
| Cybersecurity research | "Review this repository for security vulnerabilities. Trace each finding to the code and suggest a fix." |
| Technical investigation | "Trace how authentication works in this project and explain where access checks happen." |
| Automation | "Write a script that summarises these logs and flags recurring errors." |
Connect to a supported subscription service, API provider, or local model server. Use /login to connect and /model to choose your model.
| Provider | How you connect | Good to know |
|---|---|---|
| Agent Zero API | API key. | Accesses Venice.ai models through the Agent Zero proxy, with a free daily quota for A0T token holders. |
| Venice | API key. | Venice.ai's private, uncensored models straight from Venice's own API — the same catalog the Agent Zero API proxies, reached with your own account. |
| GitHub Copilot | Subscription, using a one-time device code. | Model capabilities, including context window, vision, and reasoning levels, come from Copilot. |
| ChatGPT Codex | Subscription, with a ChatGPT Plus or Pro account: a browser sign-in, or a one-time device code on a headless machine. | Uses the account sign-in flow; no API key to paste. |
| Anthropic | API key or account sign-in through the Anthropic Console. | Usage is billed to your API organisation with either method. |
| Cline | API key. | The models behind the Cline extension and CLI, through Cline's OpenAI-compatible API — Anthropic, OpenAI, Google and more, billed to your account's credits. |
| ClinePass | Subscription ($9.99/month), with a Cline account sign-in. | 2-5x usage on Cline's curated open coding models — the plan's cline-pass/… models appear in /model. |
| Google Antigravity | Google account sign-in in the browser. | Gemini, Claude and GPT-OSS on your Antigravity quota. Unofficial: Google may restrict accounts used outside Antigravity (details). |
| OpenRouter | API key. | Access models from multiple providers through one account. |
| Ollama | Local model: enter your server's address, which is tested before it's saved; no key required. | Run inference on your own machine with locally hosted models. |
| LM Studio | Local model: enter your server's address, tested the same way; a token only if the server requires one. | Run the models you downloaded in LM Studio; start its server first. |
| Ollama Cloud | API key. | Use open models hosted by Ollama. |
The footer shows your active model, thinking mode, speed tier and context usage. Ctrl+T cycles the model's supported reasoning levels, a ChatGPT model that lists speed tiers gets a command per tier (/fast, /ultrafast) that switches it to that processing (faster replies at increased plan usage), vision support is checked before sending images, and requests support prompt caching where the provider allows it.
Add a provider of your own
Any service with an OpenAI-compatible API, or a local server such as llama.cpp or vLLM, can be added in ~/.alter-zero/providers.toml. The file adds to the providers above rather than replacing them:
[providers.groq]
name = "Groq"
api_key_url = "https://console.groq.com/keys"
[providers.groq.kwargs]
api_base = "https://api.groq.com/openai/v1"Save its key with /login (this one is read from GROQ_API_KEY), then choose a model with /model. Both re-read the file, so there's no need to restart. A block that names a built-in provider changes only the keys it sets. docs/user-providers.md covers every key, local servers that need no key, and what each error message means.
- Readable file changes. Numbered, syntax-highlighted file views and diffs highlight the characters that changed, so edits are easy to review.
- Live commands and task progress. Command output streams into the conversation, long results collapse into expandable previews, and a checklist tracks multi-step work.
- Parallel and background work. Tool batches are announced before execution. Move a running command to the background with Ctrl+B, then use Down from an empty composer to inspect or stop it.
- Decisions in context. Inline questions support multiple-choice and free-text answers. Send a message with Enter to steer the running turn, or use Tab to queue a follow-up.
- Review at the approval prompt. Inspect proposed file content, diffs, and commands before approving them. Approve once, allow a session rule, or reject with instructions using Tab. Ctrl+E asks for a command explanation.
- Four permission modes.
manualasks before file changes and commands;editallows file changes;auto, the default, adds a reviewer for routine commands;masterruns unattended. Cycle modes with Shift+Tab and keep rules per project. - Checkpoints and rewind. Enable checkpoints per directory to snapshot your working files in a separate store. Esc Esc returns to an earlier message and, when a checkpoint is available, restores the files with it.
- Nothing runs on its own unseen. When the app starts, it lists any new or changed hook, yours or a project's, and any new project MCP server, showing exactly what each runs. A hook runs only once you trust it, a server only once you enable it, and
/hooksand/mcpchange either later. - Credentials by placeholder. Store a credential with
/secretsand the agent can use its placeholder without seeing the value. See how secrets are stored and used.
- Subagents. Delegate focused work to agents with their own context, model, and tool access. Built-in
general-purposeandexploreagents are editable, and you can open a running agent's session to chat, send follow-up work, or stop it — while the main agent does the same by each agent's id: checks its progress, sends a finished agent a follow-up with its context intact, or stops it. - Skills. Add reusable
SKILL.mdfolders, mention one with$, or browse them with/skills. Built-inskill-creatorhelps you write your own;web-searchsearches the web through Exa, Parallel, Tavily and Jina Reader with no key;jina-readerreads public webpages and PDFs through Jina Reader;yt-dlpguides media downloads with the separately installed CLI. - Public tunnels. The built-in
flaredanticskill guides you through exposing a local service via Cloudflare, Microsoft Dev Tunnels, or Serveo using the separately installedflareCLI. A tunnel makes the service publicly reachable; review what you expose. - MCP servers. Connect tools over stdio, HTTP, or SSE, including remote servers with OAuth. Manage connections with
/mcporalter-zero mcp. - Hooks and project instructions. Use
hooks.jsonto approve, reject, or adjust tool calls and supply context.AGENTS.mdfiles carry your project's conventions;/inithelps create one.
- Saved conversations.
/resumeopens a searchable session picker. Use--continuefor the latest session in this directory or--resume <id>for a specific one. - Settings that stay with the project. Model choices, permissions, skills, and appearance are remembered per directory, and every saved conversation resumes on the model it was using. Input history carries across sessions and is searchable with Ctrl+R.
- Managed context.
/contextshows what fills the context window and how much of it the prompt cache served, and/usagehow much of each subscription's plan is left./compactsummarises long conversations, with automatic compaction as the window fills. A session scratchpad holds temporary scripts and notes outside your project.
- Rich output. Stream Markdown, tables, highlighted code, and collapsible reasoning blocks, with clickable URLs and file paths in supported terminals.
- Inline images. Paste screenshots with Ctrl+V. Images render natively in kitty, iTerm2, and sixel terminals, with a character-based fallback elsewhere.
- Inspect the session. Ctrl+O opens the expanded transcript; Ctrl+D shows the context sent to the model. Start a line with
!for a shell command or use@to pick a file. - Live customisation. Preview eleven themes with
/theme, six mascots with/mascot, and nine spinner styles with/spinner./settingsbrings the remaining controls together in a searchable menu. - Works with herdr. In a herdr pane, the sidebar shows when the agent is working, waiting on your approval, or done, and a restarted herdr resumes the conversation. There is nothing to set up.
The essentials are always one keystroke away: / opens commands, and ? in an empty composer shows shortcuts.
Slash commands
| Command | What it does |
|---|---|
/help |
List the available commands |
/clear |
Clear the conversation |
/copy |
Copy the last response to the clipboard |
/export |
Copy or save the conversation as plain text |
/diff |
Review staged, unstaged, and untracked Git changes in a full-screen viewer |
/init |
Create an AGENTS.md contributor guide |
/compact |
Summarise the conversation to free up context |
/context |
See what fills the context window: tokens per category, the free space and the cache hit rate |
/usage |
See your subscriptions' usage limits: each window's share used and when it resets |
/resume |
Resume a saved chat |
/model |
Switch the active model |
/fast, /ultrafast, … |
Switch the model's speed tier — one command per tier its listing names, shown only on a model that lists it |
/login |
Sign in, add an API key, or connect a local model |
/settings |
Open the settings menu |
/theme |
Choose the colour theme |
/mascot |
Choose the banner mascot |
/spinner |
Choose the status spinner style |
/hooks |
Browse hooks and trust or stop trusting each one |
/skills |
Browse skills and enable or disable each one |
/mcp |
Manage MCP servers |
/donate |
Support the project with a crypto donation |
/secrets |
Store credentials the agent uses by placeholder, <secret:NAME>, without ever seeing the value |
/quit |
Exit the app |
Keyboard shortcuts
| Key | Action |
|---|---|
Enter |
Send, or hand a message to the running turn |
Tab |
Queue a follow-up turn |
Alt+↑ |
Pull a queued message back to edit |
Shift+Enter / Ctrl+J |
Insert a newline |
↑ / ↓ |
Recall input history |
Ctrl+R |
Search input history |
Esc |
Interrupt the running turn |
Esc Esc |
Step back to a previous message and rewind |
Ctrl+O |
Open the full transcript |
Ctrl+D |
Show the context sent to the model |
Ctrl+T |
Cycle the thinking mode |
Shift+Tab |
Cycle the permission mode |
Ctrl+B |
Move a running command or agent to the background |
↓ (empty composer) |
Manage background shells and agents |
Ctrl+V |
Paste an image |
! |
Run a shell command |
@ |
Pick a file path |
$ |
Mention a skill |
/ |
Open the command palette |
Ctrl+W / Ctrl+U / Ctrl+K |
Delete the previous word, to the start of the line, to the end of the line |
Ctrl+C |
Clear the draft, then quit |
Command-line options
Usage: alter-zero [OPTIONS] [PROMPT]
alter-zero mcp <COMMAND>
alter-zero update
Arguments:
[PROMPT] Send this message as the first turn
Options:
-c, --continue Continue the most recent conversation in this directory
-r, --resume [ID] Resume a conversation by id, or pick one from a list
-h, --help Print help
-V, --version Print version
Start a task directly, or continue the work from your last session:
alter-zero "fix the failing test"
alter-zero -c "now review the changes"Run alter-zero mcp --help for MCP server management commands, and alter-zero update to install the newest release over the binary you are running (an npm install updates with npm install -g @linuztx/alter-zero@latest).
Your sign-ins, saved sessions, input history, and per-directory settings live under ~/.alter-zero/. Keep shared extensions there, or add project-specific ones alongside your code.
Configuration and extension paths
| Location | Contents |
|---|---|
~/.alter-zero/.env |
Keys and tokens saved through /login |
~/.alter-zero/agents/ and ~/.alter-zero/skills/ |
Your shared agent definitions and skills |
~/.alter-zero/hooks.json and ~/.alter-zero/mcp.json |
Your shared hooks and MCP servers |
.alter-zero/ in a project |
Project-specific agents/, skills/, hooks.json, and mcp.json |
AGENTS.md |
Project instructions read by the agent |
Claude Code-style .claude/skills/ and .mcp.json files are also supported. Hooks, yours and a project's, and a project's MCP servers run only after you approve them when the app starts.
Alter Zero is free and open source. If it earns a place in your terminal, a donation keeps the work going. /donate shows these addresses inside the app, each in a copyable box.
| Coin | Supported network(s) | Address |
|---|---|---|
| BTC (Bitcoin) | Bitcoin Native SegWit | bc1qhwamfrwuhz64pk00l75ykfff2ang22ns64chf7 |
| ETH (Ethereum) | Ethereum, Linea, Base, Arbitrum, BNB Chain, OP, Polygon | 0xEAf6fbabB9DBE7a23BfE22A7A6c4aCe02063524b |
| SOL (Solana) | Solana | Gwhv5c6uAa6aAz1MjwzV9QJpbm7CJWy2kuCeZ75mFc94 |
Important: Send only on a network listed for that address. Confirm that the asset and selected network match before sending. An address may look valid on another network, but funds sent on an unlisted or mismatched network may be unrecoverable.
Thank you.
Alter Zero is released under the Apache License 2.0. Copyright 2026 linuztx.
Alter Zero is made possible by the people, projects, and communities behind it:
- Agent Zero and its team for supporting the development of Alter Zero, including the free A0T inference credits used during testing.
- Claude Code and Codex CLI for the interaction patterns that helped shape Alter Zero.
- ratatui and crossterm for the foundation of the terminal UI.
See the additional technical credits.
