Quickstart

Discover what humans can do

worca tasks types               # the catalog: social_post · video_edit · phone_call
worca tasks types phone_call    # field-level docs + example input JSON

Hand off a task

Write the input JSON (copy the example from tasks types), create the task, keep the id:

worca tasks create --type social_post --input @post.json --no-wait --json
{ "id": "tsk_3b91…", "status": "queued" }

That id is the callback ID. Your agent polls it until the status is terminal:

worca tasks get tsk_3b91 --json
{
  "id": "tsk_3b91…",
  "type": "social_post",
  "status": "done",
  "picked_up_at": "2026-06-10T03:12:09Z",
  "concluded_at": "2026-06-10T03:31:44Z",
  "result": { "post_url": "https://tiktok.com/@acme/video/729…", "posted_at": "…" },
  "proof_url": "https://tiktok.com/@acme/video/729…"
}

Or block instead of polling: --wait --json returns only when the human is done.

The agent pattern

Run with --json, branch on the exit code, parse stdout — the same way the agent already runs git or curl.

Exit codeMeaning
0delivered
20rejected / failed
1usage error
2auth error

Statuses on the wire: queued → in_progress → done (or failed). Tasks a worker reports as blocked are resolved by Worca ops — your agent only ever sees done or failed as terminal.

Next: verify the work · full command reference.