CLI
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.
Installation
Homebrew
npm
Go
You can also download a signed binary from the releases page. Confirm the install with extend --version.
Authentication
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).
Quick examples
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.
Commands
parse
Convert a document into clean markdown chunks. No configuration required.
extract
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.
classify
Label a document’s type using a saved classifier.
split
Break a multi-document bundle into segments using a saved splitter.
edit
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
Run a saved workflow — a multi-step pipeline that chains the operations above.
batch
Add batch to any processing command to run across many files at once.
Managing resources
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.
Output and scripting
-o <format>—json,yaml,raw,id,table, ormarkdown.--jq '<expr>'— filter structured results with the built-in jq, e.g.--jq '.output.value.invoice_id' -o raw(no separatejqinstall needed).
Data goes to stdout and status to stderr, so you can pipe results cleanly. The CLI honors NO_COLOR and CLICOLOR_FORCE.
Agent skill
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.

