{"_id":"@pencil.dev/cli","_rev":"12-f784c43a85ec83f6a21071b4b48f901c","name":"@pencil.dev/cli","dist-tags":{"latest":"0.2.8"},"versions":{"0.1.0":{"name":"@pencil.dev/cli","version":"0.1.0","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.1.0","maintainers":[{"name":"pserb","email":"pavel@serbajlo.com"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"314f23a330ef832d62615cd66829f9b4a4ee9a29","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.1.0.tgz","fileCount":18,"integrity":"sha512-lPjVuToTQLV9DNurYh2y8mAOgSENFd+3W7zQ6Ej7whFrGWH03e/CH1X+DB59j0XEDWrlh76M4ft9HVlxY4aWZg==","signatures":[{"sig":"MEQCIE/XXbczLTEThN9c4d0aHdv4UeUt5g6sYoB/+RTm5HTuAiBKQ89ohFDr88h+w4kUoC5WOAx3OW3Zadn/Dz4fECLM/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49994274},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d58bda50c52ba0cadd8e5eb02c30e238917e29c0","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start","lint":"biome check","build":"tsdown && npm run bundle:mcp","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*"},"_npmUser":{"name":"pserb","email":"pavel@serbajlo.com"},"_npmVersion":"11.6.2","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ws":"^8.18.3","svgo":"^4.0.0","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@highagency/pencil-skia":"^0.47.0","@anthropic-ai/claude-agent-sdk":"^0.2.72"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","@types/ws":"^8.18.1","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/ws-server":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1774007583450_0.5991087176700969","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@pencil.dev/cli","version":"0.1.1","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.1.1","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"51086aab2f80787973595c4fb734893bae5873b3","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.1.1.tgz","fileCount":12,"integrity":"sha512-uZSxqe1KjeTgFEVK9J/rKypErGTk5qPsncVwrxGuxENQqne3aSPafQrnzar0Das1jh78sasaY333cfdjG3DL7Q==","signatures":[{"sig":"MEQCIGSUO8MUTcy3t8A0bACq8ZmT+XQTMA4ZWrH6rI+7MfZhAiAxuVUkc0eIUAsSJYMT46PTHdxBp/cIaG7wb3UB3m/dMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47911422},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"797e9f876b929ff9e78b52a5402326e1ac448655","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start","lint":"biome check","build":"tsdown && npm run bundle:mcp","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.12.0","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.18.3","svgo":"^4.0.0","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@highagency/pencil-skia":"^0.47.0","@anthropic-ai/claude-agent-sdk":"^0.2.72"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","@types/ws":"^8.18.1","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/ws-server":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1774012122117_0.5226899767315005","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@pencil.dev/cli","version":"0.2.0","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.2.0","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"7f287e0073afbfcc7946f27b6515dcaa426cf55c","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.0.tgz","fileCount":12,"integrity":"sha512-sOVDg+nqyhaBf0lGuDhPWDvMp44nbaUg2p/uS6z+/H+MKfE8LgVmKqOZw30+TOa6kDQ6BJ4qoX2EyoI9/QM5ag==","signatures":[{"sig":"MEUCIQCk5yfIsflQ1iIc+XkwVApGbq/hNnIrrhUiHZtzHupwMQIgIooUcxh52w6fKwIx14E3Zh8mhm5qg1CiBie7uj+jrIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47815728},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"f5ff817bc27a0ac6d90a397897fccc993c9360ab","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start","lint":"biome check","build":"tsdown && npm run bundle:mcp","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.12.0","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.18.3","svgo":"^4.0.0","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@highagency/pencil-skia":"^0.47.0","@anthropic-ai/claude-agent-sdk":"^0.2.72"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","@types/ws":"^8.18.1","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/ws-server":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.0_1774013255472_0.8930649715747851","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@pencil.dev/cli","version":"0.2.1","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.2.1","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"9ef5511b0a917a3dce8fe990918ec38679bdb430","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.1.tgz","fileCount":12,"integrity":"sha512-1dV90BMofgAi301qrcXpohdcwX4Py/w9BT7EOO+JrXhGW7h0tIVvyHAodxURJbgLnaLXp3m1F6UM6hUFKZtY/Q==","signatures":[{"sig":"MEQCIEv1HaXgKUl1d+Comj/H+ZHOIOkmSqEz/iFqH8Q/ZC90AiAB3kAvy5VmBLztI1aRTPuaSpYOkaxrCh+DrS7Oqm0lig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47852657},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"c8ad4653b3f835ba0690ed1598f7927d5fce7715","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start","lint":"biome check","build":"tsdown && npm run bundle:mcp","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.12.0","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.18.3","svgo":"^4.0.0","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@highagency/pencil-skia":"^0.47.0","@anthropic-ai/claude-agent-sdk":"^0.2.72"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","@types/ws":"^8.18.1","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/ws-server":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.1_1774013894158_0.5999305354554505","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@pencil.dev/cli","version":"0.2.2","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.2.2","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"ae64b23f028aebc63f327ba6d0aca4f89ad4b89a","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.2.tgz","fileCount":18,"integrity":"sha512-7T+fzQLsNEREXJvjeIyN54PCZd84y9c2DSJdT1aegAT1hnxc13GCIGbtrkoQTLILS1pIHou3vSM9LER/j5bbUA==","signatures":[{"sig":"MEYCIQD9ygY2TH5jPBfCXXS+dFFhYdwWJfEpJwrIgLMd99oJ1wIhAO2JITejOZ/PvBrGp3GKmayHGmajDizpBJQ48EX7QVxt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48471019},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"961f692e2ea5f42d4bc1ff8e91826035d770ce30","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start","lint":"biome check","build":"tsdown && npm run bundle:mcp","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.12.0","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.18.3","svgo":"^4.0.0","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@highagency/pencil-skia":"^0.47.0","@anthropic-ai/claude-agent-sdk":"^0.2.72"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","@types/ws":"^8.18.1","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/ws-server":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.2_1774014546508_0.3753812224788069","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@pencil.dev/cli","version":"0.2.3","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.2.3","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"},{"name":"gerhardberger","email":"93.morph@gmail.com"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"c607cb7a489583ae9b5fa1a42ce3a49190b952d5","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.3.tgz","fileCount":43,"integrity":"sha512-ing7fYhNMJaOBTLAqYU3ynShMWOGQZoBUODajPUGaMv+xI4OhuZU/VEnFJLKbbfx3YzrHx0MWGzl0SPYUnEtRg==","signatures":[{"sig":"MEQCIEFbvLPPQnaF4nwvpM5xfchhG21OpmmPBl24ncKODxk9AiAOWmA9f0kThKo/F5Mckh7/SvsIdwF6g7N1FZrtLvZWBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58345662},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"29e4a1bb156bb47333791ff264b3c65b65023aab","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start","lint":"biome check","build":"tsdown && npm run bundle:mcp && npm run bundle:skia","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*","bundle:skia":"node scripts/copy-pencil-skia.mjs","test:package":"bash scripts/test-package-docker.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.12.0","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.18.3","svgo":"^4.0.0","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@anthropic-ai/claude-agent-sdk":"^0.2.72"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","@types/ws":"^8.18.1","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/ws-server":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.3_1774183199941_0.21773240688440354","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@pencil.dev/cli","version":"0.2.4","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.2.4","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"},{"name":"gerhardberger","email":"93.morph@gmail.com"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"31139cdd2df3251ed8c4e2f8c609c7ee935643bf","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.4.tgz","fileCount":47,"integrity":"sha512-7TTnaYpYqUXM514GFsalcckxC2ETyQ3Bezielxqo+FP6xgSovrrNoSeTy9UehFluzKLWvibgXlDfJGf/vd/LsA==","signatures":[{"sig":"MEYCIQCY3HTvPhPb4FLuPmXBMmTPNjX98HJwkUa9uAwwcSLPwwIhAKMc1YIw8Rd7UtjjGo5KmQdthoh6Mtk700YXjPdi/gHM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58930169},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"a615d4f6765dc0aecb981a151b0cb95cae68725c","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start --","lint":"biome check","build":"tsdown && npm run bundle:mcp && npm run bundle:skia && npm run bundle:pen-libs","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*","bundle:skia":"node scripts/copy-pencil-skia.mjs","test:package":"bash scripts/test-package-docker.sh","bundle:pen-libs":"mkdir -p dist/out/data && cp ../../lib/pencil-editor/data/*.lib.pen dist/out/data/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.12.1","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.18.3","svgo":"^4.0.0","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@anthropic-ai/claude-agent-sdk":"^0.2.87"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","@types/ws":"^8.18.1","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/ws-server":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.4_1775051619325_0.14441834228647976","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@pencil.dev/cli","version":"0.2.5","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.2.5","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"},{"name":"gerhardberger","email":"93.morph@gmail.com"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"b059bea202c00213cd189e317b675ec2fec9cc47","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.5.tgz","fileCount":54,"integrity":"sha512-3qgm/NYfj9Nqz4adO1/N8KIsKd30/MtNw9qxOqMXQGgcCJxWoNI/0j9Gixo7ng/Ux8IDyqjIRuZFvftfogAf0g==","signatures":[{"sig":"MEQCIA1VvrvVLtDbzh+SVkANyvZ4KxtwAInladPoD1HgIuy/AiBGhz1MiPkHUdETNMy0EU1KrcH3kugrp1Hin8l/LlnkmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60748119},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"5a92ae3aaabb9fb18b99634b1099edf8d967822e","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start --","lint":"biome check","build":"tsdown && npm run bundle:mcp && npm run bundle:skia && npm run bundle:pen-libs && npm run bundle:skill","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*","bundle:skia":"node scripts/copy-pencil-skia.mjs","bundle:skill":"cp ../../SKILL.md ./SKILL.md","test:package":"bash scripts/test-package-docker.sh","bundle:pen-libs":"mkdir -p dist/out/data && cp ../../lib/pencil-editor/data/*.lib.pen dist/out/data/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.12.1","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ws":"^8.18.3","svgo":"^4.0.0","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@anthropic-ai/claude-agent-sdk":"^0.2.87"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","@types/ws":"^8.18.1","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/ws-server":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.5_1776261645032_0.8714620781205296","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@pencil.dev/cli","version":"0.2.6","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.2.6","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"},{"name":"gerhardberger","email":"93.morph@gmail.com"}],"bin":{"pencil":"dist/index.cjs"},"dist":{"shasum":"3910c7c72890ffd3584d94295cc50a019fc90abf","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.6.tgz","fileCount":54,"integrity":"sha512-srooBhE9KdautFuYfceYRaYkv+KJ2iDnh/rHYPnKNUhXyUBi3RFcYMROSkQ17RGjLQQODwjMSc8Ld5iA1B0/yw==","signatures":[{"sig":"MEQCIAVk4y7EWZ050wSrwL3itwnbe/kPlxZlzP+v68pkF+5pAiAk4vqL1YGSiC0vAF7g+JYYKfd4a4/A0/EiAzGcJ+6KrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60757482},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9050e9811c0f1c96ced6724d7a3313b97fa1ecb2","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start --","lint":"biome check","build":"tsdown && npm run bundle:chmod && npm run bundle:mcp && npm run bundle:skia && npm run bundle:pen-libs && npm run bundle:skill","start":"node dist/index.cjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*","bundle:skia":"node scripts/copy-pencil-skia.mjs","bundle:chmod":"node scripts/chmod-dist-entry.mjs","bundle:skill":"cp ../../SKILL.md ./SKILL.md","test:package":"bash scripts/test-package-docker.sh","bundle:pen-libs":"mkdir -p dist/out/data && cp ../../lib/pencil-editor/data/*.lib.pen dist/out/data/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.14.1","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.21.1","dependencies":{"svgo":"^4.0.0","sharp":"^0.34.5","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@node-ipc/node-ipc":"^11.0.3","@anthropic-ai/claude-agent-sdk":"^0.2.128"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@ha/transport":"file:../../servers/ws","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@types/node-ipc":"^9.2.3","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.6_1778487378924_0.000731368665878751","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@pencil.dev/cli","version":"0.2.7","keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","_id":"@pencil.dev/cli@0.2.7","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"},{"name":"gerhardberger","email":"93.morph@gmail.com"}],"bin":{"pencil":"dist/index.mjs"},"dist":{"shasum":"905651c6557b2dd54489e01c02af549c28e7bd3d","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.7.tgz","fileCount":85,"integrity":"sha512-3ygyzO3rST5GDy0FqZJdKxGxB1z7jz4LxaSyuXY3qx6Icb/h2WdqVZcgTSAJKJUoKH0+owNkSDAX4/3bkYiUNw==","signatures":[{"sig":"MEUCIQCRtd/R8b+Mbch9oraYAdaUPyfLVrRZc4egnB6kqmBWhwIgPrP0KGu2Juha1Um+oV5zFPPMHDXFfGGqKOiS+lkeNnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53427874},"main":"dist/index.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"42c35c0c610718c196624e4d4698bc2b7a4cdc91","scripts":{"dev":"npm run build && cross-env NODE_ENV=development npm run start --","lint":"biome check","build":"tsdown && npm run bundle:chmod && npm run bundle:mcp && npm run bundle:wasm && npm run bundle:pen-libs && npm run bundle:skill","start":"node dist/index.mjs","lint:ci":"biome ci","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*","bundle:wasm":"node scripts/copy-pencil-wasm.mjs","bundle:chmod":"node scripts/chmod-dist-entry.mjs","bundle:skill":"cp ../../SKILL.md ./SKILL.md","test:package":"bash scripts/test-package-docker.sh","bundle:pen-libs":"mkdir -p dist/out/data && cp ../../lib/pencil-editor/data/*.lib.pen dist/out/data/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"_npmVersion":"11.16.0","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","directories":{},"_nodeVersion":"22.21.1","dependencies":{"svgo":"^4.0.0","sharp":"^0.34.5","semver":"^7.7.4","eventemitter3":"^5.0.1","@inquirer/prompts":"^8.3.0","@openai/codex-sdk":"^0.133.0","@node-ipc/node-ipc":"^11.0.3","@anthropic-ai/claude-agent-sdk":"^0.3.156"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/agent":"file:../../lib/agent","cross-env":"^10.1.0","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","typescript":"^5.0.0","@types/node":"^20.0.0","@types/semver":"^7.7.1","@biomejs/biome":"^2.4.5","@types/node-ipc":"^9.2.3","@ha/pencil-editor":"file:../../lib/pencil-editor","javascript-obfuscator":"^4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.7_1780126451787_0.7539375924863829","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@pencil.dev/cli","version":"0.2.8","description":"CLI tool for running the Pencil AI agent manipulating .pen design files","type":"module","main":"dist/index.mjs","bin":{"pencil":"dist/index.mjs"},"scripts":{"build":"tsdown && npm run bundle:chmod && npm run bundle:mcp && npm run bundle:wasm && npm run bundle:pen-libs && npm run bundle:skill","bundle:skill":"cp ../../SKILL.md ./SKILL.md","build:prod":"npm run build && node scripts/obfuscate.js","bundle:mcp":"mkdir -p dist/out && cp ../../servers/mcp/mcp-server-* dist/out/ && chmod +x dist/out/mcp-server-*","bundle:wasm":"node scripts/copy-pencil-wasm.mjs","bundle:pen-libs":"mkdir -p dist/out/data && cp ../../lib/pencil-editor/data/*.lib.pen dist/out/data/","bundle:chmod":"node scripts/chmod-dist-entry.mjs","dev":"npm run build && cross-env NODE_ENV=development npm run start --","start":"node dist/index.mjs","lint":"biome check","lint:ci":"biome ci","test:package":"bash scripts/test-package-docker.sh"},"keywords":["pencil","design","ai","cli","pen"],"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","dependencies":{"@anthropic-ai/claude-agent-sdk":"^0.3.197","@inquirer/prompts":"^8.3.0","@node-ipc/node-ipc":"^11.0.3","@openai/codex-sdk":"^0.142.5","eventemitter3":"^5.0.1","semver":"^7.7.4","sharp":"^0.34.5","svgo":"^4.0.0"},"devDependencies":{"@biomejs/biome":"^2.4.5","@ha/agent":"file:../../lib/agent","@ha/ipc":"file:../../lib/ipc","@ha/mcp":"file:../../lib/mcp","@ha/pencil-editor":"file:../../lib/pencil-editor","@ha/schema":"file:../../lib/schema","@ha/shared":"file:../../lib/shared","@types/node":"^20.0.0","@types/node-ipc":"^9.2.3","@types/semver":"^7.7.1","cross-env":"^10.1.0","javascript-obfuscator":"^4.2.2","tsdown":"^0.20.1","typescript":"^5.0.0"},"engines":{"node":">=18.0.0"},"gitHead":"8583ecfde82c31ccf0b0e9a5363a1dc48ffa73cd","_id":"@pencil.dev/cli@0.2.8","_nodeVersion":"22.21.1","_npmVersion":"11.18.0","dist":{"integrity":"sha512-is9+r9xNcIMxrC+iuWxgkgVD0OX6znYD7wwabHrMkTnCOQQQ5ERyhhTeLirT+DtfufBkcsJPv4BNQ1DmsKF7tg==","shasum":"11c9f141b6aa92b78e69c10d4c735af7014f0704","tarball":"https://registry.npmjs.org/@pencil.dev/cli/-/cli-0.2.8.tgz","fileCount":90,"unpackedSize":54681541,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDit/aeM+XTaf9LaJHnopa696sQYgPQDPMbSRdj0QWWZAIgLNYU4OBEgYpAh4B91YLZ56cVGSANlDSMvNJTpyfAvBc="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8b80f48f-86fe-4dff-96c4-fb9be013cb8c"}},"directories":{},"maintainers":[{"name":"pserb","email":"pavel@pencil.dev"},{"name":"gerhardberger","email":"93.morph@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.2.8_1782975926910_0.11115373559116581"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T11:53:03.392Z","modified":"2026-07-02T07:05:27.642Z","0.1.0":"2026-03-20T11:53:04.161Z","0.1.1":"2026-03-20T13:08:42.844Z","0.2.0":"2026-03-20T13:27:36.095Z","0.2.1":"2026-03-20T13:38:14.829Z","0.2.2":"2026-03-20T13:49:07.180Z","0.2.3":"2026-03-22T12:40:00.785Z","0.2.4":"2026-04-01T13:53:40.222Z","0.2.5":"2026-04-15T14:00:45.819Z","0.2.6":"2026-05-11T08:16:19.616Z","0.2.7":"2026-05-30T07:34:12.216Z","0.2.8":"2026-07-02T07:05:27.335Z"},"author":{"name":"High Agency, Inc."},"license":"UNLICENSED","keywords":["pencil","design","ai","cli","pen"],"description":"CLI tool for running the Pencil AI agent manipulating .pen design files","maintainers":[{"name":"pserb","email":"pavel@pencil.dev"},{"name":"gerhardberger","email":"93.morph@gmail.com"}],"readme":"# Pencil CLI\n\nCommand-line interface for [Pencil](https://pencil.dev) — create and edit `.pen` design files from the terminal. Run the AI agent with a prompt, call MCP tools directly in an interactive shell, batch-process multiple designs, or export to PNG/JPEG/WEBP/PDF. Built on the same editor engine as the desktop app and IDE extension, with full headless rendering, AI image generation, and stock photo support.\n\n## Installation\n\n```bash\nnpm install -g @pencil.dev/cli\n# or\npnpm add -g @pencil.dev/cli\n# or\nyarn global add @pencil.dev/cli\n```\n\n## Authentication\n\nThe CLI requires authentication before running agent operations. There are two methods:\n\n### Sign Up\n\n```bash\npencil signup --email you@example.com --username johndoe --name \"John Doe\"\n```\n\nCreates a new account. You'll receive a verification email — click the link, then log in.\n\n### Interactive Login\n\n```bash\npencil login\n```\n\nThis starts an interactive session where you choose your login method (email + password or email + OTP code). On success the session token is stored in `~/.pencil/session-cli.json`.\n\n### Non-Interactive Login\n\n```bash\n# Step 1: Request an OTP code\npencil login --email you@example.com\n\n# Step 2: Log in with the code from your email\npencil login --email you@example.com --code 123456\n```\n\nWhen flags are provided the interactive prompts are skipped, useful for scripting and CI.\n\n### CLI Key (for CI/CD)\n\nSet the `PENCIL_CLI_KEY` environment variable. CLI keys are scoped to an organization and can be created/revoked in the **Developer Keys** section of your organization settings on the Pencil web app.\n\n```bash\nPENCIL_CLI_KEY=pencil_cli_... pencil --out design.pen --prompt \"Create a form\" --agent claude\n```\n\nThe CLI key always takes precedence over a stored session token.\n\n### Checking Status\n\n```bash\npencil status\n```\n\nDisplays the current authentication method, verifies the session with the backend, and shows account details (email, name, organization for CLI keys).\n\n## Quick Start\n\n```bash\n# Log in first\npencil login\n\n# Create a new design from scratch\npencil --out design.pen --prompt \"Create a login page with email and password fields\" --agent claude\n\n# Modify an existing design\npencil --in existing.pen --out modified.pen --prompt \"Add a blue submit button\" --agent claude\n\n# Start an interactive shell (in headless mode)\npencil interactive -o design.pen\n\n# Start an interactive shell (connect to a running Pencil app)\npencil interactive -a desktop -i design.pen\n\n# List available models\npencil --list-models --agent claude\n```\n\n## Usage\n\n```\npencil [command] [options]\n\nCommands:\n  signup                 Create a new account (flags required, see below)\n  login                  Log in interactively (email + password or OTP)\n  status                 Check authentication status\n  version                Show CLI version\n  interactive            Start an interactive tool shell (see below)\n\nOptions:\n  --in, -i <path>        Input .pen file (optional, starts with empty canvas if omitted)\n  --out, -o <path>       Output .pen file path (required unless --export is used)\n  --prompt, -p <text>    Prompt for the AI agent (required)\n  --prompt-file, -f <path>  Attach a file to send with the prompt (repeatable). Images (png, jpeg, gif, webp) or text files; paths are not the prompt text itself.\n  --agent <type>         Agent to use when --model is omitted: claude, codex, gemini (default: claude)\n  --model, -m <id>       Model to use; agent is inferred from the model id\n  --custom, -c           Use custom Claude model config (e.g. AWS Bedrock, Vertex AI)\n  --list-models          List available models and exit\n  --tasks, -t <path>     JSON tasks file for batch operations\n  --workspace, -w <path> Workspace folder path to run the agent in\n  --export, -e <path>    Export an image of the final result\n  --export-scale <n>     Export scale factor (default: 1)\n  --export-type <type>   Export format: png, jpeg, webp, pdf (default: png)\n  --verbose-mcp          Log full MCP tool error details to the console\n  --help, -h             Show help message\n```\n\n## Interactive Mode\n\nThe interactive shell lets you call MCP tools directly on `.pen` files — useful for scripting, debugging, and agentic workflows that need fine-grained control over design operations.\n\n```\npencil interactive [options]\n\nOptions:\n  --app, -a <name>   Connect to a running Pencil app (e.g. desktop, vscode)\n  --in, -i <path>    Input .pen file (optional, empty canvas if omitted)\n  --out, -o <path>   Output .pen file (required in headless mode)\n  --help, -h         Show detailed tool reference. Important for agentic workflows, so agents can learn the tool.\n```\n\n### Modes\n\n**App mode** — connects to a running Pencil desktop or extension. Changes are applied live.\n\n```bash\npencil interactive -a desktop -i my-design.pen\n```\n\n**Headless mode** — spins up a local editor without a GUI. Use `save()` to write to `--out`.\n\n```bash\n# New empty canvas saved to the output file\npencil interactive -o output.pen\n\n# Edit an existing file\npencil interactive -i input.pen -o output.pen\n```\n\n### Shell commands\n\n```\ntool_name({ key: value })   Call an MCP tool\nsave()                      Save the document to disk (headless) or app\nexit()                      Exit the shell\n```\n\n### Getting started\n\nBegin with `get_editor_state` to load the schema and understand the document:\n\n```\npencil > get_editor_state({ include_schema: true })\npencil > batch_get()                                     # list top-level nodes\npencil > batch_get({ patterns: [{ reusable: true }] })   # find components\n```\n\n### Example\n\n```\npencil > get_editor_state({ include_schema: true })\npencil > get_guidelines()\npencil > get_guidelines({ category: \"guide\", name: \"Landing Page\" })\npencil > batch_design({ input: 'rect=Insert(document,{type:\"rectangle\",name:\"Foo\",x:10,y:10,width:300,height:200,fill:\"#E5484D\"})' })\npencil > get_screenshot({ nodeId: \"hero\" })\npencil > save()\npencil > exit()\n```\n\nRun `pencil interactive --help` for the full tool reference with parameter types and descriptions.\n\n## Available Models\n\n```bash\npencil --list-models --agent claude|gemini|codex\n```\n\n## Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `PENCIL_CLI_KEY` | CLI API key for CI/CD (takes precedence over stored session) |\n| `PENCIL_AGENT_API_KEY` | API key for the selected agent. |\n| `ANTHROPIC_API_KEY` | Anthropic API key for Claude agents. Ignored for Codex and Gemini. |\n| `PENCIL_API_BASE` | Backend API base URL (default: `https://api.pencil.dev`) |\n| `DEBUG` | Enable debug logging |\n\nFurther environment variables and agent config can be set in `settings.json`\nas well.\n\n## Supported Operations\n\nThe CLI supports the following MCP tools with full feature parity to the desktop app:\n\n### Design Operations\n\n| Tool | Description |\n|------|-------------|\n| `batch_design` | Insert, Update, Delete, Move, Copy, Replace, SetVariables, Generate, FindEmptySpace |\n| `batch_get` | Search and read nodes by pattern or ID |\n| `get_variables` | Read design variables |\n| `get_editor_state` | Get document metadata and structure |\n| `snapshot_layout` | Get document structure with computed bounds |\n\n### Visual Operations (headless rendering via CanvasKit)\n\n| Tool | Description |\n|------|-------------|\n| `get_screenshot` | Render a node to PNG image |\n| `export_nodes` | Export nodes to images in PNG/JPEG/WEBP/PDF formats |\n\n### Image Generation\n\nThe `batch_design` `Generate()` operation supports both AI-generated and stock images. Generated images are saved to an `images/` directory alongside the output `.pen` file.\n\n| Type | Description |\n|------|-------------|\n| `G(nodeId, \"ai\", prompt)` | AI-generated image from a text prompt |\n| `G(nodeId, \"stock\", keywords)` | Stock photo from Unsplash |\n\n### Guidelines\n\n| Tool | Description |\n|------|-------------|\n| `get_guidelines` | Load guides and styles for working with .pen files |\n\n## Examples\n\n### Create a Login Page\n\n```bash\npencil --out login.pen --agent claude --prompt \"Create a modern login page with:\n- Email input field\n- Password input field\n- 'Sign In' button\n- 'Forgot password?' link\n- Social login options (Google, GitHub)\"\n```\n\n### Add Components to Existing Design\n\n```bash\npencil --in dashboard.pen --out dashboard-v2.pen --agent gemini --prompt \"Add a sidebar navigation with:\n- Dashboard link (active)\n- Users link\n- Settings link\n- Logout button at bottom\"\n```\n\n### Create a Component Library\n\n```bash\npencil --out components.pen --agent codex --prompt \"Create a component library with:\n- Primary, secondary, and ghost button variants\n- Text input with label and error state\n- Card component with header and content\n- Badge component in success, warning, error colors\"\n```\n\n### Using a Specific Model\n\nUse `--model` to select a different Claude model:\n\n```bash\n# Use Claude Opus for complex tasks requiring highest capability\npencil --out complex-app.pen \\\n  --model claude-opus-4-6 \\\n  --prompt \"Create a complete e-commerce product page with image gallery,\nreviews section, related products, and add-to-cart functionality\"\n\n# Use Claude Haiku for simple, fast tasks\npencil --out simple.pen \\\n  --model claude-haiku-4-5 \\\n  --prompt \"Create a simple 404 error page\"\n```\n\n### CI/CD Usage\n\n```bash\n# Authenticate with a CLI key\nexport PENCIL_CLI_KEY=pencil_cli_...\nexport PENCIL_AGENT_API_KEY=sk-...\n\n# Generate designs in a pipeline\npencil --out onboarding.pen --prompt \"Create a 3-step onboarding flow\" --agent claude\n```\n\n### Verbose MCP Error Logging\n\nUse `--verbose-mcp` to show full MCP tool error details (including stack traces where available) in the CLI output when a tool fails:\n\n```bash\npencil --out debug.pen \\\n  --agent claude \\\n  --prompt \"Create a simple layout\" \\\n  --verbose-mcp\n```\n\n### Batch Processing with Tasks File\n\nUse `--tasks` to process multiple designs from a JSON tasks file:\n\n```bash\npencil --tasks batch-tasks.json --agent claude\n```\n\nExample `batch-tasks.json`:\n\n```json\n{\n  \"tasks\": [\n    {\n      \"out\": \"landing-page.pen\",\n      \"prompt\": \"Create a SaaS landing page with hero, features, and pricing sections\"\n    },\n    {\n      \"in\": \"existing-app.pen\",\n      \"out\": \"existing-app-v2.pen\",\n      \"prompt\": \"Add a dark mode toggle to the header\"\n    },\n    {\n      \"out\": \"mobile-menu.pen\",\n      \"model\": \"claude-haiku-4-5\",\n      \"prompt\": \"Create a mobile hamburger menu component\"\n    },\n    {\n      \"out\": \"from-reference.pen\",\n      \"prompt\": \"Match the layout and palette of the attached reference\",\n      \"promptFiles\": [\"./assets/reference.png\"]\n    }\n  ]\n}\n```\n\nEach task in the array supports the same options as CLI arguments:\n- `in` - Input file (optional)\n- `out` - Output file (required)\n- `prompt` - AI prompt (required)\n- `model` - Model override (optional)\n- `promptFiles` - Array of attachment paths (optional). Relative paths are resolved from the directory that contains the tasks JSON file.\n\n## Limitations\n\nThe CLI is designed for headless operation and has some limitations compared to the desktop app:\n\n- **No real-time preview** - Changes are saved to file, not displayed interactively\n- **No interactive UI features** - No selection, zoom, or pan controls\n- **No library browsing** - Cannot browse or import from `.pen` libraries\n\n## Token Storage\n\n| File | Purpose |\n|------|---------|\n| `~/.pencil/session-cli.json` | Stored session token from `pencil login` |\n\nThe CLI uses a separate session file from the desktop app (`~/.pencil/session-desktop.json`) so the backend can distinguish which client is in use.\n\n## License\n\nProprietary — see LICENSE file. © High Agency, Inc.\n","readmeFilename":"README.md"}