5-minute tour
The whole suite in five minutes.
Every CLI ships a zero-config demo — no setup, no config, no network.
Run them top to bottom to see each step of the pipeline, then chain them on your own files.
TL;DR —
Nine commands, nothing to configure. Try any one with no install —
npx <tool> demo or pipx run <tool> demo — or
install the suite for speed. Each demo runs against
bundled fixtures and cleans up after itself.
The speed run
Paste these one at a time. Each is self-contained and shows that tool's job in a few seconds.
nine demos, zero config
extract demo # 1. ingest — extract a bundled NDA into structured JSON
template-vault demo # 2. store — compose a template + swap a clause, with provenance
draft --demo # 3. draft — fill [Party A], [Effective Date], … in a template
nda-review-cli demo # 4. review — score a sample NDA against a house policy
contract-lint demo # 5. lint — flag internal defects in a deliberately-flawed sample
compare --demo # 6. compare — clause-aware drift gate (exits 2 on the fixture)
docx2pdf demo # 7. convert — render a sample DOCX to PDF
npx @drbaher/sign-cli demo # 8. sign — offline PAdES sign + verify + receipt
contract-vault demo # 9. manage — register signed deals + project a renewals calendar What just happened
- extract — ingested a bundled NDA and emitted structured JSON: parties, clauses, dates, and governing law, each with a confidence + source.
- template-vault — forked a base NDA, swapped one clause from another, and recorded the provenance in
meta.json. - draft — substituted typed placeholders into a template and printed the filled draft.
- nda-review-cli — scored the sample NDA and emitted a structured verdict (decision + risk + findings).
- contract-lint — linted a deliberately-flawed sample and reported its internal defects (leftover placeholders, broken cross-references, defined-term and numbering issues) as findings.
- compare — diffed two versions clause-by-clause and flagged the substantive drift (exit
2). - docx2pdf — converted a DOCX to PDF with whatever backend is installed.
- sign — created, sent, signed, verified, and bundled a receipt for a PDF — fully offline.
- contract-vault — registered two signed contracts and projected their renewals/notice deadlines as an
.icscalendar.
Now chain them on your own files
The tools read - from stdin and write to stdout, so the pre-signature
flow composes as a real pipeline. Bring your own template ref, deal params, and policy:
end-to-end on real files
# resolve a template from the vault → fill it → review it → gate drift → render → sign
template-vault get nda/house-mutual \
| draft - --params deal.json \
| tee filled.md \
| nda-review-cli review --file - --playbook config/org-policy.json --out-md review.md
# gate the ready-to-sign artifact against what you agreed to
compare filled.md ready-to-sign.docx # exit 0 = safe · 2 = substantive drift
# render the agreed .docx to PDF (docx2pdf takes a .docx, not markdown)
docx2pdf ready-to-sign.docx ready-to-sign.pdf
# sign — DOCX or PDF in, sealed PAdES PDF out, fully offline (one shot)
sign document ready-to-sign.pdf \
--signer "Alice Founder" --signer-email alice@acme.com \
--name-signature true --auto-place first --out signed.pdf Review and compare are gates, not transforms — they branch the flow (escalate, redline, or block) rather than rewrite the document, which is why they read the draft but don't sit mid-pipe. For the full step-by-step with every flag, see the workflow.
Next — Install the suite · read the workflow ·
wire it into an agent via built for agents.