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 code | Meaning |
|---|---|
| 0 | delivered |
| 20 | rejected / failed |
| 1 | usage error |
| 2 | auth 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.