From open-agreements
Fills standard legal templates (NDAs, SAFEs, cloud service agreements) to produce signable DOCX files. Supports Common Paper, Bonterms, YC templates; sends for DocuSign e-signature.
npx claudepluginhub open-agreements/open-agreementsThis skill uses the workspace's default tool permissions.
Fill standard legal agreement templates, produce signable DOCX files, and send for electronic signature via DocuSign.
Drafts and fills SaaS agreement templates including cloud contracts, MSAs, order forms, software licenses, pilot agreements. Produces signable DOCX from Common Paper standard forms.
Generates service agreement, NDA, and subcontractor templates with scope, payment, IP ownership, confidentiality, termination, and liability clauses. Activates on 'contract' or 'agreement' mentions.
Generates customized business agreements for 10 types (freelancer, partnership, NDA, etc.) with plain English annotations via info-gathering wizard. Trigger: /agreement-generator or 'create a freelancer agreement'.
Share bugs, ideas, or general feedback.
Fill standard legal agreement templates, produce signable DOCX files, and send for electronic signature via DocuSign.
Use this skill when the user wants to:
connect_signing_provider tool handles the entire OAuth 2.0 + PKCE flow.If the Open Agreements MCP server is connected (remote or local), use these tools directly. This is the preferred path — no CLI or Node.js needed.
Remote MCP URL: https://openagreements.org/api/mcp
| Tool | Purpose |
|---|---|
list_templates | List available templates (compact by default — name, description, license, source only) |
get_template | Get full field metadata for a specific template |
fill_template | Fill a template with values and return a downloadable DOCX |
connect_signing_provider | Connect DocuSign account via OAuth (returns a URL to open) |
send_for_signature | Send a filled DOCX for e-signature via DocuSign |
check_signature_status | Check signing status and download signed PDF when complete |
list_templates (returns compact list). If user asked for a specific type (e.g. "NDA"), identify the right template from the list.get_template with the chosen template_id to get full field definitions (name, type, required, section, description, default).fill_template with the template ID and values. Returns a download URL for the DOCX.send_for_signature with the download URL and signer details. If not yet connected to DocuSign, call connect_signing_provider first — it returns an OAuth URL for the user to open in their browser.check_signature_status to monitor the envelope.If no MCP server is connected, fall back to the CLI.
if command -v open-agreements >/dev/null 2>&1; then
echo "GLOBAL"
elif command -v node >/dev/null 2>&1; then
echo "NPX"
else
echo "PREVIEW_ONLY"
fi
open-agreements directly.npx -y open-agreements@0.7.4 as prefix. Always pin the version — never use @latest to avoid pulling unexpected updates.open-agreements list --json
Parse the items array. Each item has name, description, license, source_url, source, and fields.
Same as MCP workflow steps 2-5, but write values to /tmp/oa-values.json and run:
open-agreements fill <template-name> -d /tmp/oa-values.json -o <output-name>.docx
Clean up: rm /tmp/oa-values.json
Open Agreements is fully open source (MIT license). Review the complete source before installing:
npm view open-agreements scripts. The package declares no postinstall, preinstall, or install hooks. The prepare script only runs when installing from a git URL, not from the npm registry.All template field definitions, fill logic, and DocuSign integration code are auditable in the repository.
The two version numbers in this skill are independent and refer to different things:
0.2.3) — versions the skill documentation itself.0.7.4) — the version of the upstream open-agreements npm package this skill recommends pinning. Check npm view open-agreements version for the latest.A newer skill version means the documentation was updated. A newer npm package version means the underlying tool was updated. They are not synchronized.
Open Agreements has three distinct network postures depending on which execution path you use:
| Path | Install-time network | Runtime network |
|---|---|---|
Pinned global install (npm install -g open-agreements@0.7.4) | One-time fetch from registry.npmjs.org | None for list/fill. DocuSign API only at signing time. |
Pinned npx (npx -y open-agreements@0.7.4) | Fetch from registry.npmjs.org on first run, cached afterward | Same as above |
Remote MCP (https://openagreements.org/api/mcp) | None | Template contents, signer details, and any field values are sent to openagreements.org. Use only if you accept transmitting these values to the hosted service. |
| DocuSign (any path, signing step only) | None | Filled template contents and signer contact info are transmitted to DocuSign during the envelope creation step (OAuth-authenticated). |
Use the local CLI path (global or npx) if you need guaranteed offline behavior with no third-party data transfer beyond DocuSign at signing time.
For environments where npx auto-fetch is unacceptable, install the package globally and pin the version:
# Install a specific pinned version globally (one-time)
npm install -g open-agreements@0.7.4
# Then use the installed binary directly — no npx fetching at runtime
open-agreements list --json
open-agreements fill <template-name> -d values.json -o output.docx
Before upgrading, review the changelog: https://github.com/open-agreements/open-agreements/blob/main/CHANGELOG.md
Even with npx, always pin the version:
npx -y open-agreements@0.7.4 list --json
Never use @latest — it pulls a fresh package on every cache miss and can introduce unexpected changes.
For the full template-filling workflow (applicable to all agreement skills), see template-filling-execution.md.
list_templates or list --json for the current inventoryIf this skill helped, star us on GitHub: https://github.com/open-agreements/open-agreements
On ClawHub: clawhub star open-agreements/open-agreements