Start session
start_sessionStart a session of work and, if none is running, the timer. Returns a verdict: ok | stop | plan_first. On "stop" NO session is created: relay the message, ask the user; if they insist, call again with override=true. Several sessions may run at once (two terminals) and share attention by weight. Apps replaying a queued start pass op_id, their own session_id and start_at; an agent leaves all three out.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | default work | |
| task | Yes | what you are about to do, specific | |
| op_id | No | for apps replaying queued requests: an id the app minted before its first attempt and reuses on retries, so the write is applied once and a retry gets the first answer back. Do not invent one; an agent calling interactively leaves it out | |
| itemId | No | plan item id | |
| stepId | No | path step id | |
| weight | No | attention weight vs other sessions at the same time, default 1 | |
| leverId | No | ||
| minutes | No | length for a down timer, or the stand-up interval for an up timer | |
| override | No | true only after the user confirmed past a stop | |
| start_at | No | when the work began as ISO 8601 with offset, e.g. 2026-10-20T14:05:00+02:00. For apps delivering a request queued offline; an agent calling interactively leaves it out. Rejected before the session start; a clock more than 2 minutes ahead of the server is taken as now | |
| direction | No | up (default) counts elapsed time and runs until stopped, with a stand-up reminder every workMin; down is a fixed timebox, for a break | |
| exclusive | No | true: nothing else was happening then | |
| projectId | No | ||
| workplace | No | ||
| session_id | No | for apps: the session id the app minted itself. Create-if-absent: if a session with this id exists it is returned and nothing is created. An agent leaves it out; the server mints the id |