Skip to content
contract-ops CLI suite

Built for the agent era

Agents do the work. You approve what matters.

Nine open-source, local-first CLIs for contract operations — extract, draft, review, lint, compare, convert, sign, and track contracts from the command line. Each works standalone; together they cover the whole workflow. Built so an AI agent can run the operational work over MCP, while a human approves the gates that matter — starting with signing.

MCP-native Hash-chained audit trail Per-signer approval tokens Local-first · MIT
parallel gates — both must pass
Tap any step above to see what that CLI does.

Each box is a separate CLI; the arrows are the handoffs between them — files and JSON in standard formats. No proprietary glue, no shared database, no daemon — just standalone tools that compose.

TL;DR — Nine open-source CLIs, nine repositories, one agent-friendly workflow. Local-first by default — no SaaS account, no telemetry, no vendor lock-in. The agent drives via MCP / stdio; the human approves signatures and escalations. Use them piecemeal or chain them together.

Nine tools at a glance

Tool Stage Reads → writes
extract · Python Ingest any contract → structured JSON
template-vault · Python Store vault → versioned template
draft · Node Draft template + params → filled draft
nda-review · Python Review / negotiate draft → verdict + redlines
contract-lint · Python Lint gate one contract → defect findings
compare · Node Drift gate two versions → pass / block verdict
docx2pdf · Node Convert .docx → .pdf
sign · Node Sign .pdf → signed .pdf + receipt
contract-vault · Python Manage signed contract → renewals + deadlines

Every tool answers --catalog json for uniform agent discovery. Exit-code meanings differ per tool — see built for agents.

The tools

extract-cli

Open-loop front door: ingest any contract (.md/.txt/.html/.docx/.pdf) into structured JSON — parties, clauses, dates, governing law — with a confidence and source on every field.

Python v0.1.17 0 1.5k/wk GitHub ↗
pipx install extract-cli
Read more
template-vault-cli

Git-backed, clause-aware vault for legal-document templates. Fork, swap clauses with recorded provenance, pull upstream upgrades.

Python v0.5.3 369/wk GitHub ↗
pipx install template-vault-cli
Read more
draft-cli

Fill placeholders in markdown or .docx templates. Typed/computed/positional params, parties registry, multi-doc bundles.

Node.js v0.10.2 203/wk GitHub ↗
npm i -g @drbaher/draft-cli
Read more
nda-review-cli

Draft, review, and negotiate NDAs against your own house playbook. Deterministic by default; opt-in LLM augmentation.

Python v0.5.4 448/wk GitHub ↗
pipx install nda-review-cli
Read more
contract-lint-cli

Pre-signature quality gate: lint one contract for internal-consistency defects — leftover placeholders, broken cross-references, defined-term and numbering issues — with CI-gateable exit codes.

Python v0.2.4 319/wk GitHub ↗
pipx install contract-lint
Read more
compare-cli

Clause-aware drift detection between two contract versions. Pre-signature gate with exit codes CI can branch on. No LLM tier.

Node.js v0.4.2 171/wk GitHub ↗
npm i -g compare-cli
Read more
docx2pdf-cli

Honest DOCX → PDF conversion with batch processing, parallel runs, font validation, and pluggable backends.

Node.js v0.2.4 193/wk GitHub ↗
npm i -g docx2pdf-cli
Read more
sign-cli

Fully-offline PAdES e-signature with hash-chained audit events, RFC 3161 timestamps, named profiles, and a 19-tool MCP server for agents.

TypeScript v0.7.1 42/wk GitHub ↗
npx @drbaher/sign-cli@latest
Read more
contract-vault-cli

Post-signature layer: register signed contracts in a git-backed vault, then surface renewals, notice deadlines, and obligations as a queryable portfolio + an .ics calendar.

Python v0.5.2 1.5k/wk GitHub ↗
pipx install contract-vault
Read more
Live demo

Try the NDA review live

Score an NDA against a house policy book and watch it flag every non-compliant clause, in a sandbox. No install. No sign-in.

Open the live demo →

Built for an agent-first workflow

Most legal-tech assumes a human at a desk: dashboards, threaded comments, in-app redlining. These CLIs assume the opposite — an LLM agent doing the operational work and a human approving the things that legitimately need a human. Drafting, scoring, suggesting amendments, sending, tracking: agent. Signing, escalating non-negotiable conflicts, accepting a final position: human, with a deliberate gesture.

Agent does
  • Drafts NDAs from your house templates
  • Reviews counterparty docs against your policy
  • Proposes amendments using your stance + priorities
  • Sends documents for signature, tracks status
  • Verifies signed PDFs and audit chains
Human approves
  • Signing — every signature requires a per-signer token
  • Escalations on non-negotiable redlines
  • Accepting the final agreed position before finalize
  • Anything outside the deterministic policy guardrails

The MCP server in sign-cli exposes every command to any MCP-aware client (Claude Code, Cursor, Codex). Same per-signer guardrails — the agent never sees the approval token, the human does. Read the MCP guide for the wire-up, or grab the hosted listing on Smithery for one-click install into Claude Desktop, Cursor, and friends.

Why nine small tools instead of one big platform

Most contract operations products are SaaS suites. They want every step in one dashboard, every document in their database, every signature behind their identity provider. That's a fine business model for them, but it makes contract operations expensive, opaque, and — critically for an agent-first workflow — hard for an agent to drive without scraping or RPA glue.

The nine CLIs here take the opposite stance. Each does one thing well. None of them require an account, a subscription, or a network call you didn't ask for. An agent can drive them over stdio or MCP; a human can drive them from a terminal. You can swap any one of them, fork them, or audit the source end to end. Together they cover the same workflow a SaaS suite would, with the documents and audit trail on your machine — and an interface an agent can use natively.

Where to go from here

  • 5-minute tour — run all nine zero-config demos, then chain them end to end. The fastest way in.
  • The workflow — how the nine tools chain together, with copy-paste commands.
  • Install — every install path on one page.
  • MCP guide — drive the whole suite from an agent (Claude Code, Cursor, Codex).
  • Comparison — how the suite stacks up against SaaS contract platforms.
  • Principles — what these tools have in common and what they refuse to do.
  • Changelog — what's new and what's coming next.

Or jump straight to any tool from the cards above.

Edit this page on GitHub