Personal tasks
A personal task belongs to you and to no workspace, such as "Book SFO to Milan for 3 Nov". Sensei files one from a thread with kosuke tasks create personal. Your API key reads and changes only your own personal tasks. Move one into a workspace when it becomes the team's work.
| Method | Path | Description |
|---|---|---|
| GET | /api/personal-tasks?status=&priorities=&q=&doneSince=&threadId=&limit=&cursor=&includeOpenCount= | List your personal tasks, newest first. status is a csv of todo, in_progress, done; includeOpenCount counts Todo and In progress with the same filters, independent of status and cursor. |
| POST | /api/personal-tasks | File a personal task: yours alone, in no workspace. From a Sensei Turn it joins the Turn’s thread unless threadId names another. Check kosuke tasks list personal for one that covers it first. |
| GET | /api/personal-tasks/{taskId} | Get one of your personal tasks. |
| PATCH | /api/personal-tasks/{taskId} | Edit one of your personal tasks. dueOn or threadId null clears it. |
| DELETE | /api/personal-tasks/{taskId} | Delete one of your personal tasks. |
| POST | /api/personal-tasks/{taskId}/move | Move a Todo or In progress personal task into a workspace you belong to, as its Todo task assigned to you; the personal task is removed. A due date becomes the description’s last line. Only when the member asks. |
| POST | /api/personal-tasks/{taskId}/start | Start a Todo or In progress Personal task in a deployed Personal Repository. |
The task
| Field | Value |
|---|---|
id | The task id. |
title | 1 to 255 characters. |
description | Markdown. Empty by default. |
priority | none, low, medium, high or urgent. Default none. |
status | todo, in_progress or done. Default todo. |
dueOn | A calendar day, YYYY-MM-DD, or null. It has no time and no time zone. |
threadId | The Sensei thread that filed it or works on it, or null. |
createdAt, updatedAt | ISO timestamps. |
doneAt | When it became Done, or null. Leaving Done clears it. |
A personal task has no repository, branch, sandbox or pull request. Sensei works on it in its thread.
File and edit
Create takes title and optional description, priority, status, dueOn and threadId. It answers 201 with { data: PersonalTask }. A threadId must name one of your own Sensei threads. From a Sensei Turn, the task joins the Turn's thread unless threadId names another.
Update takes any of the same fields. Send dueOn or threadId as null to clear it. From the CLI, pass --body '{"dueOn":null}'. Add ifRevision, the task's updatedAt as you read it, to write only over the task you read. When the task changed since, nothing changes and the answer is 409 with the current task in task. Delete answers 204.
kosuke tasks create personal --title "Send Q3 invoices to Giulia" --due-on 2026-11-03
kosuke tasks update personal <taskId> --status in_progress
kosuke tasks delete personal <taskId>
List
List answers { data: PersonalTask[], meta: { pagination: { pageSize, hasMore, nextCursor } } }, newest first. Pass nextCursor as cursor for the next page. limit is at most 100.
| Filter | Value |
|---|---|
status | Comma-separated todo, in_progress, done. |
priorities | Comma-separated priorities. |
q | Text the title contains. |
doneSince | An ISO timestamp. Done tasks finished before it are left out. |
threadId | One thread's tasks. |
includeOpenCount | true adds meta.openCount: Todo plus In progress under the same filters, independent of status and cursor. |
kosuke tasks list personal --status todo,in_progress --include-open-count true
Move into a workspace
Move takes orgId, a workspace you belong to. The personal task becomes that workspace's Todo task, with its title, description and priority, and you as its Assignee. A due date becomes the description's last line, such as Due 3 Nov 2026. The personal task is removed in the same step. Move answers { data: { orgId, taskId } }, where taskId is the new workspace task.
kosuke tasks move personal <taskId> --org-id <workspaceId>
Limits
- A Done personal task does not move.
- A workspace task never becomes personal.
- Sandbox, Cron and Slack credentials reach no personal task. Sensei can file, read, edit and move them, but not delete one.
Errors
| Status | Code | When |
|---|---|---|
| 400 | VALIDATION_ERROR | The body or a filter does not match the schema, such as an empty title or a dueOn that is not a day. |
| 400 | PERSONAL_TASK_INVALID_THREAD | threadId is not one of your Sensei threads. |
| 401 | UNAUTHORIZED | No valid credential. |
| 403 | PERSONAL_TASK_FORBIDDEN | A move names a workspace you do not belong to. |
| 404 | PERSONAL_TASK_NOT_FOUND | The task does not exist or is not yours. |
| 409 | PERSONAL_TASK_DONE | A move named a Done task. |
| 409 | PERSONAL_TASK_CONFLICT | An edit's ifRevision is not the task's updatedAt: the task changed since you read it. |
Responses and errors has the full table.