Connect an account
Create an account and store its API key, or provide an existing key with ZSIGN_API_KEY.
zsign init --email you@example.com
Command line
Validate PDFs, send envelopes, follow status, download signed documents, and forward real webhook events to localhost. No tunnel and no runtime dependencies.
npm install -g @zsign/clizsign help
Requires Node.js 18 or newer. You can also run any command with npx @zsign/cli.
Quickstart
The CLI is intentionally thin. Field syntax, pricing, and document behavior stay defined by the API so terminal and HTTP integrations cannot drift apart.
Create an account and store its API key, or provide an existing key with ZSIGN_API_KEY.
zsign init --email you@example.com
Find field tags, parties, and syntax errors without a credential or credit charge.
zsign lint contract.pdf
Map every party in the PDF to a recipient. A successful send spends one credit. `zsign send` is always sequential (the API default); parallel send is REST/MCP only.
zsign send contract.pdf \--to "client=Robin Torres <robin@example.com>"
Follow status transitions, then download the completed PDF with the original document ID.
zsign status <document-id> --watchzsign download <document-id> --output signed.pdf
Local webhooks
zSign keeps a separate CLI copy of each event. The CLI drains that queue and forwards the exact payload to your local handler with a real webhook signature; production webhook delivery remains independent.
zsign listen --forward-to http://localhost:3000/hooks
zsign replay <event-id> --forward-to http://localhost:3000/hooks
One listener holds the account lease at a time. Exit code 9 names an active conflict; use --replace only for an intentional takeover.
Automation
Add --json to non-streaming commands for a stable envelope. status --watch and listen always emit NDJSON. Data is written to stdout and diagnostics to stderr.
zsign status "$DOCUMENT_ID" --json
--api-key, then ZSIGN_API_KEY, then the config written by zsign init. Stored keys stay bound to the base URL that issued them.
The package reference documents every command and edge case.