Delegate a task
delegateQueues one task for one of the owner's apps (Claude Code, Codex, Cursor or T3 Code on the owner's Mac, or a cloud AI) by executor_id or role; name neither and Prometheor chooses under the owner's settings (state executor_choice_needed lists executor_ids to pick from; nothing is queued). The task runs visibly in that app. target_offline: the Mac is asleep or off and nothing is queued; ask the owner whether to queue it until it wakes. A cloud AI whose wake subscription ran out takes no task: another app that fits gets it (rerouted_from names the first one; tell the owner and give them next_step's sentence), and target_not_listening means none fits. Brief, folder, scope and checks are fixed at delegation; the same idempotency_key with the same content returns the same task. follow_up_of continues an app chat; web_session sends the brief into a person's chat. Refused while orchestration is off: follow next_step. When it fits: the owner names an app or computer (that executor_id gets exactly that task), or says Council (several apps advise on the same question with skill council, nobody changes files, you answer with one combined recommendation) or Team ("use the team", "orchestrate": the apps build one result together with skill team, and the results come back as one answer); say who takes part first. Without such words the owner's settings apply: by default the work stays with you or you ask once ("Shall I give this to Codex?"); with auto_delegate "on" in an answer, new work goes on with auto true. A step that needs an ability you lack (Mac apps, the owner's Chrome, a browser, Computer History: Codex; Claude in Chrome: Claude Code) goes to the app that has it. Set execution only when the owner asks, after checking that executor's execution_options in list_agents (a task with options its app does not take fails).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"brief": "<brief>",
"idempotency_key": "<idempotency_key>"
},
"name": "delegate"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| auto | No | Only while an answer showed auto_delegate "on": true when you hand work on by yourself, without the owner naming Prometheor or an app. Name no executor_id, role, follow_up_of, web_session or part_of; Prometheor picks the app(s). | |
| role | No | ||
| brief | Yes | The task as a short message to a colleague, at most 1000 characters, in the owner's language. Line 1: the goal in one sentence (it becomes the chat title). Then "Constraints:" with only what matters (what not to touch, whether to push, relevant logbook decisions). Then "Done when:" with a checkable end. Labels in the owner's language. Leave out headers, rules, report format and context the app can read itself: Prometheor adds the header, rules, folder and report format. | |
| scope | No | Paths in the folder the task may change; only when the owner limits the task. | |
| skill | No | Optional. Only when the owner said Council or Team: the round this task belongs to. council: the app advises and changes no files (Prometheor adds that rule to the brief); team: the app builds part of one shared result. | |
| title | No | 3 to 6 words in the owner's language, starting with the goal's verb, e.g. "Fix Safari export button". The owner finds the task by it in the task list, menu bar and app chat. Always give one; with follow_up_of only when the subject changed (the app chat is renamed). | |
| folder | No | Optional. A folder on the owner's computer as the owner names it, e.g. ~/code/shop, or a named project's folder (list_tasks include_sessions, projects); in a team round every app gets the same one. Never guess. Apps take turns in a folder (parts of the same task excepted). Without it the app starts in the home folder. Changed files are checked and committed only inside a Git repository. | |
| part_of | No | Only while working on a Prometheor task yourself and passing part of it on: that task's id (its "Task:" line). At most three links in a chain. | |
| big_task | No | One job keeps one number. Left out on a new task, or "new": a new topic with a new number; an earlier job's number (e.g. "#500") or task id when it continues that job. Not with part_of or follow_up_of, which keep their number. A message into a chat (web_session) without it keeps the number of the job you gave a task in from this chat in the last 30 minutes (answer: same_job). | |
| deadline | No | Latest claim time; default 24 hours, at most 7 days. | |
| handover | No | Optional, at most 6000 characters, only when the owner wants this chat continued in another app (like switching AIs): a short summary you write for that app (not a transcript): the goal, what was decided and done, the current state, open points and the details it needs (files, names, numbers), newest last. The app reads it first as an earlier chat. New tasks only; for a Codex, Claude Code or Cursor chat on the Mac use context_from instead. No secrets. | |
| replaces | No | Only when this task takes over an earlier task that has not started (for example one queued for a Mac that sleeps): its task_id. In one step the earlier task ends and this one is queued, so the work is not done twice. If the earlier task already runs or has its result, nothing is queued (replaced_task_running or replaced_task_done): wait for it instead. | |
| reply_of | No | Optional: when you answer a message that reached you through Prometheor, the task id it named; your answer then shows as an answer, not a new request. With web_session when the message named a chat to answer into; without it the answer reaches the AI that asked (a cloud AI such as a Grok Bot or a Dot). | |
| assistant | No | Only when several assistants share this connection (for example two Grok Bots of one account, or several Dots in one ChatGPT account): your own fixed name for Prometheor, a Grok Bot its bot id, otherwise a short name in lowercase. Pass the same value on every call (delegate, worker_setup, worker_claim, worker_report), so Prometheor keeps your tasks, your wake and the answers to your questions apart from the others'. Leave it out when you are the only one. | |
| execution | No | Set a field only when the owner asks; otherwise the app's own settings on that computer apply. Only model, reasoning effort and /goal can be set: permissions, sandbox and approvals always stay as the owner set them in the app. To limit the work (for example to one folder), say so in the brief. | |
| acceptance | No | Checks the server compares against the executor's evidence. | |
| background | No | Optional, at most 4000 characters: details the app may need (measurements, paths, earlier findings, a proposed approach). The app gets them apart from the brief, as a file it reads when needed, so its chat shows only the brief. Leave out when the brief is enough. | |
| files_from | No | Optional. Earlier tasks whose result files the app works on; they are copied into the folder's prometheor-files subfolder first. | |
| executor_id | No | ||
| owner_words | No | Optional, at most 2000 characters: what the owner said about this task, in their own words and language (quote them; drop only greetings and parts meant for other apps). The app's chat shows only these words, so the owner recognises their request there; your brief goes along unseen as the app's instructions. Leave out when the owner said nothing about it (e.g. a step you start yourself). | |
| web_session | No | Optional. Sends the brief as a message into a person's chat instead of an app task: a Claude Code web session or Claude project chat of the owner, by session id (session_...), claude.ai/code link, a name saved with save_chat (see list_agents), the claude.ai/code/project link of a saved project, or the title of one thread of a Claude project (list_agents threads) to write to that thread alone. For a project chat use its saved name or project link, never a session id you remember: it changes when the chat restarts. Needs Claude Code on one of the owner's computers; leave out executor_id, role and follow_up_of. A person reads it: plain words in the owner's language, no tool or field names, ids or test codes, and no Constraints:/Done when: lines unless you ask that chat to do a task. Prometheor adds a short header naming you. | |
| context_from | No | Optional. Hands a chat to this app, like switching AIs: a session_id from list_tasks or an earlier task_id. Prometheor reads that Codex, Claude Code or Cursor chat on the owner's computer (newest ~16,000 tokens, secrets removed; the text never passes Prometheor's server) and the app reads it first. Same computer only. Starts a new chat; continue it with follow_up_of = the new task_id. | |
| follow_up_of | No | Continues a task, or a session_id from list_tasks, in the same app chat: a running task gets the message at once, a finished one continues as a new task, a question is answered. With another app's executor_id an ended task or chat goes to that app as a new chat that reads the earlier one first. | |
| reply_session | No | Only when you are a Claude Code web session or Claude project chat, and then always: your session id or claude.ai/code link; that chat then hears of this task's result, question or end, and other chats of your app do not take it as theirs. | |
| acceptance_mode | No | Leave out: the result is verified once the runner's and declared checks pass. requester_review (accept with task_review) or owner_confirm only when the owner wants to review first. | auto |
| idempotency_key | Yes | ||
| queue_if_offline | No | Only after the owner said yes: queue although the Mac is asleep or off; it starts when the Mac wakes. |