| name | open-agreements |
| description | Navigate and use the OpenAgreements legal content library — source-cited practice guides, review checklists, 50-state law surveys, and fill-ready agreement templates. Look up state-by-state legal guides, checklists, and law surveys, or fill standard templates (NDAs, cloud service agreements, SAFEs) into signable DOCX files. Supports Common Paper, Bonterms, and Y Combinator templates. Use when the user needs a practice guide, a review checklist, a law survey, to draft a legal agreement, create an NDA, fill a contract template, or generate a SAFE. |
| license | Apache-2.0 |
| homepage | https://github.com/open-agreements/open-agreements |
| compatibility | Two execution paths: (1) Remote MCP at openagreements.org (template fill happens server-side, your data is sent to the hosted service); (2) Local CLI via npm (`npm install -g open-agreements@0.7.4`) — template fill is fully local with no third-party data transfer. Use the CLI path for guaranteed offline behavior. |
| metadata | {"author":"open-agreements","version":"0.3.0"} |
| catalog_group | Agreement Drafting And Filling |
| catalog_order | 10 |
open-agreements
OpenAgreements is a legal content library with four kinds of first-class
content: practice guides, review checklists, law surveys, and
fill-ready agreement templates. This skill makes an agent aware of all four
and able to navigate them. Filling a template into a signable DOCX is one of
those capabilities — see the fill workflow below.
What's in OpenAgreements
| Content | What it is | How to read it |
|---|
| Practice guides | Source-cited, state-by-state explanations of what the law says (e.g. non-compete, consumer privacy, AI in hiring). | Append .md or .json to a guide's canonical URL on openagreements.org. Browse as plain markdown under legal-practice-library/. |
| Review checklists | Requirement-by-requirement checklists for reviewing an agreement against a standard form (e.g. the YC SAFE). | Append .md or .json to a checklist's canonical URL. |
| Law surveys | 50-state comparison tables for a topic. | Append .json or .csv (spreadsheet import) to a survey's canonical URL; surveys have no .md twin. |
| Agreement templates | Standard forms (Common Paper, Bonterms, Y Combinator, OpenAgreements) you can fill into signable DOCX. | Use the MCP or CLI fill workflow below. |
For deep, jurisdiction-specific legal research, the data-privacy-law-explainer
and non-compete-contract-explainer skills wrap the practice-guide content,
bundling a per-jurisdiction snapshot offline.
Fill a template (one capability)
The rest of this skill documents the template-filling capability —
discovering a standard form and filling it into a signable DOCX. The other three
content kinds above are read-only reference content: fetch their machine-readable
twins or browse the repo directly.
Activation
Use this skill when the user wants to:
- Draft an NDA, confidentiality agreement, or cloud service agreement
- Generate a SAFE (Simple Agreement for Future Equity) for a startup investment
- Fill a legal template with their company details
- Generate a filled DOCX from a standard form
Execution — MCP Tools (Preferred)
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
Available MCP Tools
| Tool | Purpose |
|---|
list_templates | List available templates as a paginated compact catalog (template_id, display_name, category, description, field_count, priority_field_count). Pages with cursor + limit (default 25, max 100). |
get_template | Get full field metadata for a specific template |
fill_template | Fill a template with values and return a downloadable DOCX |
MCP Workflow
- Discover templates: Call
list_templates (returns a compact, paginated catalog — page with cursor + limit until next_cursor is null). If you know the topic ahead of time, prefer search_templates over a full catalog walk. If user asked for a specific type (e.g. "NDA"), identify the right template from the list.
- Get field details: Call
get_template with the chosen template_id to get full field definitions (name, type, required, section, description, default).
- Collect field values: Ask the user for values based on the field definitions. Use defaults where the user doesn't specify.
- Fill template: Call
fill_template with the template ID and values. Returns a download URL for the DOCX.
- User reviews document: Present the download link. Wait for the user to confirm the document looks good.
Confirm-before-signing fields (statutory compliance representations)
A few templates have boolean fields that recite a past statutory-compliance
fact someone must actually have performed (e.g. "the required advance notice
was given before signing"). Their get_template description begins with
CONFIRM-BEFORE-SIGNING, and they default to false.
- You MUST ask the human to confirm the fact actually happened before setting
one of these fields to
true. Setting it true asserts a real-world fact; do
not infer it from context.
- When such a field is left
false (unconfirmed) and the clause applies, the
filled DOCX is not broken — the recital renders followed by a yellow
[CONFIRM before signing: …] bracket, and a matching yellow notice appears on
page one listing each item still needing confirmation. Tell the user these
yellow brackets must be confirmed and deleted before the agreement is signed.
- Once the human confirms, set the field to
true and the document renders
clean (no bracket, no page-one notice).
Execution — CLI (Fallback)
If no MCP server is connected, fall back to the CLI.
Step 1: Detect runtime
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
- GLOBAL: Use
open-agreements directly.
- NPX: Use
npx -y open-agreements@0.7.4 as prefix. Always pin the version — never use @latest to avoid pulling unexpected updates.
- PREVIEW_ONLY: No Node.js. Generate markdown preview only.
Step 2: Discover templates
open-agreements list --json
Parse the items array. Each item has name, description, license, source_url, source, and fields.
Step 3: Help user choose, collect values, fill
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
Source Code and Audit
Open Agreements is fully open source (Apache-2.0 license). Review the complete source before installing:
All template field definitions and fill logic are auditable in the repository.
A note on versions
The two version numbers in this skill are independent and refer to different things:
- Skill version (in this file's frontmatter, currently
0.3.0) — versions the skill documentation itself.
- npm package version (currently
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.
Install-Time vs Runtime Network Behavior
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. |
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 and any field values are sent to openagreements.org. Use only if you accept transmitting these values to the hosted service. |
Use the local CLI path (global or npx) if you need guaranteed offline behavior with no third-party data transfer.
Offline / Pinned Installation
For environments where npx auto-fetch is unacceptable, install the package globally and pin the version:
npm install -g open-agreements@0.7.4
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
Pin the version even when using npx
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.
Shared Execution Reference
For the full template-filling workflow (applicable to all agreement skills), see template-filling-execution.md.
Notes
- All templates produce Word DOCX files that preserve original formatting
- Templates are licensed by their respective authors (CC BY 4.0, CC0, or CC BY-ND 4.0)
- External templates (CC BY-ND 4.0, e.g. YC SAFEs) can be filled for your own use but must not be redistributed in modified form
- This tool does not provide legal advice — consult an attorney
- Templates are discovered dynamically — always use
list_templates or list --json for the current inventory
Feedback
If this skill helped, star us on GitHub: https://github.com/open-agreements/open-agreements
On ClawHub: clawhub star open-agreements/open-agreements