Dependencies
What emet needs on the machine, and which command checks each item. Terms follow GLOSSARY.md. Back to the README.
Required
-
bun: only for source installs. The standalone binary needs no runtime.
-
rsyncandsha256sumorshasum: required byinstall.sh. -
git: required at runtime. Nearly every subcommand shells out to it. -
ghCLI, authenticated: required when the tracker isgithubor landing ispr. PRs always use it. Withtracker.kind: "local"andlanding.mode: "merge",ghis not required. -
The
mattpocock-skillsplugin (claude-plugins-officialmarketplace): the interview, spec and ticket phases of/emetcall skills that live there.Terminal window claude plugin marketplace add anthropics/claude-plugins-officialclaude plugin install mattpocock-skills@claude-plugins-official -
The
emet-workerandemet-revieweragents in~/.claude/agents/: installed byinstall.sh. Phase 6 and Phase 8 dispatch bysubagent_type, so either one missing breaks dispatch. See Models & effort. -
A Linear MCP server declared in
.mcp.json(or at user scope): only if the repo uses thelineartracker. emet verifies the declaration. Whether the connection is authenticated lives in Claude Code’s own credential store and cannot be checked from here. If a run fails to read tickets, restart Claude Code and approve the connection.
None of the above is ever installed or logged in on your behalf. What differs is who checks it and how hard.
What checks what
emet init |
emet doctor |
emet preflight |
|
|---|---|---|---|
| plugin missing/disabled | prints the install command | reports it (once, fleet-wide) | blocks dispatch |
emet-worker/emet-reviewer agent missing |
— | reports it (once, fleet-wide) | blocks dispatch |
gh missing/unauthenticated (tracker: github) |
prints what to run | reports it | blocks dispatch |
Linear server undeclared (tracker: linear) |
prints a note | reports it | blocks dispatch |
claude not on PATH, or a probe timing out |
prints a note | reports it | warns, never blocks: this is “couldn’t check”, not “verified broken” |
a flag emet relies on missing from --help |
— | reports it | — |
Flag checks
emet doctor checks the flags themselves, not only that the binaries exist. It reads --help for gh issue view and gh repo view (--json), gh issue edit (--add-label, --remove-label), claude (--bg) and claude agents (--json), and reports any flag a newer or older CLI no longer documents. A renamed flag would otherwise fail a wave midway.
Timeouts and skipping a block
Every probe is capped at 5s so a stalled gh auth status (no network) cannot hang a wave. If a preflight block is itself wrong for your environment, EMET_SKIP_DEPENDENCY_CHECKS=1 emet preflight downgrades it to a warning for that one run. Set it in your own shell, not in anything the /emet coordinator runs unattended. See Environment variables.
Repo-owned binaries
A repo’s preflight.requiredCommands (in emet.config.json) is a separate, repo-owned list of binaries that emet preflight and emet doctor require on PATH. It is useful for rg and sg, which the worker prompts offer as faster alternatives to reading a file whole. gh does not need to be listed there; the check above already covers it. See preflight.
For failures and fixes, see troubleshooting.