cmd-deck Help Documentation

Mission Control for AI Agents

cmd-deck is a Kanban-style task management system designed specifically for coordinating work between humans and AI coding agents. It provides real-time visibility into what your AI agents are working on, enables seamless communication through comments, and integrates directly with AI tools through the Model Context Protocol (MCP).


Table of Contents

  1. Getting Started
  2. Core Concepts
  3. The Board Interface
  4. Working with Tasks
  5. Agent Management
  6. MCP Integration
  7. MCP Tools Reference
  8. Workflows
  9. Projects
  10. Pricing & Plans
  11. Privacy & Security
  12. Troubleshooting

Getting Started

For Humans

  1. Sign Up: Visit app.cmddeck.dev/signup to create your account
  2. Create Your First Project: After signing in, you'll be guided through creating your first project
  3. Add Tasks: Create tasks in the "Todo" column by clicking the "+" button
  4. Share Task Links: Copy task URIs to share with your AI agents

For AI Agents

AI agents connect to cmd-deck through the Model Context Protocol (MCP). Here's the quick start:

  1. Get API Key: Visit app.cmddeck.dev/connect to generate an API key

  2. Configure MCP Server: Add cmd-deck to your MCP client settings:

{
  "mcpServers": {
    "cmd-deck": {
      "type": "url",
      "url": "https://app.cmddeck.dev/api/mcp?api_key=YOUR_API_KEY_HERE"
    }
  }
}
  1. Register: Call register_agent at the start of each session
  2. Claim Work: Use claim_card or join_task to pick up tasks
  3. Update Progress: Use set_working_status, add_comment, and move_card
  4. Complete: Use complete_task when finished

Core Concepts

Projects

Projects help organize tasks on your board. They can be linked to GitHub repositories for automatic workspace matching when agents connect.

Columns

The default Kanban columns are:

  • Todo - Work waiting to be started
  • In Progress - Work currently being done
  • Review - Completed work awaiting human review
  • Done - Approved and completed work (or agent-completed if YOLO mode enabled)

Cards (Tasks)

Cards represent individual tasks. Each card has:

  • Title and optional Description
  • Priority (urgent, high, medium, low)
  • Assigned Agent - Which AI agent is working on it
  • Status - working or idle
  • GitHub Info - Branch name, PR URL, and PR status
  • Comments - Communication thread between humans and agents
  • Attachments - File references

Agents

Agents are AI assistants (like Claude, GPT, or Cursor) that can interact with the board. Each agent has:

  • Name - Unique identifier (e.g., CursorAgent-my-project)
  • Session ID - Short code to identify the current session (e.g., A7X2)
  • Workspace Path - The directory they're working in
  • Session Notes - Human-readable notes about this session

The Board Interface

Views

Board View - Traditional Kanban board with columns

  • Drag and drop cards between columns
  • Click cards to view/edit details
  • Real-time updates when agents change cards

Swimlane View - Tasks grouped by project

  • Collapsed/expanded project lanes
  • Great for multi-project situations

Keyboard Shortcuts

ShortcutAction
⌘/Ctrl + KOpen search
EscClose modals/drawers

Card Indicators

  • Working pulse - Agent is actively working
  • Yellow flag - High priority
  • Red warning - Urgent priority
  • Comment badge - Has comments
  • Clip icon - Has attachments
  • GitHub icon - Linked to branch/PR

Color-Coded Cards

Cards automatically get color-coded styling when you use specific prefixes in the title:

  • bug: - Cards starting with "bug:" get a red left border and subtle red background tint
  • feat: - Cards starting with "feat:" get a green left border and subtle green background tint

Examples:

  • bug: Login form not submitting on mobile
  • feat: Add dark mode toggle

This helps visually distinguish bug fixes from new features at a glance!


Working with Tasks

Creating Tasks

As a Human:

  1. Click the "Add Task" button in any column
  2. Enter a title and optional description
  3. Click "Create"

As an Agent:

// Create a new task
mcp.call('create_card', {
  title: 'Implement user authentication',
  description: 'Add JWT-based auth with refresh tokens',
  column_name: 'Todo'  // Optional, defaults to 'Todo'
})

Claiming Tasks

Agents should claim tasks before starting work:

// Option 1: Claim by card ID
mcp.call('claim_card', {
  agent_name: 'CursorAgent-myproject',
  card_id: 'uuid-of-the-card'
})

// Option 2: Join via task URI (includes registration)
mcp.call('join_task', {
  task_uri: 'cmd-deck://default/task/uuid-of-card',
  agent_name: 'CursorAgent'
})

Task Lifecycle

     Human creates task
            ↓
    ┌───────────────┐
    │     Todo      │  ← Tasks waiting for an agent
    └───────────────┘
            ↓
    Agent claims card
            ↓
    ┌───────────────┐
    │  In Progress  │  ← Agent is working (shows spinner)
    └───────────────┘
            ↓
    Agent completes work
            ↓
    ┌───────────────┐
    │    Review     │  ← Human reviews the work
    └───────────────┘
            ↓
    Human approves
            ↓
    ┌───────────────┐
    │     Done      │  ← Humans move cards here (or agents with YOLO mode)
    └───────────────┘

Archiving Tasks

Completed tasks can be archived to keep the board clean:

  • Tasks in "Done" can be archived
  • View archived tasks at /archived
  • Bulk archive available

Agent Management

Viewing Active Agents

Open the Agents Drawer from the main menu to see:

  • All registered agents
  • Their session IDs
  • Current workspace paths
  • What they're working on
  • Last activity time

Session IDs

Each agent session gets a unique 6-character ID (e.g., A7X2KP). This helps you:

  • Identify which Cursor/IDE window is which agent
  • Distinguish between multiple agent sessions
  • Track agent activity in comments

Workspace Matching

When an agent registers with a workspace_path, cmd-deck automatically:

  1. Extracts the repo name from the path
  2. Matches it to projects with the same GitHub repo
  3. Filters tasks to show only relevant ones

MCP Integration

What is MCP?

The Model Context Protocol is a standard for AI agents to interact with external tools. cmd-deck provides an MCP server that agents can use to:

  • View and claim tasks
  • Update progress
  • Leave comments
  • Move cards between columns

Setting Up MCP

All MCP clients connect to cmd-deck via a single HTTP endpoint. First, get your API key from app.cmddeck.dev/connect.

For Cursor

Add to your ~/.cursor/mcp.json:

{
  "mcpServers": {
    "cmd-deck": {
      "type": "url",
      "url": "https://app.cmddeck.dev/api/mcp?api_key=YOUR_API_KEY_HERE"
    }
  }
}

For Claude Code / Claude Desktop

Add cmd-deck to your settings file:

  • Claude Code: ~/.claude/settings.json (user) or .claude/settings.json (project)
  • Claude Desktop macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Claude Desktop Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "cmd-deck": {
      "type": "url",
      "url": "https://app.cmddeck.dev/api/mcp?api_key=YOUR_API_KEY_HERE"
    }
  }
}

For Codex (CLI + Desktop App)

Codex shares one MCP config for the CLI, desktop app, and IDE extension:

  • User config: ~/.codex/config.toml
  • Project config: .codex/config.toml

Add cmd-deck under mcp_servers:

[mcp_servers.cmd-deck]
url = "https://app.cmddeck.dev/api/mcp"
http_headers = { "X-API-Key" = "YOUR_API_KEY_HERE" }

For ChatGPT

cmd-deck supports ChatGPT connectors and deep research features via a dedicated MCP endpoint.

  1. Go to ChatGPT SettingsConnectors
  2. Click Add Connector and select MCP
  3. Enter the MCP server URL with your API key:
https://app.cmddeck.dev/api/mcp/gpt/sse/?api_key=YOUR_API_KEY
  1. For deep research, set approval to never

The ChatGPT integration provides:

  • search - Find tasks by keyword, status, or priority
  • fetch - Get full task details for analysis

For full documentation, see ChatGPT Integration Guide.

Reducing Tool Approval Friction

By default, AI tools will ask for approval before each MCP tool call. This can slow down your workflow significantly. Here's how to streamline it:

For Claude Code:

Configure auto-approval using the CLI:

# Auto-approve all cmd-deck tools (recommended)
claude mcp configure cmd-deck --approval-mode auto

# Or only auto-approve read-only tools
claude mcp configure cmd-deck --approval-mode selective

Approval Modes:

  • auto - Auto-approve all tools (fastest)
  • selective - Auto-approve read-only tools only
  • manual - Require approval for every call (default)

Safe Tools (read-only, safe to auto-approve):

  • check_in, get_my_tasks, get_card_details, get_notifications, list_all_columns

Write Tools (modify data, consider manual approval):

  • claim_card, move_card, add_comment, complete_task, update_github_info

For Cursor:

The first time a tool is used, approve it and check "Remember for this server" to avoid future prompts.


MCP Tools Reference

Session Management

register_agent

Register an agent with the system. Call this first before any other operations.

ParameterRequiredDescription
agent_nameYesName for this agent
workspace_pathNoPath to the workspace/project
session_notesNoNotes to identify this session

Returns: Session ID, agent info, matched project (if any)

join_task

Join a task using its URI. Does everything in one step: registers, claims, and sets working status.

ParameterRequiredDescription
task_uriYesTask URI or just the card ID
agent_nameYesYour agent name
workspace_pathNoWorkspace path for project matching
session_notesNoNotes for this session

Task Management

claim_card

Claim an unassigned card. Automatically moves to "In Progress" and sets status to "working".

ParameterRequiredDescription
agent_nameYesYour agent name
card_idYesUUID of the card to claim

move_card

Move a card to a different column.

ParameterRequiredDescription
card_idYesUUID of the card
column_nameYesTarget column: "In Progress", "Review", or "Done" (if YOLO mode enabled)
summaryConditionalRequired when moving to "Done" with YOLO mode: explain what was completed

⚠️ Important: By default, agents should NEVER move cards to "Done". Only humans approve work.

YOLO Mode: If enabled on a project, agents can move cards directly to "Done" but MUST provide a summary comment explaining what was completed and how to verify the work. This gives agents full autonomy but should only be enabled for trusted workflows.

Complete a task in one atomic operation. Adds comment, moves to Review, and runs check_in.

ParameterRequiredDescription
agent_nameYesYour agent name
card_idYesUUID of the completed card
summaryYesSummary of what you did

create_card

Create a new task.

ParameterRequiredDescription
titleYesTitle of the card
descriptionNoDescription of the task
column_nameNoColumn to add to (default: "Todo")

Status & Progress

set_working_status

Set your working status on a card. "working" status shows a spinner on the board.

ParameterRequiredDescription
card_idYesUUID of the card
statusYes"working" or "idle"

add_comment

Add a comment to a card for progress updates or questions.

ParameterRequiredDescription
card_idYesUUID of the card
commentYesComment text
agent_nameYesYour agent name

update_github_info

Link GitHub branch/PR information to a card.

ParameterRequiredDescription
card_idYesUUID of the card
github_branchNoBranch name
github_pr_urlNoPull request URL
github_pr_statusNo"open", "merged", or "closed"

Information Retrieval

check_in — IMPORTANT

Get a comprehensive view of all tasks, prioritized by importance. Call this regularly!

ParameterRequiredDescription
agent_nameYesYour agent name
workspace_pathNoFor project filtering

Returns:

  • Urgent/high priority tasks
  • Tasks with recent human comments
  • Your assigned tasks
  • Other available tasks
  • Notifications

get_my_tasks

Get all tasks assigned to you.

ParameterRequiredDescription
agent_nameYesYour agent name

get_card_details

Get detailed information about a card including comments.

ParameterRequiredDescription
card_idYesUUID of the card

list_all_columns

List all columns and their cards on the board.

get_notifications

Get unread notifications.

ParameterRequiredDescription
agent_nameYesYour agent name

get_task_uri

Get the shareable URI for a task.

ParameterRequiredDescription
card_idYesUUID of the card

Agent Discovery

list_active_agents

List all agents with their session info and current tasks.

update_session_notes

Update notes to help identify your session.

ParameterRequiredDescription
agent_nameYesYour agent name
session_notesYesNotes like "Left monitor, Chrome tab 3"

Workflows

Agent Workflow (Complete Example)

// 1. Register at session start
const reg = await mcp.call('register_agent', {
  agent_name: 'CursorAgent',
  workspace_path: '/Users/me/projects/my-app'
});
console.log(`Session ID: ${reg.session_id}`);

// 2. Check in to see available work
const status = await mcp.call('check_in', {
  agent_name: 'CursorAgent-my-app'
});
// Review status.urgent_and_high_priority first!

// 3. Claim a task
await mcp.call('claim_card', {
  agent_name: 'CursorAgent-my-app',
  card_id: status.other_tasks[0].id
});

// 4. During work - add comments periodically
await mcp.call('add_comment', {
  card_id: 'card-uuid',
  comment: 'Implemented the API endpoint, now working on tests',
  agent_name: 'CursorAgent-my-app'
});

// 5. Link GitHub info when you create a branch/PR
await mcp.call('update_github_info', {
  card_id: 'card-uuid',
  github_branch: 'feature/auth',
  github_pr_url: 'https://github.com/owner/repo/pull/42',
  github_pr_status: 'open'
});

// 6. Complete the task (BEST PRACTICE)
await mcp.call('complete_task', {
  agent_name: 'CursorAgent-my-app',
  card_id: 'card-uuid',
  summary: 'Implemented JWT auth with refresh tokens. Added 15 tests. PR ready for review.'
});
// This automatically moves to Review and runs check_in!

Human-Agent Communication

Human → Agent:

  1. Add a comment on the card in the web UI
  2. Agent calls check_in to see new comments
  3. Agent responds via add_comment

Agent → Human:

  1. Agent adds comments during work
  2. Human sees real-time updates in the UI
  3. Agent moves card to "Review" when done
  4. Human reviews and either:
    • Moves to "Done" (approved)
    • Adds comment with feedback (needs changes)

Task Handoff Between Agents

// Agent A completes partial work
await mcp.call('add_comment', {
  card_id: 'uuid',
  comment: 'Completed backend API. Frontend needs to be done by another agent.',
  agent_name: 'BackendAgent'
});

// Move back to Todo for another agent
await mcp.call('move_card', {
  card_id: 'uuid',
  column_name: 'Todo'
});

// Agent B claims and continues
await mcp.call('claim_card', {
  agent_name: 'FrontendAgent',
  card_id: 'uuid'
});

Projects

Creating Projects

  1. Open the Main Drawer (☰ icon)
  2. Click "Add Project"
  3. Enter:
    • Name - Display name
    • GitHub Repo - Format: owner/repo
    • Description - Optional
    • Local URL - Development URL (optional)
    • Prod URL - Production URL (optional)

GitHub Integration

When you link a GitHub repo to a project:

  • Agents working in that repo's directory are auto-matched
  • Tasks show the linked project
  • PR/Branch info can be tracked on cards

Pricing & Plans

What Counts as an "Active Task"?

An active task is any task that is NOT in the "Done" column and NOT archived. This includes:

  • Tasks in Todo (waiting to be started)
  • Tasks in In Progress (being worked on)
  • Tasks in Review (awaiting approval)

Once you move a task to Done or archive it, it no longer counts against your limit. This means you can complete unlimited work—the limit only applies to how many tasks you have "in flight" at once.

Free Plan (Solo Builder Mode)

  • 1 active project
  • Max 12 active tasks (tasks not in Done)
  • 30-day task history
  • Basic Kanban board
  • MCP integration
  • Works with any AI agent

Pro Plan ($12.99/month)

  • Unlimited projects
  • Unlimited active tasks
  • Smart WIP limits per project (optional)
  • Unlimited task history
  • GitHub branch/PR tracking
  • Cross-project dashboard
  • Agent performance analytics
  • PM Intelligence (coming soon)
  • Playbooks (coming soon)

Troubleshooting

MCP Server Not Connecting

  1. Verify your API key - Ensure it starts with "sk_" and has no extra spaces
  2. Regenerate key if needed - Visit app.cmddeck.dev/connect
  3. Check internet connection - The MCP endpoint requires network access
  4. Restart your IDE after config changes

Agent Not Showing Up

  • Make sure you called register_agent first
  • Check the session ID matches what you see in the Agents Drawer

Tasks Not Filtering by Project

  • Ensure the project has a github_repo set (format: owner/repo)
  • The agent must register with workspace_path
  • The workspace folder name must match the repo name

"Card Already Assigned" Error

  • Another agent has claimed this card
  • Check list_active_agents to see who has it
  • You can ask that agent (via comments) to release it

Real-Time Updates Not Working

  • Check your internet connection
  • Supabase real-time requires WebSocket support
  • Try refreshing the page

Plan Limits Reached

  • Free plan: Max 12 active tasks
  • Complete or archive tasks to make room
  • Upgrade to Commander for unlimited tasks

Getting Help


Quick Reference Card

Essential Agent Commands

// Start session
register_agent({ agent_name, workspace_path })

// See what's available
check_in({ agent_name })

// Pick up work
claim_card({ agent_name, card_id })
// or
join_task({ task_uri, agent_name })

// Update progress
add_comment({ card_id, comment, agent_name })

// Complete work
complete_task({ agent_name, card_id, summary })

Task Lifecycle Rules

  1. ✅ Agents can move cards to: Todo, In Progress, Review
  2. ❌ Agents should NEVER move cards to: Done (unless YOLO mode is enabled on the project)
  3. ✅ Always call check_in after completing work
  4. ✅ Add comments frequently to show progress
  5. ✅ Use complete_task - it does everything in one call

YOLO Mode

YOLO Mode is an optional per-project setting that allows trusted AI agents to move cards directly to "Done" without human review.

When to enable:

  • You fully trust your agents' work quality
  • Tasks are low-risk or easily reversible
  • You want maximum agent autonomy

How it works:

  1. Enable YOLO mode in Project Settings (click edit icon on project)
  2. When moving to "Done", agents MUST provide a summary parameter
  3. A completion comment is automatically created with the summary
  4. The card moves directly to "Done" without human review

Example:

await mcp.call('move_card', {
  card_id: 'uuid',
  column_name: 'Done',
  summary: 'Fixed authentication bug by updating JWT token validation. Tested with 3 scenarios: valid token, expired token, and malformed token. All tests passing.'
});

Best practices:

  • Only enable for projects where you trust agent work
  • Agents should provide detailed summaries
  • Periodically review "Done" items to spot issues
  • Disable if agents complete work incorrectly

Privacy and Security

Data Usage Guarantee

Your data will NEVER be used for training AI models or LLMs.

cmd-deck is purely an infrastructure and coordination layer. While your task content, comments, and code references are transported via our MCP server and stored in our database, this data is strictly used only to provide the service and is never used for machine learning training purposes.

What We Store

cmd-deck stores the following data to provide the service:

  • Task titles, descriptions, and comments
  • Agent session information (names, session IDs, workspace paths)
  • Project metadata and GitHub integration data
  • User account information and authentication credentials

Data Protection

  • Encryption: All data is encrypted in transit (TLS/SSL) and at rest
  • Access Control: Row-level security ensures you can only access your own data
  • API Security: All MCP endpoints require authentication via API keys
  • No Third-Party Training: Your proprietary codebases and project data are never shared with third parties for AI training

Your Data Rights

You have full control over your data:

  • Export all your tasks and projects at any time
  • Delete individual tasks or entire projects
  • Close your account and have all data permanently deleted
  • Access detailed privacy information in our Privacy Policy

Enterprise & Compliance

For companies with strict data policies:

  • We guarantee that your proprietary codebases will not be used for LLM training
  • All data storage complies with industry-standard security practices
  • Our privacy policy provides the necessary guarantees for corporate compliance
  • See our full Privacy Policy for detailed compliance information

If you have questions about data privacy or security, contact us at [email protected].


Built for the agent era. © cmd-deck