I make products, and these days I make them alongside a lot of AI agents. They're quick to open issues and slow to notice the issue already exists.
emBEADings is the tool I built to keep my own Beads tracker honest. It reads the issues, finds the ones that belong together, and leaves every decision to you. It never changes your tracker.
It's free, it's open source, and it's early. If you use Beads, point it at your tracker and tell me what it gets wrong.
Beads finds exact copies with bd duplicates and similar wording with bd find-duplicates. emBEADings adds issues that mean the same thing in different words, leaves out pairs that are already linked, and ranks the rest: run embead triage, or embead neighbors ISSUE --orphans-only for one issue. Read more
Point emBEADings at one Linear team with a personal API key: embead --source linear --linear-team ENG triage. It lists duplicate and related issues and never writes to Linear. Read more
embead superseded --since 2026-10-01 reads your merged commits from git, lists open issues a change names by ID, and ranks the rest against each commit, so you can close what is already done. Read more
Agents open issues quickly and rarely search first. Running embead match --title before filing, or embead triage after a busy day, catches the copies. Instructions for your agents
No. It only reads, through bd in read-only mode or the Linear API, and embeds issue text with a small model on your own machine.
It is an independent open-source tool, listed in the Beads community tools. See the list
The page is a scroll story told with beads. Each bead is an invented issue in a Beads tracker: its colour is its topic, its
shape is decorative, and its material is its status (clear glass for open, lit from inside for in progress, matte for
blocked, frosted for closed). It opens with a pile of beads resting on the word emBEADings. Scrolling sorts the beads onto
one cord per topic ("Sorted"), the way emBEADings groups similar issues. Three beads hang off their cord with no link; a pink
thread ties each one to the issue it matches, 0.91, 0.87 and 0.84 alike ("Tied"), which is what
embead neighbors --orphans-only reports. Then merged pull request #212 arrives and carries off the three issues
it already did, while an issue labelled owner-run stays put ("Shipped"), which is what embead superseded reports.
Below the story is a table of beads and a deck of merged pull requests that visitors can drag onto it; each card strings up
the issues it finished. emBEADings is free and open source (MIT): pipx install embeadings,
https://github.com/CantrellJax/embeadings. Made by Jackson Cantrell (https://jacksoncantrell.com).