{"_id":"@by-sixteen/prism-cli","_rev":"4-8786df7b7814e0818d7019ced8ad2e29","name":"@by-sixteen/prism-cli","dist-tags":{"latest":"0.5.7"},"versions":{"0.5.4":{"name":"@by-sixteen/prism-cli","version":"0.5.4","keywords":["figma","design-tokens","css-variables","sync","design-system","prism"],"author":{"name":"Daniel Cork"},"license":"MIT","_id":"@by-sixteen/prism-cli@0.5.4","maintainers":[{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"}],"homepage":"https://github.com/bysixteen/llm-design-system#readme","bugs":{"url":"https://github.com/bysixteen/llm-design-system/issues"},"bin":{"prism":"dist/index.js"},"dist":{"shasum":"3eac7704e868808135ddf25207c7171553f4f3fe","tarball":"https://registry.npmjs.org/@by-sixteen/prism-cli/-/prism-cli-0.5.4.tgz","fileCount":5,"integrity":"sha512-Mq3FnbGiXnbRliSmnJbyAmDi+aZ9Kkd5odTlKUrL69TYLIQpPk71DOWKcsP98Gh4qPgGUj4YcHHrY4RkJOsj8Q==","signatures":[{"sig":"MEUCICaOm8WvUOdmd0D9R7lrOwYP+uP+3nwv8Ceb3eSdc7s/AiEAg0xio6kzIiDe+C+VcVxml+oz9Twop9Q/AV9oIBKMp8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72423},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"bc94b917aec03aa998fefc119fa69dac76973b2e","scripts":{"dev":"node dist/index.js","build":"esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.js --external:commander --external:prompts --external:picocolors --external:chokidar --external:ws --external:culori --external:@foundry/figma-bridge && npm run copy:templates","typecheck":"tsc --noEmit","copy:templates":"mkdir -p dist/templates && cp src/templates/*.css dist/templates/"},"_npmUser":{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"},"repository":{"url":"git+https://github.com/bysixteen/llm-design-system.git","type":"git","directory":"packages/prism-cli"},"_npmVersion":"11.6.2","description":"Sync design tokens between CSS and Figma variables in real-time","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ws":"^8.18.0","culori":"^4.0.0","prompts":"^2.4.2","chokidar":"^3.5.3","commander":"^12.0.0","picocolors":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/ws":"^8.5.0","typescript":"^5.3.0","@types/node":"^22.0.0","@types/prompts":"^2.4.9"},"_npmOperationalInternal":{"tmp":"tmp/prism-cli_0.5.4_1771321412396_0.889881999173642","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@by-sixteen/prism-cli","version":"0.5.5","keywords":["figma","design-tokens","css-variables","sync","design-system","prism"],"author":{"name":"Daniel Cork"},"license":"MIT","_id":"@by-sixteen/prism-cli@0.5.5","maintainers":[{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"}],"homepage":"https://github.com/bysixteen/llm-design-system#readme","bugs":{"url":"https://github.com/bysixteen/llm-design-system/issues"},"bin":{"prism":"dist/index.js"},"dist":{"shasum":"334732c0051fc92c0890372f601efe5199b353bd","tarball":"https://registry.npmjs.org/@by-sixteen/prism-cli/-/prism-cli-0.5.5.tgz","fileCount":5,"integrity":"sha512-WVwi4aRjrO6aHnABwNrtS0zCgiu6VsrDiq5aq25em6xfJUkufi5JOXMwgoYYTsGKDg+hX0vaKtvNltECNZmoQA==","signatures":[{"sig":"MEQCIC6IJQwZm+bvfZbKjNr3SgkS/LJ46vkR3k4qugyn8DvNAiBlzZVI+fFxy9smmfbSS/mico33AX+kVVOgwmtj4TPvqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72432},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"c782dc7fcae664f3d27593d41ef085c66cf559b5","scripts":{"dev":"node dist/index.js","build":"esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.js --external:commander --external:prompts --external:picocolors --external:chokidar --external:ws --external:culori --external:@by-sixteen/figma-bridge && npm run copy:templates","typecheck":"tsc --noEmit","copy:templates":"mkdir -p dist/templates && cp src/templates/*.css dist/templates/"},"_npmUser":{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"},"repository":{"url":"git+https://github.com/bysixteen/llm-design-system.git","type":"git","directory":"packages/prism-cli"},"_npmVersion":"11.6.2","description":"Sync design tokens between CSS and Figma variables in real-time","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ws":"^8.18.0","culori":"^4.0.0","prompts":"^2.4.2","chokidar":"^3.5.3","commander":"^12.0.0","picocolors":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/ws":"^8.5.0","typescript":"^5.3.0","@types/node":"^22.0.0","@types/prompts":"^2.4.9"},"_npmOperationalInternal":{"tmp":"tmp/prism-cli_0.5.5_1771321901147_0.9423180045803246","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@by-sixteen/prism-cli","version":"0.5.6","keywords":["figma","design-tokens","css-variables","sync","design-system","prism"],"author":{"name":"Daniel Cork"},"license":"MIT","_id":"@by-sixteen/prism-cli@0.5.6","maintainers":[{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"}],"homepage":"https://github.com/bysixteen/llm-design-system#readme","bugs":{"url":"https://github.com/bysixteen/llm-design-system/issues"},"bin":{"prism":"dist/index.js"},"dist":{"shasum":"f366926b8f519cff6b9d46c8f489490b4eb6f0b0","tarball":"https://registry.npmjs.org/@by-sixteen/prism-cli/-/prism-cli-0.5.6.tgz","fileCount":5,"integrity":"sha512-tPwnwH4h+7p2NrqC/NuznF6kTF/dcCODjBJVpoIO4uUxd0+yJcHPf8VxmwUww66t0itsoz9yzdRoXP4pIxUmlw==","signatures":[{"sig":"MEYCIQC1+uY19CQhU2Eze7D+IrhVIEjlBMNfaNwcZAzVlrqD2QIhALoTMapcQtXVbmwowgCRlYsU/Ul5PSrirBwx7/oCErIR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72804},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"dff914ab4dacb6407cc1f08fac5bd0d65d430f34","scripts":{"dev":"node dist/index.js","build":"esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.js --external:commander --external:prompts --external:picocolors --external:chokidar --external:ws --external:culori --external:@by-sixteen/figma-bridge && npm run copy:templates","typecheck":"tsc --noEmit","copy:templates":"mkdir -p dist/templates && cp src/templates/*.css dist/templates/"},"_npmUser":{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"},"repository":{"url":"git+https://github.com/bysixteen/llm-design-system.git","type":"git","directory":"packages/prism-cli"},"_npmVersion":"11.6.2","description":"Sync design tokens between CSS and Figma variables in real-time","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ws":"^8.18.0","culori":"^4.0.0","prompts":"^2.4.2","chokidar":"^3.5.3","commander":"^12.0.0","picocolors":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0","@types/ws":"^8.5.0","typescript":"^5.3.0","@types/node":"^22.0.0","@types/prompts":"^2.4.9"},"_npmOperationalInternal":{"tmp":"tmp/prism-cli_0.5.6_1771326810040_0.6834073264197142","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@by-sixteen/prism-cli","version":"0.5.7","description":"Sync design tokens between CSS and Figma variables in real-time","type":"module","main":"dist/index.js","bin":{"prism":"dist/index.js"},"scripts":{"build":"esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.js --external:commander --external:prompts --external:picocolors --external:chokidar --external:ws --external:culori --external:@by-sixteen/figma-bridge && npm run copy:templates","copy:templates":"mkdir -p dist/templates && cp src/templates/*.css dist/templates/","dev":"node dist/index.js","typecheck":"tsc --noEmit"},"dependencies":{"commander":"^12.0.0","prompts":"^2.4.2","picocolors":"^1.0.0","chokidar":"^3.5.3","ws":"^8.18.0","culori":"^4.0.0"},"devDependencies":{"@types/node":"^22.0.0","@types/prompts":"^2.4.9","@types/ws":"^8.5.0","esbuild":"^0.20.0","typescript":"^5.3.0"},"keywords":["figma","design-tokens","css-variables","sync","design-system","prism"],"repository":{"type":"git","url":"git+https://github.com/bysixteen/llm-design-system.git","directory":"packages/prism-cli"},"homepage":"https://github.com/bysixteen/llm-design-system#readme","engines":{"node":">=18"},"author":{"name":"Daniel Cork"},"license":"MIT","gitHead":"eefd40e296436681ddbd3ac0187b8eff1526d4d0","_id":"@by-sixteen/prism-cli@0.5.7","bugs":{"url":"https://github.com/bysixteen/llm-design-system/issues"},"_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-/+R3lY55vOcjXn7asXXvuNnIosMSDPCX7ZzQeH4oUAZbxoou7kkSeKNVZWooFlPFVOIyKmNpU6FwJykdK0yjOw==","shasum":"d6ccca64587c98bf183cad69baff3e2006b9bc21","tarball":"https://registry.npmjs.org/@by-sixteen/prism-cli/-/prism-cli-0.5.7.tgz","fileCount":5,"unpackedSize":72872,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDhO2XRZK6y8bOCyzohj8x1FFNTz3m09qzyJeSazOJCEQIhAJAjEueun24uk/pJwlOi1FlmW+ceoGg7LBGt+LGrycyM"}]},"_npmUser":{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"},"directories":{},"maintainers":[{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prism-cli_0.5.7_1771327235644_0.6618660938298992"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-17T09:43:32.307Z","modified":"2026-02-17T11:20:35.928Z","0.5.4":"2026-02-17T09:43:32.538Z","0.5.5":"2026-02-17T09:51:41.290Z","0.5.6":"2026-02-17T11:13:30.191Z","0.5.7":"2026-02-17T11:20:35.797Z"},"bugs":{"url":"https://github.com/bysixteen/llm-design-system/issues"},"author":{"name":"Daniel Cork"},"license":"MIT","homepage":"https://github.com/bysixteen/llm-design-system#readme","keywords":["figma","design-tokens","css-variables","sync","design-system","prism"],"repository":{"type":"git","url":"git+https://github.com/bysixteen/llm-design-system.git","directory":"packages/prism-cli"},"description":"Sync design tokens between CSS and Figma variables in real-time","maintainers":[{"name":"by-sixteen","email":"daniel@bysixteen.co.uk"}],"readme":"# prism-cli\n\nSync design tokens between CSS and Figma variables in real-time.\n\n## Quick Start\n\n```bash\n# In your project directory\nnpx prism-cli init\nnpx prism-cli start\n```\n\nThen open the Figma plugin — it will guide you through initial setup.\n\n## Commands\n\n| Command | Purpose |\n|---------|---------|\n| `prism start` | Start bridge + watcher together (recommended) |\n| `prism init [name]` | Scaffold Prism in the current directory |\n| `prism watch` | Watch tokens.css and sync to Figma |\n| `prism bridge` | Start WebSocket bridge server only |\n| `prism bootstrap from-css` | Create Figma variables from an existing CSS file |\n| `prism bootstrap from-figma` | Generate a CSS file from Figma variables |\n| `prism bootstrap from-template` | Scaffold from a built-in template then push to Figma |\n| `prism ingest` | Extract colours from Figma, generate missing state variants |\n\n## Bootstrap\n\nOne-time setup to connect your existing tokens to Figma:\n\n```bash\n# Push an existing tokens.css to Figma\nnpx prism-cli bootstrap from-css --tokens tokens.css --collection \"Tokens\" --mode Light\n\n# Generate tokens.css from Figma variables\nnpx prism-cli bootstrap from-figma --collection \"Tokens\" --mode Light --output tokens.css\n\n# Scaffold from the minimal template (22 tokens: colours, input, button)\nnpx prism-cli bootstrap from-template --name minimal --collection \"Tokens\"\n```\n\nThe bridge must be running for bootstrap to work:\n\n```bash\nnpx prism-cli bridge   # in one terminal\nnpx prism-cli bootstrap from-css   # in another\n```\n\nOr use `prism start` which runs both together.\n\n## Configuration\n\n`prism.config.js` in your project root:\n\n```javascript\nexport default {\n  project: {\n    name: 'my-project',\n    type: 'webapp'  // webapp | marketing | library\n  },\n  tokens: {\n    file: './tokens.css',\n    format: 'hex'  // hex | oklch\n  },\n  theme: {\n    mode: 'light',  // light | dark | both\n    primaryColor: '#3b82f6'\n  },\n  components: ['button', 'input'],\n  bridge: {\n    url: 'ws://localhost:3055',\n    port: 3055,\n    channel: 'my-project'\n  },\n  figma: {\n    collection: 'Tokens',\n    mode: 'Light'\n  }\n};\n```\n\n## How It Works\n\n1. **tokens.css** is your single source of truth for design tokens\n2. **prism start** runs the bridge (WebSocket relay) and watcher (file monitor) together\n3. The **Figma plugin** connects to the bridge and syncs variables bidirectionally\n\nChanges to `tokens.css` are pushed to Figma automatically. Changes to Figma variables\nare written back to `tokens.css`.\n\n## Migrating from Legacy Scripts\n\nIf you previously used `npm run bridge` + `npm run watch`:\n\n```bash\n# Old workflow\nnpm run bridge   # Terminal 1\nnpm run watch    # Terminal 2\n\n# New workflow\nnpx prism-cli start\n```\n\nYour existing `prism.config.js` continues to work unchanged.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}