# Etiquette — agent onboarding (llms.txt) Local-first governance CLI for agent-assisted engineering: seats, evidence, receipts, promotion gates. Your repo is the ledger; nothing leaves the machine. Requires: bun >= 1.3, git >= 2.40. ## Install (exact, tested — do not improvise flags) curl -fsSLO https://etiquekit.com/install.sh sh install.sh --version 1.0.9 \ --public-key-url https://etiquekit.com/releases/etiquette-release-signing.pub.pem \ --public-key-sha256 917fbced1d6a82897ec3441a1d12947803ca4d42a6bc63d3412dee8bf8c3ce31 Installs to ~/.etiquette. Then: export PATH="$HOME/.etiquette/bin:$PATH" The installer verifies the SHA256SUMS signature against the pinned key before installing anything. Release files live under /releases/1.0.9/ (versioned). ## IMPORTANT for agents: `etiquette setup` is a HUMAN step `etiquette setup --target claude-code|codex|gemini` writes agent-CLI config. Security classifiers (correctly) deny agents running it — it is self-modification. Ask your human to run it in their own terminal, or skip it: the entire governance loop below works WITHOUT setup. ## Provision a workspace (agent-safe, no setup needed) etiquette bootstrap local --project . # seats + starter tasks + runbooks etiquette doctor --project . # must pass before work etiquette status --project . # orient bootstrap prints a lead_start block with your exact next commands — follow it. ## The working loop (per task) etiquette join --project . --seat etiquette pickup --project . --seat --task --expect-project-id # ... do the work inside the task envelope's allowed_writes ... etiquette post --role implementation-return --lane --from --to --emit --project . etiquette return check --task --seat --project . # want: return_check: pass Task envelopes: docs/work/tasks/.yaml (allowed_writes, validation, stop_conditions — obey them; the envelope is the contract). Observe: etiquette console board --project . --seat --text etiquette bus view --project . --format text ## Authority model (read once, saves you grief) Nothing in this CLI grants authority: can_authorize/can_merge/can_close are always false for seats. Receipts prove work; humans gate promotion. If a command errors with a stack trace, read the first `error:` line — it names the missing artifact (enrollment, envelope, runbook). ## npm (names reserved; 1.x will publish here) npm install -g @etiquekit/etq ## Docs https://etiquekit.com — landing + manual verification instructions