The extend CLI gives you direct terminal access to Extend’s document operations: parse, extract, classify, split, edit, and run workflows. Reach for it for quick one-off jobs, batch processing, scripting, and CI/CD pipelines — no application code required.
Building a durable integration in your own codebase? Use an SDK (Python, TypeScript, Java, Go) instead — they ship typed clients, polling helpers, and webhook verification.
You can also download a signed binary from the releases page. Confirm the install with extend --version.
Grab a key from the Developers page, export it, and verify it with a read-only command (it spends no credits):
Using an organization-scoped key? Also set EXTEND_WORKSPACE_ID="ws_xxx". On a non-default deployment? Set EXTEND_REGION (us | us2 | eu, default us).
Every command takes an <input> — a local file path (uploaded for you), an Extend file_xxx ID, or a publicly reachable https:// URL — across 30+ file types. Results are written to stdout, so redirect them to a file (> result.json) for anything large.
Convert a document into clean markdown or spatial chunks. No configuration required.
Pull structured data into JSON. Pass an inline --config for prototyping, or reference a saved extractor with --using and tweak a single run with --patch.
Schemas validate strictly and every field must be nullable. Keep yours in a file so each fix is incremental, and see the schema reference for custom field types like dates and currency.
Label a document’s type using a saved classifier.
Break a multi-document bundle into segments using a saved splitter.
Fill a PDF form’s fields and get back a filled PDF. Use natural-language --instructions for quick fills, or scaffold a schema for repeatable, structured fills.
Run a saved workflow — a multi-step pipeline that chains the operations above.
Add batch to any processing command to run across many files at once.
Beyond processing, the CLI manages the resources behind your runs:
Create a saved extractor without leaving the terminal:
Run extend <command> --help for the full flag list on any command, and see the CLI on GitHub for the complete reference.
-o <format> — json, yaml, raw, id, table, or markdown.--jq '<expr>' — filter structured results with the built-in jq, e.g. --jq '.output.value.invoice_id' -o raw (no separate jq install needed).Data goes to stdout and status to stderr, so you can pipe results cleanly. The CLI honors NO_COLOR and CLICOLOR_FORCE.
The CLI can describe itself to coding agents as an installable skill — a SKILL.md (following the agentskills.io standard) that teaches harnesses like Claude Code, Codex, Cursor, OpenCode, and Goose how to drive extend correctly. Install it to the cross-client default path:
This writes ~/.agents/skills/extend/SKILL.md. Claude Code reads from ~/.claude/skills/ instead, so point --target there:
Or print it to stdout to redirect anywhere with extend skill > SKILL.md. The skill is generated from the CLI’s own command tree, so re-run it after upgrading. For the full agent setup — including the platform context file for writing SDK code — see the Agent Quickstart.
The CLI is under active development — commands, flags, and output formats may change. If you depend on a specific output shape (for example in CI), pin to a specific release tag.