Skip to main content
okra jobs inspects the parse, render, and workflow jobs your other commands create. Jobs are created implicitly — okra upload, okra extract, okra parse, okra render, and the workflow commands all enqueue a job — so the jobs surface is for listing, waiting, and controlling them, not creating them.
# 1) Kick off work that enqueues a job (e.g. a fire-and-forget parse)
okra upload ./report.pdf --no-wait

# 2) Wait for the latest parse job for that document
okra jobs wait <docId> --timeout 600

# 3) Inspect the job and its result
okra jobs get <jobId>
okra jobs wait accepts either a job ID or a document ID. Given a document ID, it waits for that document’s latest document.parse job.

Commands

okra jobs list                       # list your jobs (newest first)
okra jobs list --status completed    # filter by status
okra jobs list --type document.parse # filter by job type
okra jobs list --doc <docId>         # filter by document
okra jobs get <jobId>                # job status + result (alias: show)
okra jobs wait <jobOrDocId>          # block until a job finishes
okra jobs events <jobId>             # print the job event-stream URL
okra jobs cancel <jobId>             # cancel a queued or running job
okra jobs retry <jobId>              # retry a failed job
okra jobs resume <jobId>             # resume a paused job

jobs list flags

FlagDescription
--limit <n>Max jobs to return
--type <type>Filter by job type (e.g. document.parse, document.render)
--status <status>Filter by job status
--doc <docId>Filter to jobs for one document
Combine with the global --json flag for machine-readable output:
okra jobs list --status completed --limit 5 --json
When stdout is not a TTY, okra jobs commands emit the standard envelope. For example, okra jobs list --json returns:
{
  "ok": true,
  "command": "jobs list",
  "result": { "jobs": [] },
  "cost": { "usd": null },
  "citations": [],
  "next_actions": []
}

jobs wait

okra jobs wait <jobId>
okra jobs wait <docId>               # waits for the latest document.parse job
okra jobs wait <jobOrDocId> --timeout 600
FlagDescription
--timeout <seconds>Maximum seconds to wait (default: 300)

jobs cancel, retry, and resume

okra jobs cancel <jobId>             # cancel a queued or running job
okra jobs retry <jobId>              # retry a failed job
okra jobs resume <jobId>             # resume a paused job
Only non-terminal jobs can be cancelled; only failed jobs can be retried; only paused jobs can be resumed.
To create work, use a verb command (okra upload, okra extract, okra parse, okra render) rather than okra jobs. Those commands enqueue the job and, by default, wait for it — add --no-wait to queue and follow up with okra jobs wait.