Breadcrumb


Agents leave notes for other agents.
When an agent fixes a tricky bug or writes code that looks wrong but is intentional, the next agent has no idea. It sees "dead code" and helpfully cleans it up. Or it sees a weird regex and "simplifies" it, breaking a unicode edge case that took hours to debug.
Breadcrumb fixes this. Agents leave notes about files, and future agents see them automatically.
breadcrumb add ./src/parser.ts "Regex handles unicode edge cases, don't simplify"
📝 BREADCRUMB: Regex handles unicode edge cases, don't simplify
Installation
npm install -g breadcrumb-cli
Or with other package managers:
pnpm add -g breadcrumb-cli
yarn global add breadcrumb-cli
bun add -g breadcrumb-cli
Quick Start
breadcrumb init
breadcrumb add ./src/auth.ts "OAuth flow depends on specific token format"
breadcrumb check ./src/auth.ts
breadcrumb ls
breadcrumb rm ./src/auth.ts
Comments are passive — they sit in a file hoping to be noticed. Breadcrumbs are injected directly into the agent's context the moment it reads the file. They can't be skimmed over or missed.
Also:
- Comments aren't discoverable —
breadcrumb ls shows all notes in a repo
- Comments can't span files — One breadcrumb can cover an entire directory
When to Leave Notes
- Code that looks like it could be simplified but shouldn't be
- Bug fixes for edge cases that aren't obvious
- Intentional workarounds
- Security-critical patterns (SQL injection prevention, etc.)
- Performance tuning that looks "overengineered"
Example: Protecting Critical Code
breadcrumb add ./src/utils/money.js "All money as integers (cents) to avoid floating point errors. Ceiling for tax is legally required."
breadcrumb add ./src/api/client.js "Retry delays tuned for rate limiting - 100ms/500ms/2s/5s matches API provider's backoff recommendations"
breadcrumb add ./src/db/query.js "CRITICAL: Parameterized queries prevent SQL injection. Never use string interpolation for values."
Now when an agent tries to "simplify" this code:
| "Use floating point for money" | ❌ Refuses - cites precision errors |
| "Simplify retry to fixed 1s delay" | ⚠️ Warns about rate limit tuning |
| "Use template literals for SQL" | ❌ Hard refuses - SQL injection risk |
| "Do a full code review and simplify" | âś… Reports all code is intentionally designed |


Commands
init | Create .breadcrumbs.json in current repo |
add <path> <message> | Add a note (warns about overlaps) |
edit <path-or-id> | Edit a note in place |
rm <path> | Remove a note |
check <path> | See notes on a file |
search <query> | Find notes by content |
coverage [path] | Show breadcrumb coverage stats |
ls | List all notes |
status | Quick overview (counts) |
prune | Remove expired notes |
Add Options
breadcrumb add <path> <message> [options]
-s, --severity <level>
-e, --expires <date>
--ttl <duration>
--no-overlap-check
Edit Options
breadcrumb edit <path-or-id> [options]
-m, --message <text>
-a, --append <text>
-s, --severity <level>
-e, --expires <date>
--ttl <duration>
--clear-expiration
Search Options
breadcrumb search <query> [options]
-r, --regex
-c, --case-sensitive
-i, --ignore-case
-p, --path <segment>
-s, --severity <level>
Coverage Options
breadcrumb coverage [path] [options]
-g, --glob <pattern>
--show-covered
--show-uncovered
-l, --limit <n>
Claude Code Plugin
For Claude Code users, the plugin auto-shows notes when reading files:
/plugin marketplace add tylergibbs1/breadcrumb
/plugin install breadcrumb@breadcrumb-marketplace
The plugin:
- Auto-installs the CLI if not present
- Auto-initializes
.breadcrumbs.json on session start
- Injects notes into Claude's context when reading files
- Claude acknowledges notes when they conflict with the current task
Vendor Agnostic
Breadcrumb works with any AI agent system that can run shell commands.
CLI (breadcrumb) | Node.js 18+ (or Bun) |
.breadcrumbs.json | Plain JSON - works everywhere |
| Claude Code plugin | Optional integration |
For other tools (Cursor, Windsurf, Aider), add to your system prompt or equivalent:
- Check for notes before editing:
breadcrumb check <file>
- Leave notes after non-obvious changes:
breadcrumb add <file> "message"
Storage
Notes are stored in .breadcrumbs.json at repo root:
{
"version": 2,
"breadcrumbs": [
{
"id": "b_1a2b3c",
"path": "src/utils/money.js",
"pattern_type": "exact",
"message": "All money as integers (cents) to avoid floating point errors",
"severity": "info",
"added_by": { "agent_id": "agent" },
"added_at": "2026-01-10T14:30:00Z"
}
]
}
License
MIT