# Contributing ## Setup ```bash git clone https://github.com/open-pencil/open-pencil.git cd open-pencil bun install ``` ## Development ```bash bun run dev # Vite dev server on localhost:1420 bun run tauri dev # Tauri desktop app with hot reload ``` ## Quality checks Run all of these before submitting a PR: ```bash bun run check # oxlint + typecheck bun run format # oxfmt with import sorting bun run test:dupes # jscpd < 3% duplication bun test tests/engine/ # unit tests bun run test # Playwright E2E (requires dev server) ``` ## Project structure - `packages/core` — scene graph, renderer, layout, codec (zero DOM deps) - `packages/cli` — headless CLI for .fig inspection and export - `packages/mcp` — MCP server for AI tools (stdio + HTTP) - `src/` — Tauri/Vite desktop editor ## Conventions - Bun runtime, not Node - Tailwind 4 for styles, no inline CSS or `