Developer reference
Build around local document facts.
Install the OctoDoc CLI and use its account-free commands for local document facts. They create no hosted file and perform no signing act.
Input
Start with exact bytes
Local review reads the exact PDF once through the shared bounded-file contract. It rejects a file that changes while it is being read.
Install
curl -fsSL https://octodoc.org/install | shFor macOS on Apple silicon and Linux on x86-64. The script installs nothing unless the download matches its published SHA-256.
Sign in
octodoc loginOpens your browser to approve this computer. Login never creates an account; the local tools below need none.
Add it to Claude Code
claude plugin marketplace add 8bittts/OctoDoc-Pluginclaude plugin install octodoc@octodocOne skill that drives the command line above, from a public repository. It declares no server of its own, and does nothing until the command line is installed.
Add it to Codex
codex plugin marketplace add 8bittts/OctoDoc-Plugincodex plugin add octodoc@octodocThe same bundle, from the same repository, read through the portable manifest beside the first rather than a second copy.
Bound the input
The command reads one stable local file under fixed byte, page, field, and object ceilings.
Read one result
Stdout carries one TOON document by default, or one JSON document when requested.
Branch on the verdict
Exit status and structured fields distinguish success, refusal, negative verification, and usage error.
octodoc <file.pdf> review [--json]Output
Choose the output your caller needs
The output is one stable machine-readable document. TOON is the terminal default, and --json is the pipeline escape hatch.
Exit 0
The requested local operation finished successfully.
Exit 1
An operational error or negative verification verdict occurred.
Exit 2
The invocation was invalid before a document dependency ran.
Exit 3
Work is waiting for authorization, processing, or another signer. Read blockedOn for the next step.
Structured success and error documents use stdout. Human-readable progress and the model disclosure use stderr. Unknown flags are usage errors rather than ignored input.
Model work
Keep model work separate
Review is deterministic and offline. Summarize is a separate network command with a required party perspective and labeled model output.
Summary contract
octodoc <file.pdf> summarize --party <role> [--json]Every overview, clause, risk flag, and citation carries its model source. A cited span must match the canonical local representation exactly.
Verification
Treat verification as a bounded verdict
Verification consumes local evidence and returns a bounded verdict. A digest mismatch exits non-zero so automation cannot mistake it for success.
Sealed bytes
octodoc verify --sealed <file.pdf> --sha256 <hex>Ledger evidence
octodoc verify --ledger <bundle.json>Account work
Continue the same document from your terminal
Sign in to prepare, send, approve, decline, sign, track, and download existing documents. The browser and CLI use the same saved version.
Login opens browser authorization for an existing account. It creates no account. With authorization, running the CLI without arguments shows your live work and the available next commands.
Import an existing PDF or fill a reviewed reusable form with supplied facts. Convert DOC or DOCX and confirm every mark in the browser. Binding commands require transaction-bound authorization or an explicit mandate; a prompt, saved signature, or bearer credential supplies no such authority.
Use each command's --help for its arguments and retry rules. Preserve the idempotency key for the same mutation. A send receipt proves dispatch; a signature receipt proves one signer's submission. Read the sealed state before claiming a sealed file, and the download receipt before claiming a local copy.
Boundary
Local commands grant no transaction authority
These local commands create no account state and grant no transaction authority. Machine identity alone never authorizes a send or signature.