zero

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 2, 2026 License: MIT

README

Zero

A terminal coding agent you own.

license

Zero is an AI coding agent for your local terminal. It can inspect a repository, edit files, run commands, use browser/terminal helpers, and keep durable local sessions while you choose the model and the permission level.

zero
zero exec "fix the failing test in ./pkg"
zero exec --output-format stream-json < turns.jsonl

Why Zero

  • Use the model you want. Bring OpenAI, Anthropic, Gemini, Groq, OpenRouter, DeepSeek, Mistral, xAI, Qwen, Kimi, GitHub Models, Ollama, LM Studio, or any OpenAI-/Anthropic-compatible endpoint.
  • Stay in control. File writes, shell commands, network access, and out-of-workspace writes go through Zero's permission and sandbox policy.
  • Works in the terminal. The TUI has model/provider pickers, image input, slash commands, live plan/tool rendering, scrollback, themes, and resume/fork support.
  • Works without the TUI. zero exec is scriptable, supports text/JSON/ stream-JSON I/O, isolated worktrees, spec-first runs, and meaningful exit codes for CI.
  • Keeps context local. Sessions are stored on disk, searchable, resumable, and never uploaded as telemetry by Zero.
  • Extensible when you need it. Use MCP servers, skills, plugins, hooks, and specialist subagents from the same CLI.

Install

npm

npm install -g @gitlawb/zero
zero

The npm package installs a small wrapper plus the matching Zero binary for your platform from GitHub Releases. It supports Linux, macOS, and Windows on x64 and arm64.

Install scripts

Linux/macOS:

curl -fsSL https://raw.githubusercontent.com/Gitlawb/zero/main/scripts/install.sh | bash

Windows PowerShell:

irm https://raw.githubusercontent.com/Gitlawb/zero/main/scripts/install.ps1 | iex

From source

Source builds require Go 1.25+.

git clone https://github.com/Gitlawb/zero.git
cd zero
go run ./cmd/zero

Release installers and the npm wrapper require published GitHub Release assets. If you are testing before the first public release, build from source:

go build -o zero ./cmd/zero

On Linux, build the sandbox helper too if you want native sandboxing:

go build -o zero-linux-sandbox ./cmd/zero-linux-sandbox
go build -o zero-seccomp ./cmd/zero-seccomp   # optional compatibility wrapper

Put zero and zero-linux-sandbox in the same directory on PATH (~/.local/bin is a good default). macOS does not need an extra helper binary. Windows source builds can use the main zero.exe as their sandbox helper; release archives still ship standalone Windows helper executables.

More install details: docs/INSTALL.md.

First Run

Start the TUI:

zero

The setup wizard helps you pick a provider and model. You can also configure providers from the command line:

zero setup
zero providers list
zero models list
zero doctor

For API providers, set the matching environment variable before setup or enter the key in the wizard:

export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=...
export GEMINI_API_KEY=...

For local models, run Ollama or LM Studio and then use zero setup or zero providers detect.

Daily Use

Interactive TUI

zero

Useful controls:

Control Action
Enter send the prompt
/ open slash-command suggestions
Shift+Tab cycle permission mode
Ctrl+B show/hide the sidebar
Ctrl+C cancel or exit

Common slash commands:

Command Purpose
/model, /provider switch the active model/provider
/spec, /plan draft and review a plan before building
/image attach an image for vision-capable models
/resume, /rewind continue or roll back local sessions
/compact, /context manage context usage
/permissions, /tools inspect available tools and policy
/add-dir allow an extra write directory for this session
/theme, /doctor, /config adjust appearance and inspect setup

Headless exec

zero exec "explain internal/agent/loop.go"
zero exec --model claude-sonnet-4.5 "refactor the config loader"
zero exec --use-spec "add rate limiting to the API client"
zero exec --worktree "try the migration in an isolated worktree"
zero exec --resume
zero exec --fork <session-id> "try the other approach"

Programmatic use:

zero exec --input-format stream-json --output-format stream-json < turns.jsonl

The stream-JSON contract is documented in docs/STREAM_JSON_PROTOCOL.md.

Safety Model

Zero is designed to make side effects visible.

  • Workspace reads are allowed by default.
  • File writes are limited to the workspace unless you grant another directory.
  • Shell commands, network access, destructive commands, and elevated actions are permission-gated.
  • --add-dir <path> and /add-dir <path> grant additional write roots without giving the agent the whole filesystem.
  • Unsafe/autonomous modes are explicit opt-ins.
  • Secrets are redacted from tool output and logs where Zero controls the surface.

Example:

zero --add-dir ../docs-site
zero exec --add-dir ../shared "update both repos"

Sandbox behavior can be inspected with:

zero sandbox policy
zero sandbox grants list

Web And Local Control

Zero includes local file/search/edit/shell tools, web_fetch for public URLs, and MCP support for additional tools.

For local dev servers, use shell commands such as curl through exec_command so the normal sandbox and permission policy applies. Long-running commands stay attached to a background terminal session and can be listed or stopped from the TUI.

The npm package also includes browser and terminal helper packages used by local browser/terminal tools. Source builds can use the same helpers when they are on PATH or configured in Zero's local-control settings.

Common Commands

zero                  interactive TUI
zero exec             one-shot or scripted agent run
zero setup            first-run provider setup
zero auth             OAuth/login helpers for supported providers
zero models           model registry and capabilities
zero providers        provider profiles and detection
zero doctor           setup, key, and connectivity checks
zero context          context-budget report
zero repo-map         deterministic repository map
zero repo-info        local repository summary
zero search | find    search local session history
zero sessions         inspect, resume, fork, and rewind sessions
zero spec             manage spec-mode drafts
zero specialist       manage specialist subagents
zero skills           manage markdown instruction skills
zero plugins          manage plugins
zero hooks            manage lifecycle hooks
zero mcp              manage MCP servers and tools
zero serve --mcp      expose Zero tools over MCP stdio
zero sandbox          inspect sandbox policy and grants
zero worktrees        prepare isolated git worktrees
zero verify           detect and run local verification checks
zero changes          inspect and commit local git changes
zero usage            token usage and estimated cost
zero cron             scheduled agent jobs
zero update           check for newer releases

Appearance And Accessibility

Control Effect
NO_COLOR=<anything> disables color output
ZERO_THEME=<name> selects the startup theme (auto, dark, light, or a color theme like dracula, nord, gruvbox, tokyo-night, catppuccin, one-dark, solarized-dark, rose-pine, everforest, solarized-light)
--theme <name> selects the TUI theme from the CLI (same names)
/theme opens the theme picker inside the TUI (live preview; /theme <name> switches directly)
ZERO_NO_FADE=1 disables streaming fade animation

Meaning does not rely on color alone; diffs, permissions, and statuses also use text or glyph markers.

Development

go test ./...
go run ./cmd/zero-release build
go run ./cmd/zero-release smoke
go run ./cmd/zero-perf-bench

Cross-compile examples:

go run ./cmd/zero-release build --goos linux --goarch amd64
go run ./cmd/zero-release build --goos windows --goarch amd64 --output dist/zero.exe

Documentation

Contributing

Contributions are welcome. Read CONTRIBUTING.md, run the relevant tests, and open a focused pull request.

Security reports should follow SECURITY.md.

License

Zero is released under the MIT License.

Directories

Path Synopsis
cmd
zero command
zero-perf-bench command
zero-pr-review command
zero-release command
zero-seccomp command
Command zero-seccomp is retained as a compatibility wrapper for existing Linux installs and scripts.
Command zero-seccomp is retained as a compatibility wrapper for existing Linux installs and scripts.
internal
acp
Package acp implements the Agent Client Protocol (ACP) surface for ZERO: a JSON-RPC 2.0 peer spoken over stdio (newline-delimited JSON) so editors such as Zed, JetBrains, and Neovim can drive ZERO's agent core as a backend.
Package acp implements the Agent Client Protocol (ACP) surface for ZERO: a JSON-RPC 2.0 peer spoken over stdio (newline-delimited JSON) so editors such as Zed, JetBrains, and Neovim can drive ZERO's agent core as a backend.
agentinit
Package agentinit builds the bootstrap prompt for the guided /init flow that generates a project AGENTS.md.
Package agentinit builds the bootstrap prompt for the guided /init flow that generates a project AGENTS.md.
browser
Package browser opens a URL in the user's default web browser.
Package browser opens a URL in the user's default web browser.
cli
credstore
Package credstore persists provider API keys outside config.json so secrets are not written to disk in cleartext.
Package credstore persists provider API keys outside config.json so secrets are not written to disk in cleartext.
cron
Package cron implements a small, dependency-free standard 5-field cron parser and next-run evaluator for the `zero cron` scheduler.
Package cron implements a small, dependency-free standard 5-field cron parser and next-run evaluator for the `zero cron` scheduler.
daemon
Package daemon implements zero's long-running daemon/server mode: a local control server that supervises a pool of headless `zero exec` worker processes and routes multiple agent sessions to them over an owner-only local socket.
Package daemon implements zero's long-running daemon/server mode: a local control server that supervises a pool of headless `zero exec` worker processes and routes multiple agent sessions to them over an owner-only local socket.
daemon/remote
Package remote adds an OPT-IN, TLS-only network bridge on top of zero's local daemon (internal/daemon).
Package remote adds an OPT-IN, TLS-only network bridge on top of zero's local daemon (internal/daemon).
imageinput
Package imageinput is the single shared loader for local image files used by every input surface (CLI exec --image, TUI /image).
Package imageinput is the single shared loader for local image files used by every input surface (CLI exec --image, TUI /image).
keyring
Package keyring provides a small, dependency-free secret store backed by the operating system's native credential tooling: the `security` keychain CLI on macOS and `secret-tool` (libsecret) on Linux.
Package keyring provides a small, dependency-free secret store backed by the operating system's native credential tooling: the `security` keychain CLI on macOS and `secret-tool` (libsecret) on Linux.
lsp
Package lsp is a direct Language Server Protocol client: ZERO spawns the language server itself and speaks LSP JSON-RPC over stdio, so an unattended run (cron/CI, no open editor) can still see real compiler diagnostics.
Package lsp is a direct Language Server Protocol client: ZERO spawns the language server itself and speaks LSP JSON-RPC over stdio, so an unattended run (cron/CI, no open editor) can still see real compiler diagnostics.
mcp
minify
Package minify produces a denser, token-cheaper VIEW of a source file for read-only exploration.
Package minify produces a denser, token-cheaper VIEW of a source file for read-only exploration.
notify
Package notify emits dep-free terminal notifications (BEL and/or OSC-9 desktop notifications) when Zero finishes a turn or needs user input.
Package notify emits dep-free terminal notifications (BEL and/or OSC-9 desktop notifications) when Zero finishes a turn or needs user input.
oauth
Package oauth is zero's reusable OAuth 2.0 engine.
Package oauth is zero's reusable OAuth 2.0 engine.
observability
Package observability provides dependency-free crash capture for the CLI: a recovered panic is written to a local crash report (timestamp, label, stack) and surfaced to the user as a brief notice instead of a raw stack trace.
Package observability provides dependency-free crash capture for the CLI: a recovered panic is written to a local crash report (timestamp, label, stack) and surfaced to the user as a brief notice instead of a raw stack trace.
providerhealth
Package providerhealth validates provider configuration and optionally probes the configured provider endpoint with a bounded, non-generating request.
Package providerhealth validates provider configuration and optionally probes the configured provider endpoint with a bounded, non-generating request.
provideroauth
ChatGPT-specific login flow.
ChatGPT-specific login flow.
reasoning
Package reasoning models how each provider's models expose reasoning-effort control.
Package reasoning models how each provider's models expose reasoning-effort control.
repoinfo
Package repoinfo characterizes a repository from local git commands only (no network).
Package repoinfo characterizes a repository from local git commands only (no network).
repomap
Package repomap scans a workspace into a compact, deterministic repository map.
Package repomap scans a workspace into a compact, deterministic repository map.
secrets
Package secrets provides a lightweight, dependency-free scanner for high-confidence secret patterns (cloud keys, provider tokens, private keys, JWTs).
Package secrets provides a lightweight, dependency-free scanner for high-confidence secret patterns (cloud keys, provider tokens, private keys, JWTs).
securefile
Package securefile provides AES-256-GCM encryption-at-rest for small on-disk blobs under a per-user random secret persisted (0600) beside the data file.
Package securefile provides AES-256-GCM encryption-at-rest for small on-disk blobs under a per-user random secret persisted (0600) beside the data file.
skills
Package skills discovers reusable instruction "skills" stored on disk as */SKILL.md files.
Package skills discovers reusable instruction "skills" stored on disk as */SKILL.md files.
swarm
Package swarm adds a multi-agent SWARM on top of zero's single sub-agent mechanism (internal/specialist): an orchestrator can spawn and coordinate MULTIPLE specialist members that run concurrently, communicate via per-agent mailboxes, and hand work off.
Package swarm adds a multi-agent SWARM on top of zero's single sub-agent mechanism (internal/specialist): an orchestrator can spawn and coordinate MULTIPLE specialist members that run concurrently, communicate via per-agent mailboxes, and hand work off.
tui
file_view.go is the drill-in view for a touched file, opened from the FILES sidebar section (files_panel.go).
file_view.go is the drill-in view for a touched file, opened from the FILES sidebar section (files_panel.go).
usercommands
Package usercommands loads user-defined slash commands from markdown files.
Package usercommands loads user-defined slash commands from markdown files.
workspaceindex
Package workspaceindex provides shared deterministic workspace scanning primitives for repo intelligence, tools, and context accounting.
Package workspaceindex provides shared deterministic workspace scanning primitives for repo intelligence, tools, and context accounting.
workspaceseed
Package workspaceseed builds a compact, deterministic workspace context seed for future agent prompt/session wiring.
Package workspaceseed builds a compact, deterministic workspace context seed for future agent prompt/session wiring.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL