# zot: Yet Another Coding Agent Harness

> A single-binary Go coding agent that runs with no runtime dependencies. Provider-agnostic with intentional minimalism: four core tools and an extension model.

Published: 2026-06-08
URL: https://daniliants.com/insights/zot-yet-another-coding-agent-harness/
Tags: coding-agents, go, llm, cli-tools, multi-provider, subagents, agent-loop, self-hosting

---

## Summary

zot is a single-binary coding agent written in Go that competes with Claude Code, Codex CLI, and similar tools. It targets developers who want a lightweight, provider-agnostic alternative with no runtime dependencies, just drop it on `$PATH` and run. Its differentiator is intentional minimalism: four core tools, clean session control, and an extension model rather than a built-in plugin ecosystem.

## Key Insight

- **Architecture choice matters.** Single Go binary = zero installation friction, no Docker, no Node, no Python env. Meaningful advantage for teams doing remote/server-side agent work.
- **Four tools only at core:** read, write, edit, bash. This matches what most coding agents actually use 90% of the time; the constraint is a feature, not a limitation.
- **Broad provider support out of the box:** Anthropic, OpenAI/Codex, Gemini, Kimi, DeepSeek, Bedrock, Vertex, Copilot, OpenRouter, local models. One agent loop, any model, useful for cost-switching or model comparison without changing workflow.
- **Swarm mode** allows background subagents each running their own model loop in the same repo, parallel workstreams without a separate orchestrator.
- **Session control is first-class:** resume, fork, branch, compact, export portable transcripts. Auto-compacts before hitting context window limits, a practical safeguard missing from many alternatives.
- **Telegram bridge** lets you drive the agent remotely via DM, same read/write/edit/bash capabilities as the TUI. Useful for monitoring long-running tasks from mobile.
- **No mandatory MCP** is an explicit design decision. Extensions use subprocess + JSON-RPC instead, keeping the binary lean. MCP can be added via extension if needed.
- **Config philosophy:** single `config.json`, override system prompt with one file, no sprawl. Low cognitive overhead for multi-machine setups.