{ "name": "openpencil", "version": "0.5.1", "description": "The world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.", "author": { "name": "ZSeven-W", "email": "xkayshen@gmail.com" }, "private": true, "type": "module", "workspaces": [ "packages/*", "apps/*" ], "main": "out/desktop/main.cjs", "bin": { "openpencil-mcp": "out/mcp-server.cjs" }, "scripts": { "dev": "cd apps/web && bun --bun vite dev --port 3000", "build": "cd apps/web && bun --bun vite build", "preview": "cd apps/web && bun --bun vite preview", "test": "cd apps/web && bun --bun vitest run --passWithNoTests", "mcp:compile": "cd apps/web && esbuild src/mcp/server.ts --bundle --platform=node --target=node20 --outfile=../../out/mcp-server.cjs --format=cjs --sourcemap --alias:@=src --alias:@zseven-w/pen-types=../../packages/pen-types/src --alias:@zseven-w/pen-core=../../packages/pen-core/src --alias:@zseven-w/pen-codegen=../../packages/pen-codegen/src --alias:@zseven-w/pen-figma=../../packages/pen-figma/src --alias:@zseven-w/pen-renderer=../../packages/pen-renderer/src --alias:@zseven-w/pen-sdk=../../packages/pen-sdk/src --define:import.meta.env={} --external:canvas --external:paper", "mcp:dev": "bun run apps/web/src/mcp/server.ts", "electron:dev": "bun run apps/desktop/dev.ts", "electron:compile": "esbuild apps/desktop/main.ts apps/desktop/preload.ts --bundle --platform=node --target=node20 --outdir=out/desktop --external:electron --format=cjs --out-extension:.js=.cjs --sourcemap", "electron:build": "BUILD_TARGET=electron bun --bun run build && bun run electron:compile && bun run mcp:compile && bun run cli:compile && npx electron-builder --config apps/desktop/electron-builder.yml", "electron:build:mac-arm64": "BUILD_TARGET=electron bun --bun run build && bun run electron:compile && bun run mcp:compile && bun run cli:compile && npx electron-builder --config apps/desktop/electron-builder.yml --mac --arm64 && if [ -f out/release/latest-mac.yml ]; then mv out/release/latest-mac.yml out/release/latest-mac-arm64.yml; fi", "electron:build:mac-x64": "BUILD_TARGET=electron bun --bun run build && bun run electron:compile && bun run mcp:compile && bun run cli:compile && npx electron-builder --config apps/desktop/electron-builder.yml --mac --x64", "electron:build:mac-universal": "BUILD_TARGET=electron bun --bun run build && bun run electron:compile && bun run mcp:compile && bun run cli:compile && npx electron-builder --config apps/desktop/electron-builder.yml --mac --arm64 --x64", "electron:build:mac-both": "bun run electron:build:mac-arm64 && bun run electron:build:mac-x64", "cli:compile": "cd apps/web && esbuild ../cli/src/index.ts --bundle --platform=node --target=node20 --outfile=../cli/dist/openpencil-cli.cjs --format=cjs --sourcemap --alias:@=src --alias:@zseven-w/pen-types=../../packages/pen-types/src --alias:@zseven-w/pen-core=../../packages/pen-core/src --alias:@zseven-w/pen-codegen=../../packages/pen-codegen/src --alias:@zseven-w/pen-figma=../../packages/pen-figma/src --alias:@zseven-w/pen-renderer=../../packages/pen-renderer/src --alias:@zseven-w/pen-sdk=../../packages/pen-sdk/src --define:import.meta.env={} --external:canvas --external:paper", "cli:dev": "bun run apps/cli/src/index.ts", "publish:beta": "bash scripts/publish-beta.sh", "unpublish": "bash scripts/unpublish.sh", "bump": "sh -c 'V=$0; [ -z \"$V\" ] && echo \"Usage: bun run bump \" && exit 1; for f in package.json apps/*/package.json packages/*/package.json; do [ -f \"$f\" ] && jq --arg v \"$V\" \".version=\\$v\" \"$f\" > \"$f.tmp\" && mv \"$f.tmp\" \"$f\" && echo \"$f → $V\"; done'" }, "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.2.47", "@anthropic-ai/sdk": "^0.77.0", "h3": "^2.0.1-rc.18", "@fontsource-variable/inter": "^5.2.8", "@fontsource/dm-sans": "^5.2.8", "@fontsource/inter": "^5.2.8", "@fontsource/lato": "^5.2.7", "@fontsource/montserrat": "^5.2.8", "@fontsource/nunito": "^5.2.7", "@fontsource/open-sans": "^5.2.7", "@fontsource/playfair-display": "^5.2.8", "@fontsource/poppins": "^5.2.7", "@fontsource/raleway": "^5.2.8", "@fontsource/roboto": "^5.2.10", "@fontsource/source-sans-3": "^5.2.9", "@github/copilot-sdk": "^0.1.32", "@iconify-json/feather": "^1.2.1", "@iconify-json/lucide": "^1.2.93", "@iconify-json/simple-icons": "^1.2.71", "@modelcontextprotocol/sdk": "^1.12.1", "@opencode-ai/sdk": "1.2.6", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slider": "^1.3.6", "@radix-ui/react-switch": "^1.2.6", "@radix-ui/react-toggle": "^1.1.10", "@radix-ui/react-tooltip": "^1.2.8", "@tailwindcss/vite": "^4.1.18", "@tanstack/react-devtools": "0.10.0", "@tanstack/react-router": "1.168.1", "@tanstack/react-router-devtools": "1.166.11", "@tanstack/react-router-ssr-query": "1.166.10", "@tanstack/react-start": "1.167.2", "@tanstack/router-plugin": "1.167.1", "canvaskit-wasm": "^0.40.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "electron-updater": "^6.6.2", "fzstd": "^0.1.1", "html2canvas": "^1.4.1", "i18next": "^25.8.14", "i18next-browser-languagedetector": "^8.2.1", "kiwi-schema": "^0.5.0", "lucide-react": "^0.545.0", "nanoid": "^5.1.6", "nitro": "npm:nitro-nightly@latest", "paper": "^0.12.18", "rbush": "^4.0.1", "react": "^19.2.0", "react-dom": "^19.2.0", "react-i18next": "^16.5.4", "tailwind-merge": "^3.4.1", "tailwindcss": "^4.1.18", "uzip": "^0.20201231.0", "vite-tsconfig-paths": "^5.1.4", "zustand": "^5.0.11" }, "devDependencies": { "@tanstack/devtools-vite": "0.6.0", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.2.0", "@types/node": "^22.10.2", "@types/rbush": "^4.0.0", "@types/react": "^19.2.0", "@types/react-dom": "^19.2.0", "@types/uzip": "^0.20201231.2", "@vitejs/plugin-react": "^5.0.4", "electron": "^35.0.0", "electron-builder": "^26.0.0", "esbuild": "^0.25.0", "graceful-fs": "^4.2.11", "jsdom": "^27.0.0", "typescript": "^5.7.2", "vite": "^7.1.7", "vitest": "^3.0.5" } }