By bestdan
Capture follow-up work with full context during development, then process it automatically. Creates structured todo files in any repo and executes them via Claude Code.
Capture follow-up work as a structured todo, then deliver it to the configured destination (repo PR, GitHub issue, or Jira)
Creates a GitHub Issue via the `gh` CLI. Runs in the **foreground in the current session** — one API call, no git plumbing, no remote/subagent/local cascade.
Creates a Jira work item via the Atlassian MCP server (`mcp__claude_ai_Atlassian__*`). Foreground call, no git plumbing, no CLI install. The new ticket is placed under a selected epic.
The default. Creates the todo file on a branch from main and opens a PR — without touching local state. Lands on main (via auto-merge) decoupled from the feature branch, where `/process-todo` can later pick it up.
List all todo files in the current repo with their status and priority
Runs pre-commands
Contains inline bash commands via ! syntax
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Capture follow-up work with full context during development, then process it automatically via remote Claude sessions.
During feature work you notice incidental things: stale flags, dead code, missing tests. Today this either scope-creeps your PR or gets lost. Todo Loop captures that context at discovery time and dispatches remote agents to process it.
claude plugin marketplace add bestdan/todo-plugin
claude plugin install todo@todo-plugin
Or from a local clone:
git clone https://github.com/bestdan/todo-plugin.git
claude plugin install todo --plugin-dir ./todo-plugin
Claude automatically recognizes when you mention follow-up work, deferred cleanup, or TODO items during a session and offers to capture them as structured todo files.
| Command | Description |
|---|---|
/add-todo | Capture follow-up work — delivers it via the configured handler |
/process-todo | Process unclaimed todos — dispatches remote agents to do the work |
/list-todos | Show all todos with status, priority, and tags |
/todo-config | Configure where /add-todo delivers todos (repo PR, GitHub, Jira) |
/add-todoWhile on a feature branch, run /add-todo Remove the stale foobar alias. The plugin:
Capture is destination-agnostic — where the todo lands is decided by the handler (see Destinations). With no config, the default repo-pr handler reproduces the original behavior below.
/add-todo delivers each todo via a handler named in a repo-committed config file, dev_docs/todos/.todo-config.yml. Run /todo-config to set it up. No config → repo-pr.
| Handler | Lands as | Prerequisites |
|---|---|---|
repo-pr | Markdown file via a todo-add PR (default) | gh auth (falls back to local staging) |
gh-issue | A GitHub Issue | gh auth |
jira | A Jira work item under an epic | Atlassian MCP connected in Claude Code |
# dev_docs/todos/.todo-config.yml — pick one handler
handler: gh-issue
gh-issue:
repo: owner/name # optional; defaults to current repo
labels: [follow-up] # optional
assignees: [] # optional
handler: jira
jira:
site: mycompany.atlassian.net
project: PLAT # required
issue_type: Task # default Task
default_epic: PLAT-100 # optional; skips the epic prompt
labels: []
The file is committed and shared by the team, so everyone in the repo files to the same place. Unknown handler value → /add-todo stops and points you to /todo-config (no silent fallback). /process-todo and /list-todos operate only on file-based repo-pr todos; with the external handlers, tracking lives in GitHub or Jira.
repo-pr handler (default)Dispatches a remote Claude session (claude --remote) that:
todo/add/<slug> from maindev_docs/todos/<slug>.mdtodo-addZero local impact. No files staged, no branches touched. You keep working. The todo lands on main via auto-merge, completely decoupled from your feature PR.
Fallback modes (repo-pr only): --remote (cloud VM) → --subagent (creates PR via GitHub API without touching local git) → --local (stages into current branch). Force a mode with the corresponding flag. The gh-issue and jira handlers are single foreground calls and don't use this cascade.
A handler is a markdown file at commands/handlers/<name>.md (loaded lazily by /add-todo after handler resolution) plus an entry in the valid-handler list in commands/add-todo.md step 6. The deferred MCP-backed destinations (Linear, Asana, Todoist, Notion) follow one common pattern: a remote Streamable-HTTP MCP server added with claude mcp add --transport http <name> <url> then authenticated with /mcp. The handler should look up the create-tool at runtime (tools/list) and match by name/description rather than hardcoding it, since vendors rename tools. Verified endpoints for when these are built:
npx claudepluginhub bestdan/todo-plugin --plugin todoClaude Code skills for general engineering workflows: collaborative PR review, durable multi-step planning, auditable quantitative analysis pipelines with independent fact-checking, and a repo-native task loop for capturing and processing follow-up work.
Personal finance projection engine — Monte Carlo projections, tax calculations, retirement planning, Social Security analysis, and interactive dashboards. Powered by 60+ MCP tools.
Commands for automating repetitive tasks and workflows
Personal task tracker — invisible kanban that tracks your work automatically
Decompose complex tasks into detailed, actionable todos with rich descriptions. Each todo is specific, achievable, and small enough to execute independently.
Reliable automation, in-depth debugging, and performance analysis in Chrome using Chrome DevTools and Puppeteer
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses