Skip to content

What is Echo?

Echo is a Claude Code plugin that runs an autonomous GitHub-backlog dispatcher loop. You keep a GitHub Project board; Echo sweeps it, finds items in your Ready column, and drives each one all the way to a shipped change — without you babysitting the process.

One always-on hub session sweeps every registered project on an interval. The actual work happens in detached workers — independent claude processes, each running in its own git worktree, one per backlog item. A single dispatch does this:

  1. Find Ready work. The sweep checks worker-slot capacity and the Ready column, and only continues when there’s dispatchable work and a free slot.
  2. Pre-validate. A cheap model screens the selected item — is it well-formed and unblocked? — before any worker is spawned.
  3. Spawn a worker. The item flips Ready → Planning and a detached worker starts. It runs a full pipeline: brainstorm the spec, write a plan (Planning → In progress), implement, then run a multi-agent adversarial code review across four lenses (correctness, security, reuse/simplification, test coverage).
  4. Open a PR, don’t merge. The worker opens the PR, posts its advisory review findings, labels it echo:merge-ready, and stops with the item in AI reviewing. Workers have no merge command at all.
  5. Gated merge. A trusted dispatcher-side step re-runs the deterministic gates (cross-repo sentinel, auth/tenant-isolation, test-coverage) and either squash-merges the PR or holds it for a human.
  6. Deploy-watch → Done. After a merge, Echo watches the deploy (per your project’s configured verification) and reconciles the item to Done.

Anything that needs a person — a blocked item, a failed gate, a security-sensitive diff — is escalated to Discord, where a quote-reply re-queues the item with your guidance. Everything Echo does is also written to an Obsidian-native vault for a browsable record.

Echo ships as a plugin with sensible defaults, but every project it manages is described by its own .claude/echo/config.json — board coordinates, status-column names, priorities, worker caps and model tiers, deploy verification, gated paths, Discord channel, and more. The plugin generalizes one team’s backlog loop into something any repo can adopt through an onboarding interview (/echo:setup).

Echo is a good fit when:

  • You track work as issues on a GitHub Projects v2 board and can express “ready to build” as a status column.
  • The work is well-scoped, mergeable units — a bug fix, a small feature, a refactor — that a worker can take from spec to PR on its own.
  • You want a hands-off loop but still want a human gate on merges (the default) and clear escalation when something needs judgement.
  • One-off tasks. Echo is a recurring loop over a board, not a task runner.
  • Exploratory or ill-defined work that can’t be pinned to a concrete backlog item and a definition of “done.”
  • Repos without a GitHub Project board, or where you can’t grant the gh CLI the project scope Echo needs to read and write it.

Set up a project

Run the /echo:setup interview to onboard your first repo. Run setup →