🦤 DodoToGo
DodoToGo is an interactive, day-drillable visual task board for GitHub Copilot and
VS Code. It combines natural-language task management with a visual weekly board,
persistent state, dependency tracking, and optional parallel-agent workflows.
Overview
- Manage a weekly todo board with natural-language requests in Copilot chat.
- Drill into Monday-Friday views, move work across the week, and track task status visually.
- Use the same board through the Copilot canvas surface or the companion VS Code webview panel.
Installation
Download dodotogo.vsix from the
latest GitHub release,
then install it with:
code --install-extension dodotogo.vsix
Copilot integration
DodoToGo registers the @todo, @dodo, and @togo chat participants and a local
MCP server that exposes the todo_* tools. Ask Copilot to create, update, list,
move, or complete tasks without leaving your current conversation.
Visual weekly board
Open DodoToGo from the Activity Bar or run
DodoToGo: Open Full Screen from the Command Palette. The sidebar and
full-screen views share the same task state.
Usage
Copilot chat
Interact with the board using natural language. DodoToGo maps requests to its
MCP tools and persists each validated change.
| Action |
Example |
| Create |
@todo Create a task for reviewing PR [#1234](https://github.com/ahsi-microsoft/Dodo-ToGo-V2/issues/1234) on Monday |
| Update |
@todo Mark the deployment task in progress |
| List |
@todo Show my tasks for this week |
| Move |
@todo Move the testing task to Thursday |
| Complete |
@todo Mark the release checklist completed |
Canvas interactions
- Toggle status directly from the task card.
- Drag to reorder tasks within a day.
- Drag a task onto another day to move it.
- Delete tasks from the board.
- Use Start to jump a task into
in-progress.
Day navigation
- Monday-Friday day selector
- Today button
- Previous/next week arrow buttons
Features
Status workflow
new → promised → planning → planned → in-progress → completed
Tasks waiting on dependencies or external work can be marked blocked.
Status color reference
| Status |
Midnight-Galaxy (dark) |
Daybreak (light) |
new |
#94a3b8 |
#64748b |
promised |
#a78bfa |
#7c3aed |
in-progress |
#60a5fa |
#2563eb |
completed |
#34d399 |
#059669 |
Feature summary
| Capability |
Notes |
| ADO work item sync |
Experimental, opt-in best-effort sync metadata is returned when a task is linked through adoWorkItemId. |
| Recurring tasks |
Weekly auto-clone on configured mon-fri recurrence days. |
| Weekly rollover |
Completed work is archived; incomplete work is quarantined into untriaged. |
| Weekly triage report |
Generates a weekly markdown report during rollover. |
| Persistent state |
Atomic JSON persistence with crash-safe write behavior. |
| Task cap |
Enforced 5,000-task maximum. |
State Persistence
- Primary state file:
<workspacePath>/todo-canvas/state.json
- Write strategy: write
state.json.tmp, then rename into place
- Recovery: invalid or corrupted state automatically falls back to a fresh empty state
The VS Code host uses a workspace-backed Todo Canvas storage root and falls back to COPILOT_HOME or ~/.copilot/todo-canvas when no workspace folder is open.
Cloud Sync (multi-machine via OneDrive)
Cloud Sync is opt-in. Enable dodoToGo.cloudSync.enabled in VS Code and either set dodoToGo.cloudSync.root to a OneDrive-synced folder or leave it blank to auto-detect Windows %OneDrive%. Advanced users can set DODOTOGO_HOME to the desired board root; that environment variable is the low-level override used by spawned tools.
DodoToGo uses a one-owner-machine model: a task owned by another machine is read-only until ownership is released or the lease expires. Tasks claimed by other machines are hidden from the board by default; use the 🖥️ toggle in the board header (it shows how many are hidden), or Alt+H to show or hide them. The preference is per-webview and is remembered across reloads. Ownership leases default to 48 hours; use the todo_claim_task MCP tool (with force: true when the owning machine is offline), todo_request_ownership to move ownership, or todo_unclaim_task when the owning machine voluntarily gives a task back.
Known limitations: OneDrive sync can take seconds to minutes, concurrency protection is best-effort while files are still syncing, and auto-detection is Windows-first.
Architecture
| Path |
Role |
index.html |
Self-contained board UI |
mcp/server.js |
Local MCP server providing the todo_* tools |
state-storage.js |
Scoped board reads and incremental persistence |
vscode/extension.js |
VS Code extension host |
package.json |
Marketplace extension manifest |
Development
- Clone the DodoToGo repository.
- Run tests from the repository root:
node --test src/tests/*.test.mjs
- Package from the repository root:
npm run package
- No external dependencies are required
- Implementation uses Node.js built-ins only
Configuration
- No configuration is required for local-only use
- The state file is created automatically on first use
- Theme is auto-detected from the OS color preference