The protocol spec

Working draft v1; reference CLI v0.1. The canonical version is AGENTCHUTE.md in the repo — it renders cleanly on GitHub with the right anchor links, table of contents, and code highlighting. The summary below is a reading guide for what's in each section.

The TL;DR

Protocol primitives (medium-agnostic): per-recipient inbox · ordered identified messages · no-overwrite delivery · recipient-owned consumption · optional wake · self-registration.

Reference implementation (v0.1): markdown files on a shared filesystem · atomic create + rename · vendor-namespaced dotdir at repo root · tmux as the v0.1 wake adapter.

Alternate inbox transports (Redis/NATS queues, S3-prefixed inboxes, HTTP endpoints, git-backed) are protocol-compatible — see EXTENSIONS.md — but no non-filesystem implementation ships in v0.1.

Section guide

  • §1 Purpose — the inbox primitive vs. the v0.1 filesystem implementation, in one screen.
  • §2 Scope — what's in v1, what's not, the concurrency posture, the v0.1 reference CLI's access requirements.
  • §3 Layout (filesystem reference) — how the v0.1 CLI maps the primitives onto a vendor-namespaced dotdir, with tracked vs. gitignored conventions.
  • §4 Discovery — the two cascades (control repo, loop directory) the CLI walks to find both; the .agentchute-control-repo pointer file for cross-folder enrollment.
  • §5 Registration — the canonical registration shape (agent_id, vendor, host, wake_method, wake_target, last_seen), the tooling shortcut, and the constraint vocabulary.
  • §6 Messaging — filename format, sender flow (hand-protocol + reference CLI), recipient flow, recommended frontmatter.
  • §7 Coordination defaults — direct addressing only (§7.1); the inbox-only authority rule + protocol-overhead pre-authorization carve-out (§7.2); self-description (§7.3); re-negotiation (§7.4); pool-scoped identity (§7.5); cross-pool bridge / proxy pattern (§7.6).
  • §8 Tmux wake adapter — the v0.1 reference adapter and the wake-target grammar.
  • §9 Livenesslast_seen semantics, manual vs. automated checking, when the watchdog matters.
  • §10 Watchdog — registration conventions (§10.1), status semantics (§10.2 / §10.3), the watchdog algorithm (§10.4), cooperative waking (§10.5), poking (§10.6), logging (§10.7), what's NOT in v1 (§10.8).
  • §11 Protocol correction (best effort) — what triggers enforcement (§11.1), the quarantine + notify action (§11.2), corrective message format (§11.3), sender inference (§11.4), no-refusal posture (§11.5), tooling note (§11.6).
  • §12 Non-goals (v1) — the things v1 deliberately does not address.
  • §13 v2 deferred items — features named so they don't get implemented speculatively.
  • §14 Vendor implementations — the convention is portable; multiple vendor dotdirs can coexist.

Reading the spec

Open AGENTCHUTE.md on GitHub for the full text with anchor links and code highlighting. Or grab it locally:

curl -fsSL https://raw.githubusercontent.com/agentchute/agentchute/main/AGENTCHUTE.md -O

If you're implementing agentchute in another language or with a non-filesystem inbox transport, the protocol primitives in §1 are the contract. The filesystem sections (§3–§6) are how the v0.1 reference CLI maps those primitives to disk.