Tasks
Reference for the task tools: list_tasks, get_task, create_task, create_tasks, update_task, bulk_update_tasks, connect_tasks, disconnect_tasks and delete_task.
list_tasks
Read-only. Allowed without asking.
Finds tasks. Without filters, it lists every open task. Filters combine: a task must match all of them.
| Parameter | Type | Description |
|---|---|---|
project | string | Only tasks in this project. |
area | string | Only tasks in this area, or inbox for tasks without an area or project. |
status | status list | Only these statuses. Overrides include_done. |
priority | priority list | Only these priorities. |
label | string | Only tasks with this label. |
search | string | Words that must all appear in the title, the description or the key. |
due_from, due_to | date | Due dates in this range, inclusive. |
planned_from, planned_to | date | Planned dates in this range, inclusive. |
overdue | boolean | Only open tasks past their due date. |
unscheduled | boolean | Only tasks with neither a due date nor a planned date. |
include_done | boolean | Also include done and canceled tasks. |
limit | number | 1 to 500. Default 100. |
Returns the number of matches and one line per task. When there are more than the limit: …and 12 more. Narrow the filters or raise the limit.
get_task
Read-only. Allowed without asking.
Everything about one task: title, status, priority, where it lives, due and planned dates, estimate, who does it, labels, its folder (its own, marked (its own), else the project's), where its sessions run when that's set, what they need from the computer (Needs on its computer: supabase, Gmail), what its sessions' agents used once they reported it (Agents used: 262k tokens · 1 min working · 1 session), the description, the numbered Done when items, the numbered sub-tasks with their state, the tasks it waits for (Waits for:) and those that wait for it (Before:), the latest session, the latest report an agent handed back, and when it was created, updated and finished.
| Parameter | Type | Required | Description |
|---|---|---|---|
task | string | yes | The task key. |
The report starts with its session, the agent, when it was handed back and its outcome: done, partly done or blocked, needs the user. Then come the summary, each Done when item with the agent's verdict (met, partly met, not met or not answered) and note, the images, each by its caption, size in pixels, type and file size, how to check the result, what changed in git since the session started (Files changed since the session started (from git): 2 files, +3 −0, 1 commit, then up to 10 commits and 30 files, each with its status and lines added and removed), the questions for the user, links, follow-ups, the details, and the changes the user asked for, if any. It's headed Latest report when it comes from the task's latest session, else Last report, from an earlier session. The Latest session line appears only when that session has no report of its own, such as a session still at work on its first hand-back.
For example, with the sample data:
DEV-21 · MCP server skeleton
Status: In review · Priority: High
Where: project Organizer app (organizer) in Dev
Due: 2026-09-25 (Fri) · Planned for: none
Estimate: 1h · Agent: Claude Code
Labels: mcp
Description:
Expose tasks, projects and time blocks over MCP so Claude Code and Codex can read and update them.
Done when:
1. /api/mcp answers tools/list with the task tools
2. Requests without the token get 401
3. Claude Code can create a task through it
Waits for: DEV-19
Before: DEV-22, DEV-24
Latest report · session 3f2a9c1b · Claude Code · 2026-09-24 13:53:07 · done
Summary: MCP endpoint added at /api/mcp. Tests pass.
Done when:
1. [met] /api/mcp answers tools/list with the task tools · 12 tools listed.
2. [met] Requests without the token get 401
3. [partly met] Claude Code can create a task through it · Tried with the MCP inspector, not with Claude Code yet.
How to check:
1. Run npm run dev
2. Open Settings → MCP server and copy the connect command
3. Ask Claude Code to list your tasks
Questions for the user:
- Should agents be allowed to delete tasks without asking?
Details:
- `src/app/api/mcp/route.ts` serves the MCP server with **mcp-handler**.
- Tools for tasks, projects and time blocks live in `src/server/mcp/`.
- Every request needs the bearer token from Settings.
Created 2026-09-21 13:53:07 · updated 2026-09-24 13:53:07The sub-task numbers are the ones update_task accepts, and the Done when numbers are the ones finish_task accepts in criteria.
create_task
Changes data. Allowed without asking.
Adds a task. Without project and area, it goes to the Inbox.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | yes | A short, concrete action. |
project | string | no | The project. Its area comes with it. |
area | string | no | The area, when there's no project. |
description | string | no | Why it matters, context, constraints, links, in Markdown, which the app shows formatted. |
done_when | string list | no | What must be true when the task is finished, one checkable outcome per item, such as "/reports has a Download CSV button" or "A screenshot of the new page". Up to 20 items; blank and repeated items are left out. Agents answer each item when they hand the task back. See Done when. |
needs | string list | no | What its agent needs from the computer its session runs on: MCP servers or claude.ai connectors by name, such as ["supabase", "Gmail"]. Up to 10; repeated names, a claude.ai prefix and names with other characters than letters, digits, spaces and _ . @ : + - are left out. See What a task needs. |
status | status | no | Defaults to todo. |
priority | priority | no | Defaults to none. |
due | date, optional time | no | The deadline. |
planned | date | no | The day to work on it. With a time (friday 10:00), also the time: a block in the week view, as long as the estimate, which the auto-planner leaves alone. |
estimate_minutes | number | no | 5 to 1440. Default 60. |
labels | string list | no | Labels, stored in lowercase, without #. |
subtasks | string list | no | Checklist items. |
agent | claude, codex or human | no | Who does it. Left out, the task gets the project's default agent. human: only the user can do it, and it never gets an agent session. |
related_project | project id or name | no | A project the task is about without being part of it. Give area, not project: the task is one of the area's to-dos, and the project's page lists it under Related. |
repeat | day, weekday, week or month | no | Marked done, the task comes back as a new one at its next date. |
Returns the new task's line, with its key and the number of Done when items and sub-tasks: Created DEV-43 · Todo · High · Add CSV export to the reports page · Organizer app · 4 Done when items · 3 sub-tasks.
A project together with an area that isn't the project's area is refused: Project … is in …, not …. Leave out the area.
create_tasks
Changes data.
Adds up to 50 tasks at once, for example when breaking a project down. All go to the same place; each has its own details.
| Parameter | Type | Required | Description |
|---|---|---|---|
project | string | no | The project for all tasks. |
area | string | no | The area for all tasks, when there's no project. |
tasks | list | yes | 1 to 50 tasks, each with title and any of the optional create_task fields, such as description and done_when. |
All dates are checked before anything is created, so one wrong date doesn't leave half the tasks behind.
update_task
Changes data. Allowed without asking.
Changes anything about a task. Parameters left out keep their value; null clears a date, the project, the area, the agent, runs_in or folder, and an empty list, [], clears done_when or needs. A session PacedMind started can't change its own task's runs_in, folder or needs.
| Parameter | Type | Description |
|---|---|---|
task | string, required | The task key. |
title | string | The new title. |
description | string | Replaces the description. |
append_to_description | string | Adds a paragraph at the end of the description. |
done_when | string list | Replaces the Done when list, up to 20 items. [] clears it. |
needs | string list | Replaces what its agent needs from the computer, as in create_task. [] clears it. |
status | status | The new status. |
priority | priority | The new priority. |
due | date with optional time, or null | The deadline. |
planned | date or null | The planned day, with a time when one is given (as in create_task); a day alone removes the time. null removes both. |
estimate_minutes | number | 5 to 1440. |
labels | string list | Replaces all labels. |
add_labels, remove_labels | string list | Adds or removes labels. |
project | string or null | Moves the task to this project and its area, or takes it out of its project. |
area | string or null | Moves the task to this area; null or inbox moves it to the Inbox. The task leaves its project when that project is in another area. With project, leave it out: a different area is refused. |
agent | claude, codex, human or null | Who does it. human makes it the user's own: it never gets an agent session. |
related_project | project id or name, or null | The project it's about without being part of it; null clears it. |
repeat | day, weekday, week, month or null | How it comes back once done; null stops it. Setting status to done on a repeating task adds the next one, and the answer names it: It repeats: WRK-41 is the next one, planned 2026-10-01 (Thu). |
runs_in | terminal, desktop, cloud or null | Where its agent sessions run: a terminal or the agent's desktop app on the user's computer, or the agent's cloud. null: a terminal when the agent's command-line tool is installed, else its desktop app. |
folder | string or null | An absolute folder its sessions work in instead of the project's, checked right away. null goes back to the project's folder. |
add_subtasks | string list | New sub-tasks. |
complete_subtasks | string list | Sub-tasks to tick off, by number (as get_task shows them) or title. |
reopen_subtasks | string list | Sub-tasks to reopen. |
remove_subtasks | string list | Sub-tasks to delete. |
Returns the updated task line; with done_when, the number of Done when items, such as · 3 Done when items; and, with sub-tasks, how many are done, such as · 3/4 sub-tasks done.
bulk_update_tasks
Changes data.
Applies the same change to up to 100 tasks, for rescheduling and triage.
| Parameter | Type | Description |
|---|---|---|
tasks | string list, required | 1 to 100 task keys. |
status | status | The new status. |
priority | priority | The new priority. |
due | date with optional time, or null | A new deadline for all. |
planned | date or null | A new planned day for all, with a time when one is given. |
shift_days | number | Moves each task's due and planned dates by this many days, -365 to 365, keeping times (a planned task's too). |
project | string or null | Moves the tasks to this project, or out of their projects. |
area | string or null | Moves the tasks to this area, or to the Inbox. |
add_labels, remove_labels | string list | Adds or removes labels. |
shift_days can't be combined with due or planned. Setting status to done works as in update_task: finished sessions of those tasks count as reviewed, and a repeating task comes back as a new one.
connect_tasks
Changes data.
Makes one task wait for another in the same project: a dependency, the same as an arrow drawn on the Timeline. The waiting task is ready to work on once the other one is done, or in review, unless its agent handed it back partly done or blocked. A dependency only orders the work: nothing starts by itself. get_next_task and get_project follow it.
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | yes | The task that comes first. |
to | string | yes | The task that waits for it. |
Returns DEV-23 waits for DEV-22. Refused when:
fromandtoare the same task (A task can't wait for itself.);- the tasks aren't both in the same project (Both tasks have to be in the same project.);
- the dependency would close a loop (DEV-22 already waits for DEV-23, so this would make a loop.).
disconnect_tasks
Deletes.
Removes a dependency: to stops waiting for from. The tasks themselves stay.
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | yes | The task it waits for. |
to | string | yes | The task that waits. |
Returns DEV-23 no longer waits for DEV-22., or the error DEV-23 doesn't wait for DEV-22. when there's no such dependency.
delete_task
Deletes. Agents ask the user first.
Deletes a task with its sub-tasks, sessions and dependencies, and the reports and images its agents handed back. Setting the status to canceled keeps a record and is often the better choice.
| Parameter | Type | Required | Description |
|---|---|---|---|
task | string | yes | The task key. |
Areas and projects
Reference for the area and project tools: list_areas, create_area, update_area, delete_area, list_projects, get_project, create_project, update_project, delete_project and reorder_tasks.
Calendar and agenda
Reference for the calendar tools: list_events, create_event, update_event, delete_event, get_agenda and reschedule_day.