diff --git a/PLAN.md b/PLAN.md index dd9e5e855..a6b6f1f10 100644 --- a/PLAN.md +++ b/PLAN.md @@ -1079,6 +1079,7 @@ Tauri v2 desktop app (macOS, Windows, Linux). Web app at app.openpencil.dev. CLI ### What's next - **Multi-file / tabs** — open multiple documents in tabs within a single window +- **More AI providers** — Anthropic API, Claude Code subscription, Gemini, local models via Ollama - **Code signing** — Apple & Azure certificates for properly signed desktop binaries - **.fig compatibility** — improving import/export fidelity across a larger set of real-world files - **Port all figma-use tools** — bring the full 118-tool set from [figma-use](https://github.com/dannote/figma-use) into the editor (currently 26/118) for complete AI agent design capabilities diff --git a/README.md b/README.md index 161676739..3f2da9deb 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Open-source, AI-native design editor. Figma-compatible, AI-first, fully local. > **What's next** > > - Multi-file / tabs support +> - More AI providers (Anthropic API, Claude Code subscription, Gemini, local models via Ollama) > - Code signing (Apple & Azure certificates for properly signed binaries) > - Improving .fig compatibility across a larger set of files > - Porting all [figma-use](https://github.com/dannote/figma-use) tools (118 → 26 currently) for full AI agent design capabilities @@ -18,7 +19,7 @@ Open-source, AI-native design editor. Figma-compatible, AI-first, fully local. ## Why -Figma is a closed platform that actively fights programmatic access. In February 2026, [Figma 126.1.2 started stripping `--remote-debugging-port`](https://forum.figma.com/report-a-problem-6/remote-debugging-port-not-working-in-figma-desktop-126-1-2-50858) on startup — killing CDP-based automation tools like [figma-use](https://github.com/dannote/figma-use) that filled gaps Figma refused to address. Their own MCP server, launched months after figma-use proved the demand, still can't create or modify designs — it's read-only. +Figma is a closed platform that actively fights programmatic access. Their [MCP server](https://www.figma.com/blog/introducing-figma-mcp-server/), launched in June 2025, was read-only — you could pull design context but not create or modify anything. [figma-use](https://github.com/dannote/figma-use) filled that gap in January 2026 with full read/write design automation via CDP. A month later, [Figma 126.1.2 started stripping `--remote-debugging-port`](https://forum.figma.com/report-a-problem-6/remote-debugging-port-not-working-in-figma-desktop-126-1-2-50858) on startup — killing CDP-based tools. Figma has since added UI-to-Figma capture via their MCP server, but it still can't programmatically create or modify design nodes. This is a supply chain problem. Designers and developers build workflows on top of their design tool. When that tool is closed-source, the vendor controls what's possible. They can break your tooling overnight with a point release. Your design files are in a proprietary binary format that only their software can fully read. diff --git a/packages/docs/development/roadmap.md b/packages/docs/development/roadmap.md index 7d5e922e0..fb0d835f6 100644 --- a/packages/docs/development/roadmap.md +++ b/packages/docs/development/roadmap.md @@ -107,13 +107,13 @@ Core extraction, CLI, MCP server, design guidelines, screenshot verification loo - .fig roundtrip tests with LFS fixtures (material3.fig 87K nodes, nuxtui.fig 314K nodes) - .fig import O(n²) → O(n) fix (37s → 535ms on 87K nodes), ByteBuffer optimization - test:coverage script -- AI chat: OpenRouter direct (no backend), Stronghold key storage, 10 tools (create_shape, set_fill, etc.), model selector, ⌘J toggle, streaming markdown, Playwright tests with mock transport +- AI chat: OpenRouter direct (no backend), Stronghold key storage, 26 tools (create_shape, set_fill, set_effects, set_constraints, components, groups, pages, variables, eval_code, etc.), model selector, ⌘J toggle, streaming markdown, Playwright tests with mock transport - Code panel: sceneNodeToJsx() export, Prism.js highlighting, line numbers, copy button, 14 tests - Properties panel restructured: Design | Code | AI tabs - npm publishing preparation for core and cli packages **Planned:** -- Port MCP server from figma-use (117 tools) +- Port remaining figma-use tools (118 total, 26 currently implemented) - Attached mode: WebSocket to running editor for eval, create, export, screenshot - Design guidelines system - AI-driven design workflow via MCP diff --git a/packages/docs/guide/features.md b/packages/docs/guide/features.md index 57d09e833..923b0173e 100644 --- a/packages/docs/guide/features.md +++ b/packages/docs/guide/features.md @@ -207,7 +207,7 @@ Built-in AI assistant accessible via the AI tab in the properties panel or **Model selector** with curated models: Claude, Gemini, GPT, DeepSeek, Qwen, Kimi, Llama — stored in `@open-pencil/core` constants with benchmark-ranked tags. Responses stream as markdown (vue-stream-markdown). -**10 AI tools** wired to the editor store with valibot schemas: `create_shape`, `set_fill`, `set_stroke`, `update_node`, `set_layout`, `delete_node`, `select_nodes`, `get_page_tree`, `get_selection`, `rename_node`. The ToolLoopAgent executes tools automatically in a loop. Tool calls display as collapsible timeline entries in the chat (reka-ui Collapsible). +**26 AI tools** defined in `packages/core/src/tools/schema.ts` with valibot schemas: read tools (`get_selection`, `get_page_tree`, `get_node`, `find_nodes`, `list_pages`, `list_variables`, `list_collections`), create tools (`create_shape`, `render`, `create_component`, `create_instance`), modify tools (`set_fill`, `set_stroke`, `set_effects`, `update_node`, `set_layout`, `set_constraints`, `rename_node`, `reparent_node`, `clone_node`, `delete_node`), organize tools (`select_nodes`, `group_nodes`, `ungroup_node`, `switch_page`), and `eval_code` escape hatch. Tool calls display as collapsible timeline entries in the chat (reka-ui Collapsible). Tested with Playwright using mock transport for CI. diff --git a/packages/docs/guide/figma-comparison.md b/packages/docs/guide/figma-comparison.md index 6efec7011..0e47aaf6b 100644 --- a/packages/docs/guide/figma-comparison.md +++ b/packages/docs/guide/figma-comparison.md @@ -27,7 +27,7 @@ Feature-by-feature comparison of Figma Design capabilities with Open Pencil's cu | Layer outlines view | 🔲 | Wireframe view of all layers | | Custom file thumbnails | 🔲 | Thumbnail generated on export, but no custom thumbnail picker | | Nudge value settings | 🔲 | Default 1px/10px; Figma allows custom small/big nudge values | -| AI tools | 🟡 | 10 AI tools via OpenRouter (create/modify/delete shapes, fills/strokes, layout); no AI-generated images or AI-powered search yet | +| AI tools | 🟡 | 26 AI tools via OpenRouter (create/modify/delete shapes, fills/strokes/effects, layout, constraints, components, groups, pages, variables); no AI-generated images or AI-powered search yet | ## Layers & Shapes @@ -208,8 +208,8 @@ Feature-by-feature comparison of Figma Design capabilities with Open Pencil's cu | Code Connect | 🔲 | Link design components to code | | Code snippets | 🟡 | JSX export with syntax highlighting and copy; no CSS/Swift/Kotlin snippets | | Figma for VS Code | 🔲 | Editor plugin integration | -| MCP server | 🔲 | Planned for Phase 5; 117-tool MCP server from figma-use | -| CLI tools | 🟡 | Headless CLI: info, tree, find, export, analyze (colors/typography/spacing/clusters), node, pages, variables; MCP server not yet | +| MCP server | 🔲 | Planned; porting 118 tools from figma-use (26 currently available as AI tools) | +| CLI tools | 🟡 | Headless CLI: info, tree, find, export, analyze (colors/typography/spacing/clusters), node, pages, variables, eval; MCP server not yet | ## Figma Draw