# pen.dev vs Subframe > pen.dev scores 47.6 (D) to Subframe's 39.7 (E) for design files. Prices, MCP, x402, uptime and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/pen-dev-vs-subframe - Markdown: https://www.anchorterminal.com/compare/pen-dev-vs-subframe.md (~2,300 tokens) - Slim: https://www.anchorterminal.com/compare/pen-dev-vs-subframe.min.md (~730 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/pen-dev-vs-subframe.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-09 pen.dev scores 47.6 (D) on agent readiness against Subframe's 39.7 (E), and leads in 4 of 7 scored categories. Subframe leads on security & auth and maintenance & community. Both do design files. - pen.dev: grade D, 47.6/100, rank #832 of 950. Markdown https://www.anchorterminal.com/tools/pen-dev.md · JSON https://www.anchorterminal.com/api/v1/tools/pen-dev.json - Subframe: grade E, 39.7/100, rank #915 of 950. Markdown https://www.anchorterminal.com/tools/subframe.md · JSON https://www.anchorterminal.com/api/v1/tools/subframe.json - Best design workspace and canvas APIs for AI agents: https://www.anchorterminal.com/best/design/index.md - All 49 design comparisons: https://www.anchorterminal.com/compare/design/index.md ## Which one, for what ### pen.dev (D) Good for: A coding agent that designs screens beside the code and keeps them in Git, including in CI. Ahead on: - Reliability, 33 against 19 - Schema & documentation, 61 against 54 - Agent ergonomics, 66 against 47 - Payments & pricing, 38 against 33 Also in its favour: - Runs on your own machine - No incidents deducted, where Subframe loses 3 points for them Watch for: No changelog. The three desktop releases on GitHub have empty notes, and the format docs reserve the right to make breaking changes ### Subframe (E) Good for: A coding agent working beside a team that designs React and Tailwind interfaces in Subframe and wants the design as code, with a read-only route for review. Ahead on: - Security & auth, 44 against 33 - Maintenance & community, 65 against 59 Also in its favour: - A hosted endpoint, with nothing to install Watch for: 46 tools are documented with no toolsets, and the vendor's `design` skill that explains them is about 55 KB of text ## Score by category | Category | Weight | pen.dev | Subframe | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 33 | 19 | pen.dev +14 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 61 | 54 | pen.dev +7 | | Agent ergonomics | 13% (16.2 this run) | 66 | 47 | pen.dev +19 | | Security & auth | 14% (17.5 this run) | 33 | 44 | Subframe +11 | | Payments & pricing | 10% (12.5 this run) | 38 | 33 | pen.dev +5 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 59 | 65 | Subframe +6 | | Transparency & trust | 7% (8.8 this run) | 53 | 57 | Subframe +4 | | Negative events | ≤15 | 0 | -3 | | | **Total** | | **47.6 · D** | **39.7 · E** | | ## Facts side by side | Fact | pen.dev | Subframe | | --- | --- | --- | | Kind | MCP server | MCP server | | Vendor | High Agency, Inc. | Atomic Design Inc | | Hosted endpoint | no (local only) | `https://mcp.subframe.com/mcp` | | Transports | stdio | HTTP | | Auth | OAuth or key | OAuth or key | | Pricing | Freemium | Freemium | | x402 | no | no | | Licence | Proprietary. The CLI package on npm carries a proprietary licence file, and the apps fall under the vendor's EULA | Proprietary service under Atomic Design's terms of service. `@subframe/cli` and `@subframe/core` are marked ISC in their package files and the Claude Code plugin MIT in its manifest, with no licence file in the repository | | Tools exposed | 6 | 46 | | Read-only variant documented | no | yes | | llms.txt | no | yes | | Last release | 2026-10-08 | 2026-10-08 | | Terms last updated | 2026-10-06 | 2026-01-22 | | Privacy policy last updated | 2026-10-06 | 2026-01-22 | | Customer content may train models | not found in the text | not found in the text | | Terms restrict automated access | yes | not found in the text | | Terms restrict benchmarking | yes | not found in the text | | Terms or service can change without notice | not found in the text | not found in the text | | Arbitration or class-action waiver | not found in the text | not found in the text | | Popularity | 3.5k npm/wk | 435 stars, 1k npm/wk | ## Verdicts **pen.dev.** An agent can create, edit and export `.pen` designs without a GUI through the `pen` CLI, with four compact MCP tools that carry annotations and a documented JSON format. The software is closed and needs a pen.dev account. No changelog, status page or security contact was found, and 14 public issue reports had no reply on 8 October 2026. **Subframe.** An agent can read and change pages, components, snippets and themes in a Subframe project through a hosted MCP server with OAuth, and Viewer accounts get a read-only server. The server lists 46 tools, and no status page, rate limits, changelog or security contact were found. Three tools were renamed in September 2026 with no notice found. ## Before you call either ### pen.dev 1. Call `read_skill()`, then `read_skill({ path: "pen-schema.md" })` and `read_skill({ path: "execute.md" })` before the first `execute`. The tool description alone doesn't document the operations 2. Call `get_app_state()` and confirm the active document before editing. The MCP server works on whichever `.pen` file is open in the app 3. In headless `pen interactive`, call `save()` before `exit()`, and keep `--in` and `--out` on different paths to preserve the source 4. Check that an export file exists. The docs say an export failure can print an error without a nonzero exit status 5. In CI set `PEN_CLI_KEY` plus a provider key such as `ANTHROPIC_API_KEY`. Run `pen version`, since `pen --version` is not a flag ### Subframe 1. Connect with an MCP client that supports OAuth. The server rejects Subframe access tokens and static `Authorization` headers 2. Pass `projectId` on every call. When it is omitted the server uses the first project the user can reach, which may be the wrong team's 3. After `design_page`, `design_component` or `edit_component`, call `wait_for_jobs` with the `jobId` before reading the result. Earlier reads return stale content 4. Ask the owner before any delete tool or a theme token deletion. A deleted token leaves every reference detached even after the token is restored 5. For the CLI, set `SUBFRAME_AUTH_TOKEN` and `DO_NOT_TRACK=1`, and point `--dir` at a folder that holds only Subframe code, because a full sync removes other unprotected files ## Questions ### Which is better for AI agents, pen.dev or Subframe? pen.dev scores 47.6 (D) on agent readiness against Subframe's 39.7 (E), and leads in 4 of 7 scored categories. Subframe leads on security & auth and maintenance & community. ### Do pen.dev and Subframe need an API key? Both take an API key or an OAuth sign-in. ### Can an agent call pen.dev and Subframe without installing anything? pen.dev runs on your own machine, with no hosted endpoint listed. Subframe has a hosted endpoint at https://mcp.subframe.com/mcp. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/pen-dev-vs-subframe.json, and with the fewest tokens: https://www.anchorterminal.com/compare/pen-dev-vs-subframe.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "pen-dev", "b": "subframe"}`. From a terminal: `anchor compare pen-dev subframe` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/pen-dev.json and https://www.anchorterminal.com/api/v1/tools/subframe.json ## Other comparisons with pen.dev or Subframe - [Figma API + MCP vs pen.dev](https://www.anchorterminal.com/compare/figma-mcp-vs-pen-dev.md) - [Figma API + MCP vs Subframe](https://www.anchorterminal.com/compare/figma-mcp-vs-subframe.md) - [Framer Server API vs pen.dev](https://www.anchorterminal.com/compare/framer-vs-pen-dev.md) - [Framer Server API vs Subframe](https://www.anchorterminal.com/compare/framer-vs-subframe.md) - [Miro API + MCP vs pen.dev](https://www.anchorterminal.com/compare/miro-vs-pen-dev.md) - [Miro API + MCP vs Subframe](https://www.anchorterminal.com/compare/miro-vs-subframe.md) - [pen.dev vs Penpot API + MCP](https://www.anchorterminal.com/compare/pen-dev-vs-penpot.md) - [pen.dev vs Sketch](https://www.anchorterminal.com/compare/pen-dev-vs-sketch.md) - [pen.dev vs Zeplin](https://www.anchorterminal.com/compare/pen-dev-vs-zeplin.md) - [Penpot API + MCP vs Subframe](https://www.anchorterminal.com/compare/penpot-vs-subframe.md) - [Sketch vs Subframe](https://www.anchorterminal.com/compare/sketch-vs-subframe.md) - [Subframe vs Zeplin](https://www.anchorterminal.com/compare/subframe-vs-zeplin.md) - [Melius vs pen.dev](https://www.anchorterminal.com/compare/melius-vs-pen-dev.md) - [Melius vs Subframe](https://www.anchorterminal.com/compare/melius-vs-subframe.md)