
Research
/Security News
Trivy Under Attack Again: Widespread GitHub Actions Tag Compromise Exposes CI/CD Secrets
Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.
open-agreements
Advanced tools
Demo: Claude fills a Common Paper Mutual NDA in under 2 minutes. Sped up for brevity.
Fill standard legal agreement templates and produce signable DOCX files. Templates cover NDAs, cloud terms, employment docs, contractor agreements, SAFEs, and NVCA financing documents.
Open Agreements by UseJunior — part of the UseJunior developer tools. In production at Am Law 100 firms.
main.openagreements.openstatus.dev.codecov.yml.npm run check:spec-coverage. For a local matrix export, run npm run check:spec-coverage -- --write-matrix integration-tests/OPENSPEC_TRACEABILITY.md.npm run check:source-drift) verifies expected source hash plus structural replacement/normalize anchors.docs/assumptions.md and validated via targeted regression tests + CI gates.config/libreoffice-headless.json); run npm run check:libreoffice before visual Allure evidence tests.OpenAgreements supports two execution modes with different trust boundaries:
https://openagreements.ai/api/mcp) for fast setup in Claude.npx, global install, or local stdio MCP package) for machine-local workflows.There is no global default mode recommendation. Choose based on document sensitivity, internal policy, and workflow speed needs. See docs/trust-checklist.md for a 60-second data-flow summary.
OpenAgreements works as a Claude Code plugin and Agent Skill. No pre-installation required — Claude downloads and runs the CLI on demand via npx.
npx skills add open-agreements/open-agreements
Then ask Claude to draft an agreement:
> Draft an NDA between Acme Corp and Beta Inc
Claude discovers available templates, interviews you for field values, and renders a signed-ready DOCX.
gemini extensions install https://github.com/open-agreements/open-agreements
Then ask Gemini to draft an agreement. The extension provides MCP tools, context files, and skills for template discovery and filling.
If you have Node.js >= 20, just ask Claude:
> Fill the Common Paper mutual NDA for my company
Claude runs npx -y open-agreements@latest list --json to discover templates, then npx -y open-agreements@latest fill <template> to render the output. Zero install.
# Install globally
npm install -g open-agreements
# List available templates
open-agreements list
# Fill a template
open-agreements fill common-paper-mutual-nda -d values.json -o my-nda.docx
list --json to discover available templates and their fieldsfill <template> to render a DOCX preserving all original formattingThis repository includes a Cursor plugin manifest with MCP wiring:
.cursor-plugin/plugin.jsonmcp.jsonskills/open-agreements/SKILL.mdThe default MCP setup in mcp.json includes:
https://openagreements.ai/api/mcp)npx -y @open-agreements/contracts-workspace-mcp)npx -y @open-agreements/contract-templates-mcp)To publish this plugin in Cursor Marketplace, submit this repository at:
28 templates across three tiers. Run open-agreements list for the full inventory.
| Tier | Count | Source | How It Works |
|---|---|---|---|
| Internal templates | 17 | Common Paper, Bonterms, OpenAgreements | Shipped in package, CC BY 4.0 |
| External templates | 4 | Y Combinator | Vendored unchanged, CC BY-ND 4.0 |
| Recipes | 7 | NVCA | Downloaded on demand (not redistributable) |
Internal templates (NDAs, cloud terms, employment forms, contractor agreements, etc.) are CC BY 4.0 — we ship the DOCX with {tag} placeholders.
External templates (YC SAFEs) are CC BY-ND 4.0 — we vendor the original unchanged. The filled output is a transient derivative on your machine.
Recipes (NVCA financing documents) are freely downloadable but not redistributable — we ship only transformation instructions and download the source DOCX from nvca.org at runtime.
Source documents contain expert commentary — footnotes, drafting notes, [Comment: ...] blocks — written by domain specialists (e.g., securities lawyers). The recipe cleaner removes this content to produce a fillable document, but can also extract it as structured JSON:
open-agreements recipe clean source.docx -o cleaned.docx \
--recipe nvca-indemnification-agreement \
--extract-guidance guidance.json
This produces a guidance.json with every removed footnote, comment, and drafting note tagged by source type and document position. The guidance is a local-only artifact (not committed or shipped) that AI agents or human authors can reference while filling the form. See Adding Recipes — Guidance Extraction for format details.
Why programmatic extraction? The source document is the single source of truth. Re-running extraction after a publisher update produces fresh guidance with zero manual effort, preserves the exact language of domain experts, and captures everything — an AI can summarize on the fly, but cannot recover discarded content.
Each template is a self-contained directory:
content/templates/<name>/
├── template.docx # DOCX with {tag} placeholders
├── metadata.yaml # Fields, license, source, attribution
└── README.md # Template-specific documentation
fill <template>Render a filled DOCX from a template.
# Using a JSON data file
open-agreements fill common-paper-mutual-nda -d data.json -o output.docx
# Using inline --set flags
open-agreements fill common-paper-mutual-nda --set party_1_name="Acme Corp" --set governing_law="Delaware"
validate [template]Run the validation pipeline on one or all templates.
open-agreements validate # All templates
open-agreements validate common-paper-mutual-nda # One template
listShow available templates with license info and field counts.
open-agreements list
# Machine-readable JSON output (for agent skills and automation)
open-agreements list --json
OpenAgreements now includes a sibling package for repository/workspace operations:
@open-agreements/contracts-workspaceopen-agreements-workspacedocs/contracts-workspace.mdThis package is intentionally separate from open-agreements so teams can adopt:
Core workspace features:
init planning (minimal suggested structure with top-level domains)_executed statusThe v1 model is filesystem-only and works in locally synced cloud-drive folders (for example, Google Drive sync). No Drive API/OAuth integration is required.
For local connector demos, there is a local stdio MCP package:
@open-agreements/contracts-workspace-mcpopen-agreements-workspace-mcpdocs/contracts-workspace.mdQuick start:
npm run build:workspace-mcp
node packages/contracts-workspace-mcp/bin/open-agreements-workspace-mcp.js
For local Gemini/Cursor template drafting flows, use:
@open-agreements/contract-templates-mcpopen-agreements-contract-templates-mcpQuick start:
npm run build:contract-templates-mcp
node packages/contract-templates-mcp/bin/open-agreements-contract-templates-mcp.js
A static marketing site is generated from site/ with Eleventy.
site/index.njk, site/templates.njk, site/template-detail.njksite/styles.csssite/assets/demo-fill-nda.gifvercel.jsonnpm run build:site): _site/llms.txt, _site/llms-full.txt, _site/sitemap.xml, _site/robots.txtLocal preview:
npm run build:site
python3 -m http.server 8080 --directory _site
Then open http://localhost:8080.
Vercel deploy notes:
vercel.json deploys _site/ as static outputOpen Agreements includes AI agent skills for ISO 27001 and SOC 2 compliance work. These are markdown-only procedural skills — no scripts executed, no secrets required, evidence stays local. Developed with Hazel Castro (ISO 27001 Lead Auditor, 14+ years, 100+ audits).
Collect, organize, and validate evidence for ISO 27001 and SOC 2 audits. API-first approach with CLI commands for major cloud platforms. Produces timestamped, auditor-ready evidence packages.
npx skills add open-agreements/open-agreements --skill iso-27001-evidence-collection
Run a structured internal audit against ISO 27001:2022. Walk through controls by domain, identify gaps, collect evidence, and generate findings with corrective action recommendations.
npx skills add open-agreements/open-agreements --skill iso-27001-internal-audit
Assess SOC 2 Type II readiness. Map Trust Services Criteria to controls, identify gaps, and build a prioritized remediation plan with NIST SP 800-53 cross-mapping.
npx skills add open-agreements/open-agreements --skill soc2-readiness
All three skills use NIST SP 800-53 (public domain) as their canonical reference. Browse the full skill catalog at skills.sh/open-agreements.
To support logical unbundling as form libraries grow, open-agreements can load content from additional roots via:
OPEN_AGREEMENTS_CONTENT_ROOTSdirA:dirB on macOS/Linux)templates/, external/, and/or recipes/ (or nested under content/)Lookup precedence is:
OPEN_AGREEMENTS_CONTENT_ROOTS (in listed order)This keeps default installs simple while allowing advanced users to move large content libraries outside the core package.
See CONTRIBUTING.md for how to add templates, recipes, and other improvements.
Releases are automated through GitHub Actions using npm trusted publishing (OIDC) with provenance enabled.
git push origin main --tags~/.gemini/extensions/open-agreements and verify both local MCP servers start/respond).Release workflow publishes from the tag after running build, validation, tests, isolated runtime smoke, and package checks.Workflow guardrails:
origin/mainToolCommandAdapter interfacecontent/ # All content directories
├── templates/ # Internal templates (CC BY 4.0)
├── external/ # External templates (CC BY-ND 4.0)
└── recipes/ # Recipes (downloaded at runtime)
src/ # TypeScript source + collocated unit tests
├── cli/ # Commander.js CLI
├── commands/ # fill, validate, list, recipe, scan
├── core/
│ ├── engine.ts # docx-templates wrapper
│ ├── metadata.ts # Zod schemas + loader
│ ├── recipe/ # Recipe pipeline (clean → patch → fill → verify)
│ ├── external/ # External template support
│ ├── validation/ # template, license, output, recipe
│ └── command-generation/
│ ├── types.ts # ToolCommandAdapter interface
│ └── adapters/ # Claude Code adapter
└── index.ts # Public API
integration-tests/ # Integration and end-to-end tests
MIT
Template content is licensed by their respective authors — CC BY 4.0 (Common Paper, Bonterms), CC BY-ND 4.0 (Y Combinator), or proprietary (NVCA, downloaded at runtime). See each template's metadata.yaml for details.
npx, global install, stdio MCP): all processing happens on your machine. No document content is sent externally.https://openagreements.ai/api/mcp): template filling runs server-side. No filled documents are stored after the response is returned.See our Privacy Policy for details.
This tool generates documents from standard templates. It does not provide legal advice. No affiliation with or endorsement by Common Paper, Bonterms, Y Combinator, NVCA, or any template source is implied. Consult an attorney for legal guidance.
FAQs
Open-source legal template filling CLI and library
The npm package open-agreements receives a total of 102 weekly downloads. As such, open-agreements popularity was classified as not popular.
We found that open-agreements demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.

Security News
ENISA’s new package manager advisory outlines the dependency security practices companies will need to demonstrate as the EU’s Cyber Resilience Act begins enforcing software supply chain requirements.

Research
/Security News
We identified over 20 additional malicious extensions, along with over 20 related sleeper extensions, some of which have already been weaponized.