Skip to main content

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.

MethodPathDescription
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-tasksFile 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}/moveMove 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}/startStart a Todo or In progress Personal task in a deployed Personal Repository.

The task​

FieldValue
idThe task id.
title1 to 255 characters.
descriptionMarkdown. Empty by default.
prioritynone, low, medium, high or urgent. Default none.
statustodo, in_progress or done. Default todo.
dueOnA calendar day, YYYY-MM-DD, or null. It has no time and no time zone.
threadIdThe Sensei thread that filed it or works on it, or null.
createdAt, updatedAtISO timestamps.
doneAtWhen 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.

FilterValue
statusComma-separated todo, in_progress, done.
prioritiesComma-separated priorities.
qText the title contains.
doneSinceAn ISO timestamp. Done tasks finished before it are left out.
threadIdOne thread's tasks.
includeOpenCounttrue 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​

StatusCodeWhen
400VALIDATION_ERRORThe body or a filter does not match the schema, such as an empty title or a dueOn that is not a day.
400PERSONAL_TASK_INVALID_THREADthreadId is not one of your Sensei threads.
401UNAUTHORIZEDNo valid credential.
403PERSONAL_TASK_FORBIDDENA move names a workspace you do not belong to.
404PERSONAL_TASK_NOT_FOUNDThe task does not exist or is not yours.
409PERSONAL_TASK_DONEA move named a Done task.
409PERSONAL_TASK_CONFLICTAn edit's ifRevision is not the task's updatedAt: the task changed since you read it.

Responses and errors has the full table.

Next steps​