List tasks
list_tasksBrowse or search the task board with filters for status, type, assignee, tag, and fuzzy search; results are paginated and can include child tasks when needed.
Instructions
List tasks with optional filters — the same listing as vibeflow tasks (same filters, same scope, same order). Unfiltered: ROOT tasks only (a child belongs to its parent's card — set children:true to include them). Filtered (status/type/user/tag/search): an explicit search returning EVERY match, children included. search is a fuzzy relevance search over title, description, comments and tags (same shared matcher as vibeflow tasks --search and the v0 q param: every whitespace-separated token must match as an ordered subsequence of one field, case-insensitive and typo-tolerant, AND across tokens; spans every status with matching children always included; ranked by score asc then id asc, named in the order echo). Counts are labelled by scope: totalMatching (every match), totalRoots (matching roots), hiddenChildren (matches omitted by root-only scope), returned (rows in tasks), limit (echoed RESOLVED — 0 is not supported and falls back to the default of 20, named in limitNotice; there is no unbounded mode, page with nextCursor or CLI --all for everything), truncated + hint (present only when the limit cut rows). Position: offset (0-based index of the first returned row), remaining (rows in THIS query's scope NOT in this response — totalRoots-based when root-only, totalMatching-based otherwise, so offset + returned + remaining always equals the scope size; 0 means exhausted), nextCursor (opaque continuation, null exactly when exhausted), order (the effective sort applied, so a continuation is stable). Projected rows (fields) always carry commentCount/fileCount even when the arrays are omitted. Use it to browse or search the board; use get_task when you already hold an id, and claim_next_task when you want the next unit of work claimed rather than just listed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Every listed tag must be present on the task (AND, not OR). Combines with the other filters. | |
| type | No | Task type, matched case-insensitively (a task with no type counts as Task). Combines with the other filters. | |
| user | No | Assignee match, trimmed and case-insensitive. Combines with the other filters. | |
| limit | No | How many tasks to return (default 20). 0 is NOT supported and is resolved to the default LOUDLY — the response echoes the resolved limit and names the fallback in `limitNotice` — so never pass 0 meaning "all": there is no unbounded mode. A negative value is refused by input validation before the tool runs. Cost of asking for everything: roughly ~900 tokens per task, so a 500-task board costs ~450k context tokens — keep the default page and continue via offset/remaining/nextCursor (CLI: --all pages for you). | |
| fields | No | Return only these task fields per row (e.g. ["id","title","status"]) to save context. Omit for the full task objects. Projected rows ALWAYS carry commentCount/fileCount even when the comments/files arrays are omitted, so a projection never silently hides that discussion or attachments exist. | |
| search | No | Fuzzy search over title, description, comments and tags (same shared matcher as `vibeflow tasks --search` and the v0 `q` param): every whitespace-separated token must match as an ordered subsequence of a single field (case-insensitive, typo-tolerant; AND across tokens), no per-field weights — the best field wins. A search spans every status and always includes matching children. Ranked by relevance (score asc, then id asc), named in the `order` echo — the same ids in the same order on every surface (a remote board narrows server-side first, then ranks the same way). Combines with the other filters. | |
| status | No | Exact status match (backlog, todo, in-progress, review, done). Combines with the other filters: every given filter must match. | |
| children | No | Include child tasks in an UNFILTERED listing (default false: roots only, matching the board). A filtered query always includes matching children, so this flag only matters when no status/type/user/tag filter is given. |