Zot now supports Claude Opus 4.8 The coding agent Zot now supports Claude Opus 4.8, adding the model to its catalog of over 20 providers including OpenAI, Google Gemini, and local models. The lightweight terminal agent, distributed as a single static Go binary, allows users to interact via TUI, one-shot print, JSON events, or RPC while editing files and running shell commands. zot. Yet another coding agent harness. Lightweight. Single binary. Written vibe-slopped in Go. In beta forever. ask anything, or type /help to see commands. curl -fsSL https://www.zot.sh/install.sh | bash About about zot is a minimal terminal coding agent, shipped as one static Go binary. No runtime. No Docker. No plugin system with a dedicated package manager. Just the agent loop done well. Drop it on your $PATH and go. It talks to Anthropic, OpenAI/Codex/Responses, Kimi, DeepSeek, Google Gemini/Vertex, GitHub Copilot, Bedrock, Azure OpenAI, OpenRouter, Groq, Cerebras, xAI, Together, Hugging Face, Mistral, Moonshot, Z.AI, Xiaomi, MiniMax, Fireworks, Vercel AI Gateway, OpenCode, Cloudflare AI, and local OpenAI-compatible models like ollama , edits your files, runs your shell, and even answers your Telegram DMs. Bring your own API key or log in with a Claude, ChatGPT/Codex, Kimi Code, or GitHub Copilot subscription. DeepSeek and Google are API-key only. Four ways to run it: interactive - full TUI with streaming output, slash commands, queued messages, and an inline side-chat. print - zot -p , one-shot, final assistant text to stdout. Great for shell pipelines. json - zot --json , NDJSON events to stdout. Perfect for scripts and CI. rpc - zot rpc , long-lived child process, NDJSON commands on stdin and events on stdout. Drop zot into apps written in any language. See the wire format. https://github.com/patriceckhart/zot/blob/main/docs/rpc.md Providers providers zot ships a broad provider catalog so /login , /model , --provider , and --list-models all speak the same IDs. Subscription-capable - Anthropic Claude Pro/Max anthropic , OpenAI Codex / ChatGPT Plus/Pro openai-codex , Kimi Code kimi , and GitHub Copilot github-copilot . Direct API providers - Anthropic, OpenAI Chat Completions, OpenAI Responses, DeepSeek, Google Gemini, Kimi/Moonshot, Moonshot CN, Groq, Cerebras, xAI, Together AI, Hugging Face Router, OpenRouter, Mistral, Z.AI, Xiaomi/MiMo token-plan regions, MiniMax global/CN, Fireworks, Vercel AI Gateway, and OpenCode/OpenCode Go. Cloud/platform providers - Amazon Bedrock, Google Vertex AI, Azure OpenAI, Cloudflare Workers AI, and Cloudflare AI Gateway. Local/compatible - Ollama and OpenAI-compatible local endpoints via --base-url . Use /login to store API keys or subscription credentials. The model picker only shows models from providers currently available through env vars, auth.json , Kimi CLI fallback, or local Ollama. Models models --list-models and /model show the merged catalog across every provider. Built-in entries cover Claude, GPT/Codex, Gemini/Gemma, Kimi/Moonshot, DeepSeek, Groq-hosted Llama/Gemma/Compound, OpenRouter-routed models, Bedrock model IDs, Vertex model IDs, Azure OpenAI deployments, Copilot models, and other provider-specific entries. zot also merges live IDs discovered from GET /v1/models using stored API keys, cached for six hours in $ZOT HOME/models-cache.json . Speculative catalog entries are included too; they start working as soon as the upstream provider enables them. Custom models can be added with $ZOT HOME/models.json . User entries take precedence over both baked-in and live-discovered models, and support provider IDs such as groq , openrouter , github-copilot , amazon-bedrock , google-vertex , azure-openai-responses , fireworks , vercel-ai-gateway , mistral , and xai . Tools tools Four built-in tools. Zero ceremony. The minimum viable toolbox for an agent that actually ships code. read - read text files, or render PNG / JPG / GIF / WebP inline on modern terminals. write - create or overwrite files, making parent directories as needed. edit - one or more exact-match replacements in an existing file. bash - run a shell command in the session cwd with merged stdout/stderr and a timeout. Type /jail to confine every tool to the current directory. Bash refuses sudo , rm -rf / , and other obvious escape patterns. It's a guardrail against accidents, not a hard security boundary. Extensions extensions zot can be extended in any language via a subprocess plus JSON-RPC protocol. Extensions can register slash commands, expose new tools to the model, intercept tool calls for permission gates, and open interactive extension-owned panels inside the TUI. Nothing installs automatically. Opt in per machine with zot ext install , or per run with zot --ext ./path while hacking on one. Each extension gets its own directory, so persistent state like todo data, settings, or caches can live beside the extension itself. zot ext install ./my-extension copy into $ZOT HOME/extensions/ zot ext list show what's loaded zot ext logs my-extension -f tail stderr zot update also fast-forwards every git-installed extension Reference implementations live under examples/extensions/ in Go, TypeScript, and Node. The protocol now also covers extension-driven panels, key routing, and redraws for building interactive tools inside zot itself. Read the protocol spec. https://github.com/patriceckhart/zot/blob/main/docs/extensions.md Skills skills Skills are per-folder SKILL.md files with a YAML frontmatter header. zot discovers them at startup, surfaces their names in the system prompt, and exposes a built-in skill tool the model uses to load the body on demand. The agent pulls in exactly the instructions it needs, nothing more. Built-in and user-installed skills load by default from .zot/skills/ , $ZOT HOME/skills/ , .claude/skills/ , or .agents/skills/ . Use --no-skill to disable all skill discovery. Read the skill format. https://github.com/patriceckhart/zot/blob/main/docs/skills.md Sessions sessions Every turn is appended to a JSONL transcript under $ZOT HOME . Resume the last session with -c , pick one with -r , or browse them all from /sessions . Jump between past turns with /jump without editing history. Free up context without losing the thread with /compact , which summarizes the transcript into a single message and keeps the last few exchanges verbatim. zot auto-compacts when you cross 85% of the model's context window. /session covers the heavier ops on the running transcript. export writes it to a portable .zotsession file default ~/Downloads so you can hand it to another machine or user; import pulls one back in as a first-class resumable session. fork branches from any past user message into a new session parent + fork point recorded in the new meta so you can try a different direction without polluting the original thread; tree shows every branch in this directory with parent/child indentation and lets you switch into any of them. Export covers only the main chat thread — messages, tool calls, tool results, compactions, and usage. /swarm subagents are not bundled: their per-agent state lives in a unix-socket inbox and a session file on disk, neither of which round-trips through a JSONL file. To share what an agent said, copy it out of the transcript view manually. Side chat side-chat Type /btw to open a side-chat overlay with the full main session as frozen context. Ask quick clarifying questions without bloating the main thread. Nothing the side chat says is appended to the transcript or persisted to the session file, so your running context window stays lean. /btw open the overlay /btw does PUT replace the whole resource? Swarm swarm Background subagents that run alongside your main session. Type /swarm to open the dashboard, then n to spawn one. Each agent is a separate zot subprocess with its own model loop, its own persistent session file, and its own chat in the dashboard — but they all run in the same working directory as the host, so they see and edit the same files you do. You keep working in your main session; the subagents work in parallel. Agents edit the same files you do. They use the same read / write / edit / bash tools as the main agent against the host's working directory. There's no per-agent worktree or branch. If you need parallel edits on isolated checkouts, set that up yourself with git worktree outside zot. Press enter on any row to open that agent's transcript — a chat overlay with an always-on inline composer at the bottom, streaming auto-follow, and a busy spinner showing the agent's current activity thinking , tool: edit file , etc. . Type and hit enter to send a follow-up; esc returns to the dashboard. Common shapes from the command line so scripts and headless flows work the same as the dashboard: /swarm open the dashboard /swarm new