Skip to content

Tasks & launch (MCP-first)

Tasks dispatch real agent CLI sessions. There is no board UI panel - agents (and you) use TrueDeck MCP hub tools.

Primary flow

truedeck_launch({ title, body?, agentId?, roleId?, isolate? })
 → queue → Electron createTask + dispatchTask → live PTY tab

TrueDeck must be running. See MCP.

Columns / statuses

StatusMeaning
backlogCaptured, not ready
readyReady to run
runningAgent session attached
reviewSession exited; human reviews outcome
doneFinished
blockedStuck / failed path

Types: TaskStatus in electron/shared/types.ts.

Task model

FieldDescription
idUUID
projectRootOwning project path
title / bodyHuman-readable work
statusKanban column
assigneeAgentIde.g. claude, codex, grok, cursor, shell
sessionIdLive PTY session when running
runIdsAgent run history
createdAt / updatedAtEpoch ms

Store file (app data): tasks.json under the global data directory. Command queue: deck-command-queue.json (MCP → Electron).

Without a project, the board shows a hint to open a folder first.

Dispatch pipeline

electron/main/task-dispatch.tsdispatchTask(taskId, agentIdOverride?):

  1. Load task; resolve agent preset (default shell if unassigned)
  2. Write task file under the repo:
<projectRoot>/.truedeck/tasks/<first-8-of-uuid>.md

Markdown includes title, status, agent, instructions body, and a short TrueDeck footer (summarize when done; board moves to Review on session exit).

  1. Write focus file for the agent-frame header:
<projectRoot>/.truedeck/current-focus.md
  1. Build env via onAgentSpawnFast plus:
EnvContent
TRUEDECK_TASKFull task id
TRUEDECK_TASK_FILEAbsolute path to task .md
TRUEDECK_TASK_TITLETitle (≤ 80 chars)
TRUEDECK_TASK_IDEATitle + first sentence of body (≤ 160 chars)
  1. ptyManager.spawn with extraEnv
  2. startRun + attach run to task; status → running
  3. After ~1200 ms, best-effort write a seed prompt into the PTY (Windows uses \r line endings)

Seed text points the agent at the relative task file and asks for durable notes under .memory/ when relevant.

On session exit

tasks.onSessionExit(sessionId, exitCode) moves a linked running task toward review (or blocked depending on exit handling). Check tasks.ts for exact exit mapping.

Project files (in-repo)

PathRole
.truedeck/tasks/*.mdPer-task instructions for agents
.truedeck/current-focus.mdOne-line “main idea” for agent frame
.truedeck/auto-context.mdSession memory auto-context (related, not board-only)

These are safe to commit or gitignore depending on your team’s preference. TrueDeck recreates them on dispatch / project open as needed.

MCP task tools

Agents with the TrueDeck hub MCP can manage the shared store:

ToolPurpose
truedeck_list_tasksList tasks (projectRoot when set)
truedeck_create_taskCreate card (does not auto-dispatch a PTY)
truedeck_update_taskPatch title/body/status/assignee

Creating a task via MCP does not spawn an agent; the human still uses Run/dispatch in TrueDeck for a live PTY. See MCP.

Worktree isolation

AppSettings.worktreeIsolationDefault exists for future git worktree isolation on dispatch (default false / not required for board use today).

MIT Licensed · Terminal-first multi-agent deck