Getting started
Install emet, check that it works and run it for the first time.
Requirements
Claude Code, git, gh (authenticated) and the mattpocock-skills plugin, on Linux or macOS. Bun is needed only for a source install; native Windows is unsupported (use WSL). The full list, with what checks each item, is in the dependencies reference.
Install
There are two install paths.
Plugin (no Bun needed). Add this repo as a marketplace and install the emet plugin; it brings /emet:run, the agents, the guard hooks and an emet shim that downloads a checksum-verified standalone binary on first use.
claude plugin marketplace add andryorelabs/emetclaude plugin install emet@emet-marketplaceinstall.sh (works with or without Bun):
git clone git@github.com:andryorelabs/emet.gitcd emet./install.shWith bun on PATH it copies the CLI source to ~/.claude/emet and an emet wrapper to ~/.local/bin/emet. Without bun it installs the standalone-binary shim instead (~/.local/bin/emet, linked to ~/.claude/emet/bin/emet), which downloads and checksum-verifies the binary on first run (needs curl). Either way the commands land in ~/.claude/commands/emet/ and the agents in ~/.claude/agents/; plugin placeholders in the prompts are rewritten to plain ~/.claude paths. Re-running it is safe, and a file you edited is kept with the new version written beside it as <file>.new.
Both installs give you three slash commands: /emet:run, /emet:init and /emet:doctor. The emet command in a plain terminal works only after install.sh; otherwise use the slash commands, or ! emet <subcommand> inside a Claude Code session. The agent names differ: emet:emet-worker in the plugin, emet-worker standalone.
Recommended order, in each repo: run /setup-matt-pocock-skills first, then emet init.
Verify it worked with /emet:doctor inside Claude Code, or emet doctor . in a terminal after install.sh (selftest needs a source install).
If doctor or preflight reports a problem, see troubleshooting. Nothing is ever installed or logged in on your behalf; see the dependencies reference for who checks what and for EMET_SKIP_DEPENDENCY_CHECKS.
First run
In any git repo:
emet init # autodetects package manager, trunk branch, tracker kindemet preflight # confirms the repo is dispatch-readyInside a session, /emet:init does the same as emet init. Then, inside Claude Code:
/emet:run <describe the feature> # interview → wave 1; later waves via --dispatch/autoChain/emet:run --draft <describe the feature> # stop after tickets are created/emet:run --dispatch <spec-id> # dispatch a --draft'd spec lateremet init leaves a TODO(emet): marker in the generated docs/agents/*.md files for anything it can’t infer on its own (a shared test-database lock, schema ownership, etc.); fill those in. emet preflight refuses to dispatch while one remains.
Next
- Trackers and landing: GitHub, Linear or local tickets, and how a wave lands.
- Models and effort: which model and effort each role uses.
- Fleet check: audit several repos at once.
- Configuration reference and CLI reference: every key and subcommand.