zero

TwigpineMIT活跃维护

可自托管的命令行编码 Agent,支持接入 OpenAI、Anthropic、Gemini、Ollama 等多种模型,让开发者按自己的规则在本地完成代码辅助任务。

The coding agent that answers to you, your model, your machine, your rules.

v0.13.0发布于 2026-11-09 06:21 UTC1,784star +2 / 7 天209fork同步于 2026-11-10 11:46 UTC

怎么上手

由 README 提炼,执行前请确认
npm install -g @twigpine/zero
zero
硬件要求按 README 说明

README 未说明显存或 GPU 要求;本地模型需自行运行 Ollama、LM Studio 或 Atomic Chat 桌面端。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

本地终端里的 AI 编码代理,模型、权限和会话都由你自己掌控

可自托管的命令行编码 Agent,支持接入 OpenAI、Anthropic、Gemini、Ollama 等多种模型,让开发者按自己的规则在本地完成代码辅助任务。

核心能力

  • 支持 OpenAI、Anthropic、Gemini、Ollama 等 25+ 提供商与兼容端点
  • 文件写入、Shell 命令和网络访问都经过权限与沙箱策略
  • TUI 提供模型选择、图片输入、斜杠命令和会话恢复与分叉
  • zero exec 可脚本化,支持 text/JSON/stream-JSON 输出与 CI 退出码
  • 会话保存在本地磁盘,可搜索可恢复,不上传遥测

容易踩的坑

旧包名 @gitlawb/zero 自 0.10.0 起不再更新,需先卸载再装新包;从源码构建需要 Go 1.26.10+;Linux 原生沙箱依赖 Bubblewrap,缺少时主程序会自行作为 helper 重新执行。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.13.0
  1. v0.13.0最新正式版2026-11-09 · 2026-11-09 06:21 UTC

    0.13.0 (2026-11-09)

    Features

    • mcp: add AI/ML API as an opt-in built-in server (#1193) (16ccd78)
    • plugins: add CLI enable/disable for plugin.json (#1202) (05c1b5e)
    • providers: point OpenGateway at api.twigpine.com and trust its live model list (#1208) (47f78c6)
    • web-fetch: add an opt-in AI/ML API Toolbox scraping backend (#1192) (c9f1794)
    • web-search: add AI/ML API Toolbox as an opt-in backend (#1189) (9873645)

    Bug Fixes

    • hooks: dispatch specialistStart/Stop lifecycle hooks (#1204) (2ca84cc)
    • tui: make reasoning stream rendering linear (coalesced deltas, O(1) append, tail-bounded preview) (#1198) (bbf779e)

    Performance Improvements

    • tui: bounded file read, LRU rendering cache, and size caps for full-file view (#1203) (e034a93)
  2. v0.12.02026-11-03 · 2026-11-03 00:10 UTC
    查看更新说明

    0.12.0 (2026-11-02)

    Features

    • providers: add MiniMax-M3.1-Flash to catalog (#1180) (d99f92b)
    • sandbox: support self-exec pattern to eliminate separate helper binary (#946) (8c4e759)
    • skills: install a skill's bundled files and point the skill tool at them (#1167) (1641506)

    Bug Fixes

    • agent: mark headless guardrail stops incomplete (#1182) (5aa54fe)
    • bump Go to 1.26.10 for GO-2026-6809 (#1168) (6393a90)
    • chatgpt: refresh subscription defaults and compatibility version (#1179) (f912f80)
    • deps: refresh the lockfile to hono 4.13.13 (#1171) (de1443b)
    • oauth: reuse the crash-safe secret store and sync encrypted publications (#1165) (84c1b15)
    • redaction: redact credentials whose trigger a greedy span swallowed (#1158) (a97db88)
    • sessions: capture freeform apply_patch checkpoints (#1183) (6396208)
    • sessions: preserve image attachment summaries on resume (#1152) (1e84849), closes #1135
    • tools: grep stops where a file's line breaks stop (#1160) (aa9ba84)
    • workspaceindex: import gitsafe under the Twigpine module path (#1153) (ef4da13)
    • workspaceindex: run Scan's git calls through gitsafe (#1149) (2ffe183)
  3. v0.11.02026-10-16 · 2026-10-16 03:28 UTC
    查看更新说明

    0.11.0 (2026-10-15)

    Features

    • providers: add Concentrate provider preset (#1147) (61b0936)

    Bug Fixes

    • cli: let providers subcommands run with no active provider (#1143) (d1a0d04)
    • npm: wait for npm to apply each publish, and drop the one-time @gitlawb/zero steps (#1145) (8e363fc)
    • tui,cli: stop a repository's git config from running programs in Zero's own git calls (#1133) (640d936)
    • workspaceindex: skip git-ignored and build-cache dirs in Scan only (#1117) (c88c77b)

    Performance Improvements

    • redaction: add fast-path byte checks to eliminate regex allocations on clean strings (#945) (ce2fcff)
  4. v0.10.02026-10-15 · 2026-10-15 04:14 UTC
    查看更新说明

    0.10.0 (2026-10-15)

    Features

    • notify: make permission-prompt alerts on by default and discoverable (#1001) (7f8e5f0)
    • npm: publish as @twigpine/zero (#1142) (530563a)
    • providers: add GMI Cloud provider preset and partner listing (#1127) (1335ca6)
    • providers: opt-in ZERO_RESPONSE_HEADER_TIMEOUT override for slow first-byte deployments (#1106) (ddc45f2)
    • runtime: add process-local per-model RPM admission limits (#1116) (eebb384)
    • sessions: add zero sessions prune, which never removes a session another process has open (#1089) (23c27e0)

    Bug Fixes

    • acp: persist the session permission mode across restarts (#1134) (bb96206), closes #1125
    • acp: persist token usage events for ACP sessions (#1137) (300cf62), closes #1118
    • acp: publish sub-run sessions loaded over ACP as view-only (#1078) (7f11491)
    • agent: retry mid-stream transport aborts before tool dispatch (#1076) (b9ef1d2)
    • config: sync atomic config replacements (#1093) (4d2e9f0)
    • cron: bound run history and read recent records from the tail (#1094) (42eb6ab)
    • cron: preserve newer claims when overlapping runs complete (#1090) (2eb9d94)
    • daemon: bound pending sessions and prune on completion (#1091) (8a68660)
    • daemon: do not retry workers that finished with a final exit code (#1112) (eefa978), closes #1100
    • daemon: stop worker process groups by their launch-time identity (#1088) (ab018b3), closes #861
    • deps: refresh the lockfile to patched hono and @hono/node-server (#1080) ([aa52040](https://github.com/Twigpine/zero
  5. v0.9.02026-09-15 · 2026-09-15 04:59 UTC
    查看更新说明

    0.9.0 (2026-09-15)

    Features

    • acp: add standard session list and resume (#914) (c1937df)
    • acp: emit structured file changes in tool updates (#999) (faec8ee)
    • acp: surface safe browser tool metadata (#1000) (a6ec043)
    • exec: default headless runs to the turn-budget ceiling (#1049) (9e609c5)
    • tui: interactive terminal attach for tty exec sessions (#1055) (d73ec81)
    • tui: offer mid-run model escalation behind --allow-escalation (#1019) (91d921f)
    • tui: richer /resume session browser (#1047) (2f53117)

    Bug Fixes

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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
    

    Partners

    Why Zero

    • Use the model you want. Bring OpenAI, Anthropic, Gemini, Groq, OpenRouter, DeepSeek, Mistral, xAI, Qwen, Kimi, GitHub Models, Ollama, LM Studio, Atomic Chat, 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 @twigpine/zero
    zero
    

    The npm package is a small wrapper whose platform build (Linux and macOS on x64/arm64, Windows on x64 — including the browser/terminal control helpers) installs as an optional dependency straight from the npm registry — no install scripts, no downloads outside npm. Bun, pnpm, and yarn work the same way with no trust or approval steps. Installs that skip optional dependencies (--omit=optional) still work: the wrapper fetches the binary from the matching GitHub Release whenever it is missing. Windows on ARM runs the x64 build under emulation. See docs/NPM_PACKAGING.md for how the package is put together.

    Installed Zero as @gitlawb/zero? The package moved to @twigpine/zero in 0.10.0 and the old name gets no further releases. Both packages provide the zero command, so quit any running zero, then remove the old package first:

    npm uninstall -g @gitlawb/zero
    npm install -g @twigpine/zero
    

    Your config, sessions, and logins are kept; they live outside the package. For Bun, pnpm, and yarn, see docs/INSTALL.md.

    Install scripts

    Linux/macOS:

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

    Windows PowerShell:

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

    From source

    Source builds require Go 1.26.10+.

    git clone https://github.com/Twigpine/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, native sandboxing needs Bubblewrap. The main zero binary re-executes itself as the helper when zero-linux-sandbox is absent. A separate helper next to zero or on PATH still takes precedence:

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

    Put zero 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=...
    export AIMLAPI_API_KEY=...
    export LONGCAT_API_KEY=...
    export FIREWORKS_API_KEY=...
    export GMI_API_KEY=...
    export CONCENTRATE_API_KEY=...
    export MINIMAX_API_KEY=...
    export MINIMAXI_API_KEY=...
    

    To configure AI/ML API directly, run:

    zero providers setup aimlapi --set-active
    

    To configure Meituan LongCat (LongCat-2.0) directly, run:

    zero providers setup longcat --set-active
    

    To configure Fireworks AI directly, run:

    zero providers setup fireworks --set-active
    

    To configure GMI Cloud directly, run:

    zero providers setup gmicloud --set-active
    

    To configure Concentrate directly, run:

    zero providers setup concentrate --set-active
    

    MiniMax presets use the Anthropic-compatible endpoints for the global and China regions:

    zero providers add minimax --set-active
    zero providers add minimaxi-cn --set-active
    

    To use the OpenAI-compatible endpoints instead, add a custom compatible profile for the required region:

    zero providers add custom-openai-compatible \
      --name minimax-openai \
      --model MiniMax-M3 \
      --base-url https://api.minimax.io/v1 \
      --api-key-env MINIMAX_API_KEY \
      --set-active
    
    zero providers add custom-openai-compatible \
      --name minimax-cn-openai \
      --model MiniMax-M3 \
      --base-url https://api.minimaxi.com/v1 \
      --api-key-env MINIMAXI_API_KEY \
      --set-active
    

    For local models, run Ollama, LM Studio, or the Atomic Chat desktop app, then use zero setup or zero providers detect. For Atomic Chat, load a model and enable its local OpenAI-compatible API (default http://127.0.0.1:1337/v1). Choose atomic-chat-local; detection includes the loaded model ID in the add command. If no usable ID is discovered, load a model and retry. Model IDs requiring shell-specific quoting use interactive setup.

    Daily Use

    Interactive TUI

    zero
    

    Useful controls:

    ControlAction
    Entersend the prompt
    /open slash-command suggestions
    Ctrl+X then lettercommon slash commands (e.g. m → /model; Ctrl+X ? for full list)
    Ctrl+P / Ctrl+Nprevious / next item in menus (arrows still work)
    Shift+Tabcycle permission mode
    Ctrl+Bshow/hide the sidebar
    Ctrl+Ccancel, exit, or return from a /btw conversation

    Common slash commands:

    CommandPurpose
    /model, /providerswitch the active model/provider
    /spec, /plandraft and review a plan before building
    /imageattach an image for vision-capable models
    /resume, /rewindcontinue or roll back local sessions
    /newstart a fresh session in place (previous session stays on disk)
    /btw [question]ask in an isolated fork without adding the side conversation to the main session
    /looprepeat a prompt or custom /command on an interval (/loop 5m /babysit-prs) or self-paced
    /compact, /contextmanage context usage
    /permissions, /toolsinspect available tools and policy
    /add-dirallow an extra write directory for this session
    /theme, /doctor, /configadjust 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.

    web_fetch refuses loopback, private and other special-use addresses: it checks the URL before asking permission, resolves the host, and dials the address it validated so a name cannot resolve to something else in between.

    If HTTP_PROXY/HTTPS_PROXY is set, web_fetch and the provider connectivity probe use it, and that last step changes: the proxy is dialed and the target hostname is sent to it, so the proxy decides which address the request actually reaches. The URL is still checked and resolved locally first, but a proxy that answers differently can reach a private service. A forward proxy already sees and can rewrite every request through it, so this is the trust you accept by configuring one. Leave the variables unset for the checks to be enforced end to end.

    The built-in web_search tool is registered only when a search backend is configured: ZERO_WEBSEARCH_BASE_URL (with an optional ZERO_WEBSEARCH_API_KEY) for a generic JSON endpoint, ZERO_WEBSEARCH_PROVIDER=searxng with a SearXNG base URL, or the AI/ML API Toolbox:

    export ZERO_WEBSEARCH_PROVIDER=aimlapi
    

    The AI/ML API backend runs the Toolbox tool web/search, and every search is billed to your AI/ML API balance: about $0.0013 per result, with a documented minimum of $0.0091 per search. Each search is sent with a $0.025 spending cap, which the Toolbox enforces. It is used only when ZERO_WEBSEARCH_PROVIDER is set to aimlapi; an AI/ML API key alone never enables it. The key is read from your user configuration only; provider profiles in a project .zero config are not used. It is the aimlapi profile's key (the active profile when it is aimlapi, otherwise the first aimlapi profile), including a key in the credential store, or AIMLAPI_API_KEY when no aimlapi profile exists. It is resolved again on every search; ZERO_WEBSEARCH_API_KEY is not used. When any aimlapi profile, or any profile that reads AIMLAPI_API_KEY, points at a base URL other than https://api.aimlapi.com/v1, or AIMLAPI_INFERENCE_URL is overridden, the key may belong to a proxy, so it is not sent and the search fails without a request. Requests go only to https://tools.aimlapi.com (ZERO_WEBSEARCH_BASE_URL is ignored and redirects are refused) and carry X-AIMLAPI-Source: agent/zero and an X-AIMLAPI-Partner-ID header. The domains argument is sent to the Toolbox as include_domains, and results are still filtered locally.

    AI/ML API Toolbox backend for web_fetch

    web_fetch can fetch pages through the AI/ML API Toolbox tool search1api/crawl instead of a direct HTTP GET. It is off unless you choose it:

    export ZERO_WEBFETCH_PROVIDER=aimlapi
    

    Having an AI/ML API key never switches it on by itself, and any other value (or none) keeps the direct fetch. The variable is read on every fetch.

    • Billing: Toolbox runs are billed to your AI/ML API balance, about $0.0013 per run. Each run is sent with max_cost_usd 0.005, so a run priced above that is refused before it starts and not charged. Rate-limited or gateway-failed requests are retried with the same idempotency key, so a retry is never billed twice.
    • Key: the key comes from your aimlapi provider profile (including a key in the credential store), or from AIMLAPI_API_KEY when there is no such profile. It is withheld, and web_fetch returns an error, when any aimlapi profile or any profile using AIMLAPI_API_KEY points at a base URL other than https://api.aimlapi.com/v1, or when AIMLAPI_INFERENCE_URL is overridden: the key may then belong to a proxy.
    • Destination: requests go only to the fixed https://tools.aimlapi.com endpoint, with Authorization: Bearer <key> and the attribution headers X-AIMLAPI-Source: agent/zero and X-AIMLAPI-Partner-ID. Redirects are refused. HTTP_PROXY/HTTPS_PROXY apply to these requests as to Zero's other aimlapi.com calls.
    • No fallback: without a usable key, or when the run fails, web_fetch returns an error and does not fetch the page directly. Unset the variable to go back to direct fetches.
    • Remote fetch: the page is fetched by a remote service, which may serve a cached copy, and the full URL (query string included) is sent to it. The URL checks above still run first, so loopback, private and metadata URLs are never handed to it. The result is Markdown with a Backend: aimlapi (search1api/crawl) line; max_bytes cuts the Markdown, and format: "raw" is refused because the original response is not available. The complete Toolbox run response is limited to 8 MiB before JSON decoding; larger responses return an error even if max_bytes is smaller. The remote run may already have been billed when this limit is detected.

    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, rewind, and prune 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   check for newer releases
    zero upgrade          download, verify, and install the latest release
    

    Cron keeps the newest 1,000 run outcomes per job in runs.jsonl. Each new run atomically replaces the history with the retained tail; existing larger histories are trimmed on their next run. Archive the file before that run if you need older outcomes. This retention does not delete session directories or reset fire counts. Malformed records and legacy lines of 1 MiB or more are skipped when reading or compacting history; new records of that size are rejected.

    Extending Zero

    Project and personal instructions

    Zero appends project-specific guidance to the system prompt from the first AGENTS.md, ZERO.md, or .zero/AGENTS.md file found in each directory from the git root down to your current working directory (checked in that order per directory). Files are injected general-to-specific, capped at 8 KiB per file and 32 KiB total.

    A personal ZERO.md under config.UserConfigDir()/zero/ZERO.md ($XDG_CONFIG_HOME/zero/ZERO.md or ~/.config/zero/ZERO.md on Linux/macOS, %AppData%\Roaming\zero\ZERO.md on Windows) applies across every workspace, ahead of any project guidelines.

    Plugins

    Plugins are discovered from ~/.config/zero/plugins/<name>/plugin.json (user scope — $XDG_CONFIG_HOME or ~/.config on every OS, independent of the config.UserConfigDir() path used above) and <cwd>/.zero/plugins/<name>/plugin.json (project scope — resolved from the current working directory, not the repo root), and managed with zero plugins. A manifest can declare:

    • tools — custom tools (command, args, inputSchema, and a permission of prompt or deny; allow is honored only when manifest tool auto-approval is enabled)
    • hooks — commands run on beforeTool, afterTool, sessionStart, or sessionEnd
    • prompts and skills — additional prompt/skill files

    MCP servers (zero mcp) and standalone markdown skills (zero skills) use the same extension points and can also be wired up outside of a plugin manifest.

    Appearance And Accessibility

    ControlEffect
    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, neon, solarized-light, dune)
    --theme <name>selects the TUI theme from the CLI (same names)
    /themeopens the theme picker inside the TUI (live preview; /theme <name> switches directly)
    ZERO_NO_FADE=1disables 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
    

    Experimental: ZERO_OPENAI_TURN_SESSION=1 enables the optimized OpenAI turn session (background connection prewarm + request-prefix telemetry) for headless zero exec runs against official OpenAI profiles. Off by default; 0, false, or off disable it. A/B-benchmark it by running the same zero-perf-bench suite with the variable unset and set.

    Native ChatGPT Responses sessions are enabled by default. Set ZERO_CHATGPT_TURN_SESSION=0, false, or off to restore stateless HTTP/SSE transport.

    Code Quality and Security Checks

    Before committing any changes, ensure all Go code quality and security checks pass. The make targets below pin each tool to this module's Go version, so they load correctly even when your default go toolchain is older — running the plain go run ...@version form yourself can select the tool module's own (older) toolchain and fail to load this module instead.

    1. Formatting: Run make fmt (or go fmt ./...).
    2. Vetting: Run make vet (or go vet ./...).
    3. Linting: Run make lint-static.
    4. Vulnerability Scan: Run make vulncheck.

    Use the repository-managed targets rather than globally installed binaries: the targets apply the module's required Go toolchain as well as the reviewed, pinned tool versions.

    The installed binaries land in $GOBIN when it is set, otherwise in $GOPATH/bin (default ~/go/bin). That directory must be on your PATH to run them directly. If it isn't, add it:

    gobin="$(go env GOBIN)"; [ -z "$gobin" ] && gobin="$(go env GOPATH)/bin"
    case ":$PATH:" in *":$gobin:"*) ;; *) export PATH="$PATH:$gobin" ;; esac
    

    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

    Community

    Real-time chat happens on the Discord server.

    Questions, setup help, ideas, and sharing all live in GitHub Discussions:

    CategoryUse it for
    Q&ASetup help, provider/model configuration, "how do I" questions
    IdeasFeature proposals and design discussion before any PR
    Show and tellYour skills, plugins, MCP setups, themes, and workflows
    AnnouncementsReleases and project news from the maintainers

    For a good Q&A answer fast, include zero --version, your OS and install method, the provider/model in use, and zero doctor output. See SUPPORT.md. Bugs belong in issues; security reports follow SECURITY.md, never a public thread.

    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.