Open Source · Built in Rust

Skill-first AI coding agent
built in Rust

Injects only the context your task needs. No prompt bloat. Single binary, no runtime.

macOS / Linux curl -fsSL https://raw.githubusercontent.com/zap-coding-agent/zap-coding-agent/main/install.sh | bash

The Problem Every AI Coding Agent Has

Open any popular agent and inspect the raw request. You'll find the same wall of tokens sent on every turn — whether you're writing Java or React, fixing a typo or designing an architecture.

Gemini CLI OpenCode zap
Spring Boot request 4,096 tokens 2,003 tokens 1,889 tokens
React request 4,096 tokens 2,003 tokens 1,661 tokens
Prompts identical? ✅ Yes — same bytes ✅ Yes — same bytes ❌ No — different skill
Java conventions in prompt? ❌ None ❌ None ✅ 650 tokens
React conventions in prompt? ❌ None ❌ None ✅ 422 tokens

Gemini CLI sends the same 4,096-token prompt for both tasks. The word "java" does not appear anywhere in its 68,410-character prompt file. OpenCode also ships a static provider-specific prompt. Zap changes the prompt itself based on the job — which means less prompt waste, faster turns, and more room for your actual code, logs, stack traces, and diff context.

What this means in practice: if you're fixing a Spring Boot outage, zap can load Java/project-specific guidance and code-index tools instead of dragging along unrelated generic instructions. If you're reviewing a React diff, it can bias toward frontend conventions and relevant files instead of sending the exact same generic prompt Gemini CLI or OpenCode would have sent for a backend task.

Everything you need. Nothing you don't.

Six interlocking systems — each designed so every token in the context window earns its place.

🎯

Skill-First Context

Skills are markdown files injected surgically only when your message triggers them. A Rust question gets the Rust skill. A greeting costs 31 tokens, not 2,000.

This is the core usability win: less time fighting prompt bloat, less context dilution, and more reliable answers on real repo-specific work.
Learn more →
🕸️

Code Graph Index

Tree-sitter + SQLite map of your repo — symbols, function calls, imports, and PageRank-ranked files. The model answers "who calls X" or "what breaks if I rename Y" in one query instead of ten greps.

Learn more →
🔍

Context Visibility

See exactly what's in the context window. Remove stale messages with /context drop — without starting a new session.

Learn more →

Single Binary

Written in Rust. No Python venv, no Node.js, no Docker. Cold start in milliseconds. Drop it on your PATH and it works.

Learn more →
🔌

Dynamic MCP Loading

MCP servers stay pending at startup. Tool schemas only enter context when explicitly needed — not 10,000 tokens dumped on every turn.

Learn more →
🌐

Multi-Provider

Works with Claude, Gemini, OpenAI, DeepSeek, and local models via LM Studio or Ollama. Switch providers mid-session with /provider.

You keep Zap's tools, memory, indexing, and workflows even when you switch models — so you're not locked into Gemini CLI, OpenCode, or any single-vendor UX.
Learn more →
🔀

Route Task Types to Different Models

Keep one default model, then route coding, review, explain, or search tasks to different models automatically with [model_routes].

Example: use codex/gpt-5.5 for coding, claude-opus-4-8 for review, and keep claude-sonnet-4-6 as the default. zap switches for that turn only, then restores the session model.
Learn more →
🧠

Session Memory — Never Lose Context

At the end of every session, zap asks the LLM to write down what should happen next. Those notes are stored in .zap/context.md and session_log.md. At next startup, the last 3 sessions' bullets are injected into the system prompt automatically — so the model always knows where you left off.

No other coding agent does this automatically. Cursor, Copilot, Windsurf, and aider all start cold. zap starts where you left off.
Learn more →

Recurring Scheduler

Use TUI scheduler commands like /schedule 1h ... or /schedule 17:30 ... to run recurring goals, inspect active jobs, and cancel them when you're done.

Example: every hour, run tests, summarize failures, and update your task plan. Or every evening, ask Zap to review open diffs and draft tomorrow's next steps.
Learn more →
Track what’s shipped and what’s next.

The public roadmap lives in the README roadmap section. Shipped work is recorded in the changelog / feature registry. Upcoming work and discussion should happen in GitHub Issues.

Get Started in 60 Seconds

Pick your platform. No runtime dependencies — just a single binary.

1

Download & install

curl -fsSL https://raw.githubusercontent.com/zap-coding-agent/zap-coding-agent/main/install.sh | bash

Pre-built binary, installed to ~/.local/bin. Works on both Apple Silicon and Intel Macs.

2

Set your API key

# Add to ~/.zshrc export ANTHROPIC_API_KEY=sk-ant-...

Or configure Gemini, OpenAI, or a local model in ~/.agent.toml.

3

Verify & run

zap --version # confirm install cd your-project && zap # start the REPL

Inside the REPL, run /init on first use to let zap learn your codebase.

1

Download & install

curl -fsSL https://raw.githubusercontent.com/zap-coding-agent/zap-coding-agent/main/install.sh | bash

Pre-built binary, installed to ~/.local/bin. Supports x86_64 and arm64.

2

Set your API key

# Add to ~/.bashrc or ~/.zshrc export ANTHROPIC_API_KEY=sk-ant-...
3

Verify & run

zap --version # confirm install cd your-project && zap # start the REPL
1

One-line install (PowerShell)

irm https://raw.githubusercontent.com/zap-coding-agent/zap-coding-agent/main/install.ps1 | iex

Pre-built binary, installed automatically.

2

Set your API key

# PowerShell — add to $PROFILE for persistence $env:ANTHROPIC_API_KEY = "sk-ant-..."
3

Verify & run

zap --version # confirm install cd your-project; zap # start the REPL
Works with Claude Gemini OpenAI DeepSeek LM Studio Ollama

Ready to try it?

Open source, MIT licensed. Zero telemetry. Powerful enough for real multi-step engineering work — but still easy to install, inspect, and control.