A Kanban-first driver for Copilot Chat. The board is the control plane; chat is the execution surface — you interact with cards (accept, refine, approve, develop), and the extension composes and injects the right prompt into Copilot Chat at the right moment.
Each task is a durable, git-diffable markdown file on disk. The board is a live projection of that folder: editing a task file by hand moves the card, and moving the card rewrites the file.
Kanban Pilot is a VS Code extension for driving GitHub Copilot Chat. It does not replace Copilot Chat or implement the work by itself. The Kanban board is the control plane: task cards, workflow columns, and gates decide what should happen next. GitHub Copilot Chat is the execution surface: Kanban Pilot opens a private session for the selected task, injects the stage prompt, and records the result back in the task file.
The default workflow is deliberately staged so a task can be clarified and reviewed before Copilot Chat is asked to change code:
| Stage | What happens |
|---|---|
| Backlog | Create or select a task, then click Accept. |
| Refine | Click Refine to ask Copilot Chat to write the problem statement, acceptance criteria, and Scope. |
| Scoped | Review the generated Scope and use the gate before approving it. |
| Approved | Click Approve when the scope is ready for implementation. |
| In Progress | Click Develop to ask Copilot Chat to implement the approved Scope. |
| Validation | Click Validate to ask the QA stage to check the implementation against the criteria. |
| Done | The task is complete after a successful validation receipt. |
- Install or enable GitHub Copilot Chat in VS Code, then install Kanban Pilot. GitHub Copilot Chat is required because Kanban Pilot drives that chat surface.
- Open a workspace and run Kanban Pilot: Open Board from the Command Palette, or select the Kanban Pilot activity-bar icon. The board is bound to the first workspace folder.
- Click New Task to enter a title and optional description, or select an existing card.
Selecting a card opens its task detail dialog; the task is stored as a markdown file under
.kanban-pilot/tasksby default. - From Backlog, click Accept, then click Refine. Copilot Chat fills the task's Refined and Scope sections and returns a receipt. Refine is a documentation step; it must not write implementation code.
- Read the Scope in the task detail dialog. When it is ready, click Approve. This is the review gate between planning and implementation.
- In Approved, click Develop. Copilot Chat receives the approved task and implements the checklist. A task may show Continue when a run needs to resume.
- When the task reaches Validation, click Validate. The QA stage checks the actual implementation against the acceptance criteria and moves successful work to Done.
- Use Open Chat in the task detail dialog to open that task's private Copilot Chat session beside the board. Stage runs open the same task-specific session automatically when chat docking is enabled.
The board is the control plane for the task-specific Copilot Chat runs:
The board shows the staged columns, per-stage agent labels, gate controls, and the card action for the current task.
Use New Task to create a markdown-backed card with a title and an optional description.
Select a card to review its Request, Refined, and Scope sections. Open Chat is the explicit handoff to that task's private GitHub Copilot Chat session, which opens beside the board.
This walkthrough uses the same board, New Task, and task detail surfaces in sequence so the control-plane-to-Copilot-Chat handoff is visible before running a stage.
- Staged workflow — Backlog → Refine → Scoped → Approved → In Progress → Validation → Done, with a hard review point before any code is written.
- Gated by default — every stage transition requires an explicit click unless you opt into
auto-advance per gate (
kanbanPilot.gates.*). - One private chat session per task — no context bleed between unrelated tasks.
- Docked chat — the active task's Copilot Chat session opens beside the board.
- Task proposals — running agents can file follow-up work as new backlog tasks.
- VS Code 1.125.0 or later.
- GitHub Copilot Chat, since Kanban Pilot drives it rather than replacing it.
This extension contributes the following settings (all under kanbanPilot.*):
| Setting | Default | Description |
|---|---|---|
kanbanPilot.tasksDir |
.kanban-pilot/tasks |
Workspace-relative folder holding task markdown files. |
kanbanPilot.gates.backlogToRefine |
manual |
auto accepts a new task and launches Refine automatically. |
kanbanPilot.gates.scopedToApproved |
manual |
auto approves a freshly-scoped task into the ready queue. |
kanbanPilot.gates.approvedToInProgress |
manual |
auto starts development on the next Approved task. |
kanbanPilot.gates.validationAutoStart |
manual |
auto launches Validate as soon as a task lands in Validation. |
kanbanPilot.chat.mode |
agent |
Chat mode requested at injection (agent or ask). |
kanbanPilot.chat.sessionPrefix |
kanban-pilot- |
Prefix used to build each task's private session id. |
kanbanPilot.chat.closeTabOnDone |
true |
Close a task's chat tab once it reaches Done. |
kanbanPilot.chat.resetOnApprove |
false |
Clear the task's conversation at the Approve gate. |
kanbanPilot.refine.toolsInclude |
[] |
Optional allowlist restricting tools available during Refine. |
kanbanPilot.chat.toolsExclude |
["memory", "resolveMemoryFileUri"] |
Tools denied on every injection, every stage. |
kanbanPilot.chat.modelSelector |
{} |
Optional {id, vendor} to pin a model per run. |
kanbanPilot.chat.agentNames |
{} |
Per-stage persona overrides (refine/develop/validate; split reuses refine). Editable from the board via each column's Agent edit icon. |
kanbanPilot.run.timeoutMinutes |
20 |
Minutes before a run is marked failed. |
kanbanPilot.board.openOnStartup |
false |
Open the board automatically on workspace load. |
kanbanPilot.layout.dockChat |
true |
Open the selected task's chat beside the board. |
kanbanPilot.layout.dockChatOnSelect |
false |
Dock the chat as soon as a card is selected. |
kanbanPilot.chat.allowTaskProposals |
true |
Let develop/validate runs file follow-up work as new backlog tasks. |
None tracked yet — this is a pre-release build.
Initial build.



