Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>Handoff MCP DashboardNew to Visual Studio Code? Get it now.
Handoff MCP Dashboard

Handoff MCP Dashboard

alphaelements

|
15 installs
| (0) | Free
Visualize and manage handoff-mcp tasks, sessions, and metrics in VS Code. Task board, Kanban, Gantt chart, time tracking, effort budget, and AI session history — a project dashboard for AI coding agents.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Handoff

Visualize and manage handoff-mcp tasks, sessions, and metrics — right inside VS Code.

VS Code Marketplace Version Installs Rating

Dashboard

Features

Task Explorer — Tree view with status icons, priority badges, and milestone filtering. Click any task to open its detail panel with done-criteria checklist, schedule, and time tracking.

Dashboard — Project overview showing task counts by status, completion percentage, effort budget burn-down, Kanban board, work timeline, and recent activity feed.

Gantt Chart — Interactive timeline with month/day headers, drag-to-reschedule, milestone grouping, and auto-scroll to today.

Gantt Chart

Kanban Board — Drag-and-drop cards across status columns (todo / in_progress / review / done). Status changes write back to .handoff/ automatically.

Metrics Panel — Effort hours (estimated vs actual), velocity trends, session duration analytics, and filterable label/milestone breakdowns.

Metrics

Time Tracker — Start/stop timer linked to the active task. Idle detection pauses automatically. Accumulated time persists across VS Code restarts. AI agents can control the timer remotely via handoff-mcp — start, stop, pause, and resume from the coding session.

Session Browser — Browse AI session history with summaries, decisions, blockers, and file pointers from each handoff.

Effort Budget — Configure total project hours in config.toml. The dashboard shows remaining budget and burn rate.

Requirements Explorer — TreeView for browsing and managing requirements across documents. Inline operations: change dev_stage, create linked tasks, backfill stable IDs, group by category/priority/status, and filter by coverage gaps.

V-model Map — Visualize requirement-to-test traceability across V-model layers. Drill down from layer summaries to individual items. Includes trace matrix and table views showing the N×M requirement–test relationship.

Coverage Trend Chart — Track requirement coverage over time with a trend graph. See how implemented, tested, and not_started counts evolve across sessions.

Inspector — Context-sensitive detail panel driven by a selection model. Select a task, document, session, referral, or requirement anywhere in the UI and the Inspector shows its full detail with inline editing.

Document Viewer — View handoff documents with section outlines, verification state indicators, SubItem (requirement) UI, treemap visualization, and impact analysis. Parent/child/related document navigation.

Suspect / Stale Display — When a requirement's linked code changes, the item is flagged as suspect. Stale banners appear in the editor and explorer, with one-click navigation to the affected trace item.

Diagnostics UI — Structured warnings from handoff-mcp are displayed as health cards on the dashboard. Empty states show actionable WHY/HOW guidance instead of blank panels.

Diagram Rendering — Fenced plantuml and aelm code blocks in documents are rendered as inline SVG diagrams using configurable external renderers. Timeout and error fallback to source display.

Home Section — Landing view with project health summary, recent activity, and quick navigation to all panels.

Plan Section — Sidebar views for effort planning, milestone tracking, and project configuration.

Bottom Panel — Persistent footer showing the current in-progress task with timer, status, and quick actions.

Report System — Generate, browse, and approve verification, weekly, monthly, milestone, defect, and completion reports. Edit templates with live preview and export to HTML for external sharing. Full approval workflow (submit → approve / revision requested).

Verification Campaigns — Browse campaigns, record pass/fail/blocked/waived checks with structured evidence (path, type, caption). Progress tracking with auto-generated checklists.

Metrics Trend Charts — Snapshot-based trend visualization for effort hours and velocity over time.

Plan Document Explorer — Browse plan documents with requirement coverage indicators and one-click navigation to linked tasks.

Gantt Enhancements — Plan-scoped filtering, baseline comparison bars (scheduled vs. actual), and suspect-requirement highlighting on the timeline.

Setup

1. Install handoff-mcp (the MCP server)

This extension visualizes data created by handoff-mcp — an MCP server that gives AI coding agents persistent memory across sessions.

Option A — Claude Code Plugin (recommended)

# Install the binary
npm install -g handoff-mcp-server

# Add the marketplace and install (in Claude Code)
/plugin marketplace add alphaelements/handoff-mcp
/plugin install handoff-mcp@handoff-mcp-marketplace

This registers the MCP server and all skills (handoff, handoff-load, handoff-memory, handoff-refer, handoff-import) automatically — no manual setup needed.

Optional: memory auto-injection hooks

/plugin install handoff-mcp-hooks@handoff-mcp-marketplace
/plugin enable handoff-mcp-hooks

Injects relevant project memories on every prompt and file edit. Disable anytime with /plugin disable handoff-mcp-hooks.

Option B — Manual setup

npm install -g handoff-mcp-server
claude mcp add -s user handoff -- handoff-mcp

Optionally copy skill files for automatic session handling:

cp -r $(npm root -g)/handoff-mcp-server/skills/* ~/.claude/skills/

3. Add to your project's CLAUDE.md

Add the following to your project's CLAUDE.md so the agent uses handoff consistently across sessions:

## Session Handoff

This project uses handoff-mcp for session continuity.

- **Session start**: Call `handoff_load_context` to load previous session state.
  If not initialized, call `handoff_init` with the project name.
  If `session_guidance` is present, immediately call `handoff_save_context`
  with `session_status: "active"` to establish a persistent session before
  starting work.
- **Session end**: Call `handoff_save_context` with a summary, decisions, and blockers.
- **During work**: Use `handoff_update_task` to track progress.
  Mark tasks `in_progress` when starting, `done` when complete.

4. Initialize your project

In an AI coding session (e.g. Claude Code), ask the agent to initialize handoff:

> Initialize handoff for this project

This creates a .handoff/ directory in your project root with config.toml and empty tasks/ and sessions/ directories.

5. Install this extension

Search "Handoff" in the VS Code Marketplace, or run:

ext install alphaelements.handoff-vscode

6. Open your project

Open the folder containing .handoff/ in VS Code. The extension activates automatically:

  • Task Explorer appears in the sidebar
  • Dashboard is available via Ctrl+Shift+P / Cmd+Shift+P → Handoff: Open Dashboard
  • Status Bar shows task counts and active timer

Requirements

  • VS Code 1.90+
  • A project with a .handoff/ directory (created by handoff-mcp)

Try it without handoff-mcp

Clone this repo and open it in VS Code — it includes a .handoff/ directory with realistic demo data (42 tasks, sessions, milestones, and effort budget). No MCP server needed to explore the UI.

Commands

All commands are available via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P):

Command Description
Handoff: Open Dashboard Open the main dashboard panel
Handoff: Open Gantt Chart Open the Gantt chart
Handoff: Open Metrics Open the metrics panel
Handoff: Open Team Open the team panel
Handoff: Show Requirements Open the Requirements Explorer
Handoff: Open Task Detail Open a task in the Inspector
Handoff: Show Panel View Show the task explorer sidebar
Handoff: Refresh Re-scan .handoff/ for changes
Handoff: Create Task Open the create-task form in the Inspector
Handoff: Filter Tasks Set filter conditions
Handoff: Filter by Worktree Filter tasks by worktree assignment
Handoff: Sort Tasks By… Change task sort order
Handoff: Change Status… Change task status
Handoff: Change Priority… Change task priority
Handoff: Set Milestone Assign a milestone
Handoff: Edit Schedule Edit start date, due date, and estimates
Handoff: Add Dependency Add a task dependency
Handoff: Remove Dependency Remove a task dependency
Handoff: Toggle Done Criterion Check/uncheck a done criterion
Handoff: Set Display Order Set task display order
Handoff: Log Time Log hours to a task
Handoff: Claim Task Claim exclusive lock on a task
Handoff: Release Task Release task lock
Handoff: Pause Timer Pause the running timer
Handoff: Stop Timer Stop timer and save elapsed time
Handoff: Cancel Timer Discard timer without saving
Handoff: Timer Actions Quick pick for timer controls
Handoff: Set Referral Status Update a cross-project referral status
Handoff: Open Session Detail Open a session in the Inspector
Handoff: Open Referral Detail Open a referral in the Inspector
Handoff: Copy Session ID Copy the session ID to clipboard
Handoff: Switch Session Switch to a different active session
Handoff: Toggle Session Task Filter Filter tasks to those in the current session
Handoff: Fork Session Fork the current session
Handoff: Merge Sessions Merge sessions
Handoff: Open Timeline Open the timeline view
Handoff: Show Document Open a document in the viewer
Handoff: Open Item in Inspector Open any item in the Inspector
Handoff: Go to Trace Item Navigate to a trace item
Handoff: Edit Section Edit a document section
Handoff: Link Document to Tasks… Link/unlink documents and tasks
Handoff: Delete Document Delete a document
Handoff: Search Documents Search across documents
Handoff: Toggle Specs & Requirements Mode Switch between Document / Requirement / Layer view
Handoff: Group Requirements By… Pick grouping for Requirements Explorer
Handoff: Filter Requirements… Pick filter for Requirements Explorer
Handoff: Toggle Filter — No Tests Show only requirements without tests
Handoff: Toggle Filter — P0 Only Show only P0 priority requirements
Handoff: Advanced Filter Filter by priority × dev_stage × tests
Handoff: Set dev_stage Set requirement development stage
Handoff: Create Task for Requirement Create a task linked to a requirement
Handoff: Open Requirement in Document Navigate to the requirement in its document
Handoff: Open Impl Ref Open the implementation reference
Handoff: Open Test Ref Open the test reference
Handoff: Backfill Stable IDs Generate stable IDs for requirements

Configuration

Key settings under handoff.* in VS Code Settings:

Setting Default Description
handoff.locale "auto" UI display language (en or ja). auto = follow VS Code
handoff.scan.depth 5 Maximum directory depth to scan for .handoff/ directories
handoff.scan.excludePatterns ["node_modules",…] Directory names to exclude from .handoff/ scanning
handoff.statusBar.enabled true Show task summary in the status bar
handoff.statusBar.showHours true Show effort hours in the status bar
handoff.statusBar.showSession true Show active session status in the status bar
handoff.taskExplorer.groupByStatus true Group tasks by status in the explorer
handoff.taskExplorer.showDoneTasks true Show completed tasks in the explorer
handoff.taskExplorer.showSkippedTasks false Show skipped tasks in the explorer
handoff.taskExplorer.sortBy "order" Sort order: order, priority, updated, created, due
handoff.refreshDebounceMs 300 Debounce interval (ms) for auto-refresh
handoff.timeTracker.enabled true Enable automatic time tracking for in-progress tasks
handoff.timeTracker.autoStart true Auto-start timer when a task becomes in-progress
handoff.timeTracker.idleTimeoutMinutes 10 Minutes of inactivity before auto-pause
handoff.timeTracker.showInStatusBar true Show timer in the status bar
handoff.timeTracker.minLogMinutes 1 Minimum elapsed minutes to log (shorter durations are discarded)
handoff.renderers.plantuml.enabled true Render plantuml code blocks as diagrams
handoff.renderers.plantuml.command ["java","-jar",…] argv array for the PlantUML renderer process
handoff.renderers.plantuml.timeout 8000 PlantUML render timeout in milliseconds
handoff.renderers.aelm.enabled true Render aelm code blocks as diagrams
handoff.renderers.aelm.command ["aelm","render",…] argv array for the Aelm renderer process
handoff.renderers.aelm.timeout 8000 Aelm render timeout in milliseconds
handoff.docs.fadeVerifiedSections true Fade verified/skipped sections in document viewer
handoff.docs.fadeOpacity {…} Custom opacity values for faded sections by visual state
handoff.mcp.path "" Path to native handoff-mcp CLI binary (auto-detected on PATH if empty)
handoff.inspector.revealInSidebar true Reveal selected items in sidebar tree views alongside the Inspector

For the full list of settings plus config.toml reference, see Configuration.

Change history

Unreleased

0.15.0 — 2026-10-27

Added

  • Milestone TreeView: dedicated Activity Bar panel listing all milestones with status, progress, date, and color; filter by status (all / planning / active / completed)
  • Milestone commands: changeMilestoneStatus and filterMilestones for quick milestone management
  • Mock attribute display: Requirements Explorer shows mock/golden icons on items that have mock HTML or golden screenshots defined
  • Gantt Chart milestones: milestone markers rendered as diamond shapes on the Gantt timeline; clicking opens the milestone popup in Project settings

Improved

  • Requirement Mindmap: tree filter switched from dim to hide mode — filtered-out nodes are removed from the tree instead of faded, reducing visual clutter

Fixed

  • E2E test t141.5: adapted to handoff-mcp v0.43.0 suspect detection changes (AT-002 baseline hash drift)
  • E2E test t531.4: campaign create now succeeds by providing layer items in the test fixture
  • E2E test 3.5: milestone TreeView wiring proof now verifies the actual TreeDataProvider, not just command registration

0.14.1 — 2026-10-24

Fixed

  • Trace Table: requirements mode now shows all items when V-model mode is unavailable (previously, projects where every document has a layer showed zero items)
  • Requirement Mindmap: default layer changed from brainstorm to the first non-brainstorm left layer (typically requirement), so the tree opens on the most relevant data
  • Requirement Mindmap: added layer selector dropdown when multiple left layers exist (shows item count per layer)

0.14.0 — 2026-10-18

Added

  • Requirement Mindmap: interactive 2D tree visualization of V-model traceability data (report schema v3)
    • SVG + Canvas dual backend with d3-hierarchy layout (tree / radial modes)
    • 4-level LOD, rAF frame scheduler, spatial index, viewport culling for large trees
    • Node glyphs: circle (leaf), rounded-rect (composite), diamond (decision), hexagon (select)
    • Status rings, verification badges, suspect/priority indicators, DAG shared-parent markers
    • Status background patterns with ON/OFF toggle setting
    • Expand/collapse with depth-level toolbar, subtree focus with breadcrumb navigation
    • Filter panel (status, verification, kind, gap kinds), legend with interactive toggles
    • Context menu: open document, focus subtree, expand/collapse all, linked tasks, create task, add child requirement
    • Keyboard navigation (arrow keys, Home/End, Enter/Escape) unified across all layout modes
    • Inspector integration: trace tree sections with linked tasks and document details
    • High-contrast theme support, ARIA tree accessibility
    • Canvas backend for high-density rendering
  • handoff-mcp CLI: trace tree action commands (focus, expand, linked tasks)

Fixed

  • ErrorBoundary: host message listener moved outside boundary to survive React crashes
  • Context menu: "Open document" grayed out for items without documents; "Linked tasks" disabled when no tasks linked
  • Focus ring visibility improved (2→2.5px, semi-transparent fill)

0.13.0 — 2026-10-15

Added

  • Requirements Explorer: TreeView with inline operations — change dev_stage, create linked tasks, backfill stable IDs, group by category/priority/status, filter by coverage gaps (no tests, P0 only, advanced multi-axis)
  • V-model Map: layer visualization with drill-down to individual items
  • Trace Matrix / Table: N×M requirement–test traceability matrix
  • Coverage Trend Chart: track requirement coverage over time
  • Inspector: context-sensitive detail panel with selection model — tasks, documents, sessions, referrals, and requirements
  • Plan Section: sidebar views for effort planning and milestone tracking
  • Home Section: landing view with project health summary and quick navigation
  • Bottom Panel: persistent footer showing current in-progress task with timer and quick actions
  • 5-Section Shell: header + 5 navigable sections (Home, Work, Specs, Plan, Sessions)
  • Document Viewer: section outlines with verification state, SubItem UI, treemap, metrics, impact analysis, parent/child/related navigation
  • Suspect / Stale Display: flag changed requirements with suspect banners in editor and explorer
  • Diagnostics UI: structured warnings as health cards, empty-state WHY/HOW guidance
  • Diagram Rendering: inline SVG for plantuml / aelm code blocks via configurable external renderers
  • Create Task form: header + Task button opens a form in the Inspector (title, parent, priority, assignee, requirement links via handoff-mcp CLI)
  • Document links: link/unlink documents from the Inspector or Specs & Requirements view (bidirectional task_links ↔ task_ids, undoable)
  • Document header: edit document type and auto_inject, or delete, from the Docs section header
  • Requirement sub-items: edit priority and impl/test references from the Inspector (layer documents offer Edit in body)
  • Document outline: verification state dot per section, parent/child/related documents
  • handoff-mcp CLI integration: native binary calls for task–requirement linking and V-model trace commands
  • Perf bench infrastructure: automated performance regression testing
  • Project Status Dashboard: project-level status overview with layer completion indicators
  • Verification Campaign UI: browse campaigns, record checks, attach evidence with structured metadata
  • Report Explorer: browse and manage reports (verification, weekly, monthly, milestone, defect, completion)
  • Report Approval Workflow: submit, approve, reject, and view revision history from the UI
  • Template Editing: edit report templates with live preview, HTML export for external sharing
  • Metrics Snapshot Trend Charts: visualize effort and velocity trends over time
  • Plan Document Explorer: browse plan documents with requirement coverage indicators
  • Requirement Coverage Status Bar: live indicator of overall requirement coverage
  • Suspect Status Bar Badge: status bar badge showing count of suspect (stale) requirements
  • Gantt Plan Filter: filter Gantt chart by plan document scope
  • Gantt Baseline Comparison Bar: visualize schedule baseline vs. actual dates
  • Gantt Suspect Highlight: highlight tasks linked to suspect requirements on the Gantt chart

Changed

  • UI rebuilt on V1 architecture (5-section shell, Inspector-centric navigation)
  • TraceGraph (2D graph) replaced with table-centric trace matrix UI
  • Undo of schedule edits now restores fields that were empty before
  • Removed settings: handoff.statusBar.showBranch, handoff.autoRefresh, handoff.overworkLimitPercent, handoff.aiEstimateMultiplier (last two moved to config.toml)
  • Removed command: handoff.reassembleDoc
  • Removed settings: handoff.defaultView, handoff.gantt.defaultScale

Fixed

  • Timer double-counting when switching tasks
  • Stale banner timer not clearing on navigation
  • React hooks warnings in development mode
  • Render error reporting (errors now surface in the UI instead of silently failing)
  • Display bugs (FR-918): four known rendering issues

Performance

  • Incremental reload with per-file cache (skip unchanged files)
  • Snapshot / patch / resync protocol for efficient data updates
  • Optimistic updates for instant UI feedback on writes
  • Web Worker scheduler for background data processing
  • Gantt chart memoization
  • Document content-hash lazy computation

Project Structure

The extension reads from the .handoff/ directory created by handoff-mcp:

your-project/
└── .handoff/
    ├── config.toml          # Project name, effort budget
    ├── tasks/
    │   ├── t1-auth/
    │   │   └── _task.done.json
    │   └── t2-api/
    │       └── _task.in_progress.json
    └── sessions/
        └── s-20260619-.../
            └── session.json

Task status is encoded in the filename: _task.todo.json, _task.in_progress.json, _task.review.json, _task.done.json.

Demo Data

This repository includes a .handoff/ directory with a realistic sample project ("Nimbus — Realtime Collaboration API") containing 42 tasks across multiple milestones, 6 AI sessions, effort budgets, assignee calendars, and more. Clone the repo, open it in VS Code, and the extension will pick it up automatically.

Issues & Feedback

Found a bug or have a feature request? Please open an issue.

Documentation

For detailed guides on each feature, see the Wiki:

Getting Started · Task Explorer · Task Detail · Dashboard · Gantt Chart · Metrics · Time Tracker · Session Browser · Team Panel · Requirements Explorer · V-model Map · Inspector · Document Viewer · Configuration · FAQ

Links

  • handoff-mcp — The MCP server that creates the .handoff/ data this extension visualizes
  • VS Code Marketplace

License

Source code is proprietary (All rights reserved). This repository contains documentation, examples, and issue templates.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft