Todo Pilot
Plan, track, and ship your work without leaving the editor.
Priorities, groups, code TODO scanning, and Copilot integration — all
committed alongside your repo so the whole team stays in sync.
A VS Code extension for managing tasks directly in your editor — with priority tracking, team collaboration, code scanning, and GitHub Copilot integration.
Features
Tasks Panel
Manage your personal todo list from the Todo Pilot activity bar.
- Add tasks with P1 / P2 / P3 priority and optional group assignment
- Edit tasks — update title, priority, group, and markdown notes
- Mark done / unmark done — done items are tracked separately and can be restored
- Delete tasks individually
- Drag and drop to reorder tasks within a section
- Source file link — optionally attach a file + line number to a task; click to jump directly to it
Priority Levels
| Priority |
Label |
Meaning |
| P1 |
🔴 High |
Urgent / critical — needs immediate attention |
| P2 |
🟠 Medium |
Important — should be done soon |
| P3 |
🔵 Low |
Nice to have — no immediate urgency |
Grouping Modes
Toggle between two views using the toolbar button:
| Mode |
Description |
| By Priority |
Sections: P1 · High, P2 · Medium, P3 · Low, Done |
| By Group |
User-defined group sections (e.g. Backend, Frontend) |
Groups
- Add / Rename / Delete groups
- Move tasks between groups
- Clear all items in a group at once
Per-User Collaboration
When multiple teammates commit todo_pilot/todo-pilot.*.json files, each person's list appears as a separate collapsible section in the Tasks panel:
- You — your own tasks (fully editable)
- Collaborator sections — read-only view of teammates' tasks, identified by their git identity
- Tasks cannot be dragged into a collaborator's section
Each user's data is stored in a separate file: todo_pilot/todo-pilot.<identity>.json
Code TODOs Panel
A second panel — Code TODOs — scans your workspace for comment tags and displays them in a tree view.
- Scans for
TODO, FIXME, HACK, NOTE, BUG (configurable)
- Grouped by file, then by tag type within each file
- Includes a Tag Stats section with item counts by tag (e.g. TODO/FIXME/BUG)
- Click any item to open the file at the exact line
- Promote to task — right-click any scanned item and select Add to My Tasks to convert it into a tracked todo with a chosen priority and group
- Auto-refreshes on save (300 ms debounce) and on configuration changes
- Save-triggered scanning is incremental (rescans only the saved file)
- Workspace scans use bounded concurrency for better responsiveness in large repos
Scan Targets
By default the Code TODO scanner walks the entire workspace (minus excludes). For very large repos — or when you only care about a few subprojects — switch to Targets mode and list the specific files or folders you want scanned.
- A Scan Targets section appears at the top of the Code TODOs panel showing the current scope (
workspace or targets · N).
- Use the filter icon in the panel toolbar to toggle between Workspace and Targets mode, or the + icon to add files/folders via a picker.
- In the file Explorer, right-click any file or folder → Add to Todo Pilot Scan Targets.
- Right-click an entry in the Scan Targets list to remove it; right-click the Scan Targets header in targets mode to clear them all.
- In Targets mode the scanner only walks the listed paths, save-triggered incremental scans ignore files outside scope, and editor highlights only appear for in-scope files. Promoted tasks are unaffected — they remain in your task list regardless of the active scope.
- Scan targets are stored per user (alongside your tasks) and never shared with collaborators.
- The status bar appends a filter icon and target count when Targets mode is on.
Editor Highlighting
Scanned tags are highlighted directly in the active editor:
| Tag |
Color |
TODO |
Blue underline |
FIXME |
Red underline |
HACK |
Orange underline |
NOTE |
Green underline |
BUG |
Dark red underline |
Highlights also appear in the overview ruler. Can be disabled via settings.
Export to Markdown
Export your full task list (including collaborator items if present) to a formatted .md file, grouped by your current grouping mode.
Status Bar
A status bar item shows your open task counts — P1 · P2 · P3. It turns amber when you have any P1 tasks. When the Code TODO scanner is in Targets mode, a filter icon and the number of configured targets are appended.
GitHub Copilot Integration
Use Copilot to manage tasks hands-free — both through the chat participant and via agent-mode language model tools.
Chat participant — mention @todopilot in Copilot Chat:
@todopilot /add "Fix login timeout bug" P1 Backend
@todopilot /list
@todopilot /list P1
@todopilot /list open
@todopilot /done "login timeout"
@todopilot /delete "login timeout"
@todopilot /update "login timeout" P2 to Frontend as "Fix session expiry"
@todopilot /export
Slash commands:
| Command |
Description |
/add "Title" P1\|P2\|P3 [Group] |
Add a new task |
/list [P1\|P2\|P3\|open\|done] |
Show all tasks, optionally filtered by priority or status |
/done "partial title" |
Mark a task as done |
/delete "partial title" |
Delete a task |
/update "title" [P1\|P2\|P3] [to "group"] [as "new title"] |
Edit, move, or reprioritize a task |
/export |
Preview todos as markdown |
If a title query matches multiple tasks, Todo Pilot asks you to be more specific instead of changing the wrong task.
Language model tools — available in agent mode; Copilot calls these automatically when you describe tasks in chat:
| Tool reference |
What it does |
#addTodo |
Add a new task (P1 = High, P2 = Medium, P3 = Low) |
#listTodos |
List tasks — filterable by priority or group; returns title, priority, done status, group, and notes |
#markTodoDone |
Mark an open task as done |
#reopenTodo |
Reopen a completed task, restoring its previous priority |
#deleteTodo |
Permanently delete a task |
#updateTodo |
Edit title, priority, group, or notes |
Pricing
Todo Pilot is free for personal use with optional Pro and Team upgrades for power users and small teams. All plans run fully offline — your data stays in your repo.
| Capability |
Free |
Pro · $50/year |
Team · $100/year (3 seats) |
| Active tasks |
50 |
Unlimited |
Unlimited |
| Custom groups |
2 |
Unlimited |
Unlimited |
| Priorities (P1 / P2 / P3) + Done |
✓ |
✓ |
✓ |
| Per-user collaborator view (read-only) |
✓ |
✓ |
✓ |
| Code TODO scanning (TODO / FIXME / HACK) |
✓ |
✓ |
✓ |
Custom scan tags (e.g. NOTE, XXX, @todo) |
— |
✓ |
✓ |
| Scan targets (scoped folder/file scanning) |
— |
✓ |
✓ |
| Promote scan hits → tasks in bulk |
— |
✓ |
✓ |
| Copilot agent tools (auto add / list / update / done / delete) |
— |
✓ |
✓ |
Copilot chat participant (/add, /list, /done) |
✓ * |
✓ |
✓ |
| Markdown export |
Basic |
Custom templates |
Custom templates |
| Drag & drop reordering |
✓ |
✓ |
✓ |
| Status bar widgets |
✓ |
✓ |
✓ |
| Shared workspace presets (planned) |
— |
— |
✓ |
| Audit log of teammate changes (planned) |
— |
— |
✓ |
| Priority email support |
— |
✓ |
✓ |
| License keys |
— |
1 machine |
3 machines |
* Free plan respects the 50 active task cap when adding via Copilot chat.
How billing works
Your license key never expires. Pay $50 (Pro) or $100 (Team) once and every Todo Pilot version released during the next 12 months is yours to use — forever, on the machines covered by your plan. Renew the following year to keep getting new features and updates. If you don't renew, your existing version keeps working; you simply stop receiving updates.
No telemetry, no online check-ins, no auto-deactivation. Cancel any time without losing access to what you've already paid for.
Trial
Start a 7-day Pro trial from the command palette: Todo Pilot: Start 7-day Pro Trial. No card required. Trials are single-use per machine.
Upgrading from Free to Pro
- Run
Todo Pilot: View Plan (or click the status bar badge).
- Choose Buy Pro (or Buy Team) — this opens the checkout page in your browser.
- After payment you'll receive a license key by email. It looks like
TP-PRO-XXXXX-XXXXX-XXXXX.
- Back in VS Code, run
Todo Pilot: Enter License Key… and paste the key. Pro features unlock immediately.
The checkout URL can be customised with the todoPilot.license.purchaseUrlPro / purchaseUrlTeam settings if you re-distribute Todo Pilot internally with your own billing system.
Activating a license
Run Todo Pilot: Enter License Key… and paste the key you received after purchase. Keys look like TP-PRO-XXXXX-XXXXX-XXXXX. Activation is fully offline — no network call is made, no telemetry is collected.
Moving to a new machine
Run Todo Pilot: View Plan → Deactivate License on the old machine, then run Todo Pilot: Enter License Key… on the new one. The Pro tier covers 1 machine; Team covers 3.
Manage your plan
Todo Pilot: View Plan (also available from the status bar badge) shows your current entitlement, trial days remaining, and upgrade options.
Buy Pro
Checkout link coming soon. In the meantime, contact ritz.kooverjey@gmail.com for a license key.
Buy Team
Checkout link coming soon. The Team plan covers up to 3 seats at a flat $100/year. Contact ritz.kooverjey@gmail.com to arrange purchase.
Usage
Adding a Task
- Click the + (Add Item) button in the Tasks panel toolbar, or right-click a group section and choose Add Item.
- Enter a title, choose a priority, and optionally pick a group.
- Open the Code TODOs panel.
- Right-click any scanned comment → Add to My Tasks.
- Choose a priority and group — the task is added with the tag text as the title and the source file/line linked.
Reordering Tasks
Drag and drop tasks within a priority or group section to set a custom sort order.
Exporting
Click the Export button in the Tasks toolbar and choose a save location. The file is grouped by your active view mode.
Configuration
All settings (click to expand)
All settings are under todoPilot.scan.* in VS Code settings:
| Setting |
Default |
Description |
todoPilot.scan.tags |
["TODO","FIXME","HACK","NOTE","BUG"] |
Tags to scan for |
todoPilot.scan.excludePatterns |
["**/node_modules/**", "**/.git/**", "**/out/**", "**/dist/**", "**/build/**"] |
Glob patterns to exclude from scanning |
todoPilot.scan.enableHighlight |
true |
Highlight tags in the active editor |
todoPilot.scan.maxFiles |
5000 |
Maximum number of files to scan. Increase for large monorepos; tighten excludePatterns first if scans are slow |
todoPilot.scan.maxFileBytes |
1048576 |
Maximum file size (bytes) to scan. Larger files are skipped to keep scans responsive |
todoPilot.scan.autoScanOnSave |
true |
Rescan a file automatically when it is saved. Disable to scan only via the Refresh Code TODOs command |
todoPilot.scan.saveDebounceMs |
300 |
Delay (ms) between saving a file and rescanning it. Increase to reduce CPU on rapid saves |
todoPilot.scan.intervalMinutes |
0 |
Periodic full workspace rescan, every N minutes. 0 disables periodic scanning |
todoPilot.statusBar.showP3 |
false |
Show the P3 count in the status bar |
todoPilot.statusBar.p1ErrorThreshold |
10 |
Switch the tasks status bar item to an error background once you reach this many open P1 tasks |
Data Storage
How task data is persisted (click to expand)
Task data is saved to your workspace's todo_pilot/ folder:
todo_pilot/
todo-pilot.<git-email-or-username>.json
Commit these files to share your tasks with your team. Each collaborator's file is kept separate so there are no merge conflicts.
If you already have legacy files under .vscode/, Todo Pilot will automatically migrate your own store file to todo_pilot/ on first read.
On startup, Todo Pilot validates store integrity and normalizes invalid entries (for example, orphaned group references are moved to ungrouped). If a store file is corrupted, Todo Pilot creates a backup file with a .corrupt-<timestamp> suffix.
Workspace Scope
Todo Pilot currently operates on a single workspace folder. In multi-root workspaces, it uses the first folder in the workspace.
Commands
All commands are available via the Command Palette (Cmd+Shift+P / Ctrl+Shift+P) under the Todo Pilot category.
| Command |
Description |
| Todo Pilot: Add Item |
Add a new task |
| Todo Pilot: Edit Item |
Edit the selected task |
| Todo Pilot: Set Priority |
Change task priority |
| Todo Pilot: Mark Done |
Mark task as completed |
| Todo Pilot: Reopen Task |
Restore a completed task |
| Todo Pilot: Delete Item |
Delete the selected task |
| Todo Pilot: Move to Group |
Move task to a different group |
| Todo Pilot: Add Group |
Create a new group |
| Todo Pilot: Rename Group |
Rename an existing group |
| Todo Pilot: Delete Group |
Delete a group and move its tasks to Ungrouped |
| Todo Pilot: Clear All Items |
Remove all tasks from a group |
| Todo Pilot: Group by Priority / Group |
Switch between By Priority and By Group |
| Todo Pilot: Export to Markdown |
Export tasks to a .md file |
| Todo Pilot: Refresh |
Manually refresh the Tasks panel |
| Todo Pilot: Refresh Code TODOs |
Manually re-scan the workspace |
| Todo Pilot: Open Todo Pilot |
Focus the Todo Pilot panel |