Zot now supports Claude Opus 4.8

patriceckhart8 pts0 comments

zot. Yet another coding agent harness.

zot. Yet another coding agent harness.<br>Lightweight. Single binary. Written (vibe-slopped) in Go. In beta forever.<br>GitHubReleasesExtensions

zot<br>i'm zot. yet another coding agent harness.<br>ask anything, or type /help to see commands.<br>(openai-codex) gpt-5.5 $0.000 (sub) 0.0%/272k<br>~/Developer/api-service

install<br>curl -fsSL https://www.zot.sh/install.sh | bash

About#<br>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.<br>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.<br>Four ways to run it:<br>interactive - full TUI with streaming output, slash commands, queued messages, and an inline side-chat.<br>print - zot -p, one-shot, final assistant text to stdout. Great for shell pipelines.<br>json - zot --json, NDJSON events to stdout. Perfect for scripts and CI.<br>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.

Providers#<br>zot ships a broad provider catalog so /login, /model, --provider, and --list-models all speak the same IDs.<br>Subscription-capable - Anthropic Claude Pro/Max (anthropic), OpenAI Codex / ChatGPT Plus/Pro (openai-codex), Kimi Code (kimi), and GitHub Copilot (github-copilot).<br>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.<br>Cloud/platform providers - Amazon Bedrock, Google Vertex AI, Azure OpenAI, Cloudflare Workers AI, and Cloudflare AI Gateway.<br>Local/compatible - Ollama and OpenAI-compatible local endpoints via --base-url.<br>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#<br>--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.<br>zot also merges live IDs discovered from GET /v1/modelsusing 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.<br>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#<br>Four built-in tools. Zero ceremony. The minimum viable toolbox for an agent that actually ships code.<br>read - read text files, or render PNG / JPG / GIF / WebP inline on modern terminals.<br>write - create or overwrite files, making parent directories as needed.<br>edit - one or more exact-match replacements in an existing file.<br>bash - run a shell command in the session cwd with merged stdout/stderr and a timeout.<br>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#<br>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.<br>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.<br>zot ext install ./my-extension # copy into $ZOT_HOME/extensions/<br>zot ext list # show what's loaded<br>zot ext logs my-extension -f # tail stderr<br>zot update # also fast-forwards every git-installed extension<br>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...

openai models kimi extension agent codex

Related Articles