{"_id":"@devmotion/cli","_rev":"12-8bbf98e0ddfbd12941deba816d52833e","name":"@devmotion/cli","dist-tags":{"latest":"0.8.0"},"versions":{"0.0.1":{"name":"@devmotion/cli","version":"0.0.1","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.0.1","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.com","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"c36f8902d528bf186ff0714f967e8aaac6697c92","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.0.1.tgz","fileCount":8,"integrity":"sha512-XuE7MEdCSrdGk2oLsg1vJhyTcJXx37rfYr6+wpea/b5pGpab3gGp4joB3vJ0WnK8h3vV/g225/GPetIOm7zIYA==","signatures":[{"sig":"MEUCIBc/8ePJTSzsMqLGmeGIY3JMTZE9Fh2mjbLTxzy5as/rAiEA4Zg4XOLEHHbJn4+/Qtpos9Z6LlXbmuhpGK5me98GWV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45014},"main":"./dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"2f574edebf43c0520176da0757a8a1b417999775","scripts":{"test":"vitest --run","build":"tsup","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","prepublishOnly":"pnpm build"},"_npmUser":{"name":"epavanello","email":"pavanello.emanuele@gmail.com"},"repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.11.1","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"citty":"^0.1.6","nanoid":"^5.1.5","playwright":"1.50.0","@devmotion/studio":"workspace:*","@ffmpeg-installer/ffmpeg":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.0.1_1779975686820_0.4307583866215501","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@devmotion/cli","version":"0.1.1","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.1.1","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"9441af8a554b3b8949fc934d156c9fb80fe77e50","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.1.1.tgz","fileCount":2646,"integrity":"sha512-uSgHlUP2o4bpP8WX/J/i7zMhvn71qEH9fnGMWjnW0kgAatMK1V10w699hZgMGWY3RJYYm/+6qSN5HMEKXZIzaQ==","signatures":[{"sig":"MEQCIB2GlvNodpDoA0UZhdbREdDd//ymkCs3urdLWsDSIFqZAiAeUf8fo4sPKYFt8sBY29ka5a8qSLfFzSQL6zAI1s9/JQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84922213},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.1.1.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/0c33bce74e4c8747dfdfc24968495610/devmotion-cli-0.1.1.tgz","_integrity":"sha512-uSgHlUP2o4bpP8WX/J/i7zMhvn71qEH9fnGMWjnW0kgAatMK1V10w699hZgMGWY3RJYYm/+6qSN5HMEKXZIzaQ==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","nanoid":"^5.1.5","playwright":"1.50.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@ffmpeg-installer/ffmpeg":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1779995135700_0.4458842955289819","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@devmotion/cli","version":"0.2.0","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.2.0","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"8e9e3271a2b29af0721565559c2eb06ca20de096","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.2.0.tgz","fileCount":2227,"integrity":"sha512-8Vj9FmVpXgFbUoP86A5m45yNkrKAm7ViBmTV/GOMJawCuaIW9kMIrFbr2WT0HwMs8W2f54TNjtzgtzYCbFtEmA==","signatures":[{"sig":"MEUCIAPdneK1hQiUphUfDBCnoRvK3nS7MEv31JLhSojJxFKdAiEAlnkl3zxCFBE3Q9xAZ/oP6Zy8Hbsg1wOEz2WHbh6llr4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60127056},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.2.0.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/9c926be126b9c777af949debe5053d59/devmotion-cli-0.2.0.tgz","_integrity":"sha512-8Vj9FmVpXgFbUoP86A5m45yNkrKAm7ViBmTV/GOMJawCuaIW9kMIrFbr2WT0HwMs8W2f54TNjtzgtzYCbFtEmA==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","nanoid":"^5.1.5","playwright":"1.50.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@ffmpeg-installer/ffmpeg":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.0_1779996578717_0.861714702800646","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@devmotion/cli","version":"0.3.0","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.3.0","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"99c5fd692653ac47ed1575e22a5d387ba76e358f","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.3.0.tgz","fileCount":2227,"integrity":"sha512-pnCfYq03hR2yJKHXhGP3txoe9DW16WAPb4xGnQwLF7MWegRGwRVikgA6N+5WNlp/vUC5iwnwurBF11AHPAM4iQ==","signatures":[{"sig":"MEYCIQD0rC0qVynAZwWGjROtd/cvsrsJJK4UNikV3Zid/2SzCQIhAJKviPryqtJj5Oy746hUxIxqTNXBSpmcSTXN2jv9g1Hg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60126800},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.3.0.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/56fdf7218b4f942ff2939b2a608e9378/devmotion-cli-0.3.0.tgz","_integrity":"sha512-pnCfYq03hR2yJKHXhGP3txoe9DW16WAPb4xGnQwLF7MWegRGwRVikgA6N+5WNlp/vUC5iwnwurBF11AHPAM4iQ==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","nanoid":"^5.1.5","playwright":"1.50.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@ffmpeg-installer/ffmpeg":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.3.0_1779997234651_0.7139115996605299","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@devmotion/cli","version":"0.4.0","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.4.0","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"b4b03c2118b0af2b70ec3da45aeb2e83250da70e","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.4.0.tgz","fileCount":2227,"integrity":"sha512-a7HlTkChIjmyrUtTT1zBuFNYaBlsvsE+FF98dGsl9CskXzn0HG4tw72Z6RPmA+HTFQmzvnPf0r0YYfM4H6cjow==","signatures":[{"sig":"MEYCIQCGmzU/WVRglX5mMH/uHCzX0Z2yyxeRG2j6cmrWmABzmQIhAMpfE1SMu2VEmyo3aW8IvA0YAEsuYU1Op7bkRPqUzhEs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60128660},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.4.0.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/9078dd809af4f85d1ef340df6835c85e/devmotion-cli-0.4.0.tgz","_integrity":"sha512-a7HlTkChIjmyrUtTT1zBuFNYaBlsvsE+FF98dGsl9CskXzn0HG4tw72Z6RPmA+HTFQmzvnPf0r0YYfM4H6cjow==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","nanoid":"^5.1.5","playwright":"1.50.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@ffmpeg-installer/ffmpeg":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.4.0_1779999434424_0.5548036922985071","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@devmotion/cli","version":"0.5.0","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.5.0","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"8cc406eb23d4144c9aea0a53a37d4dc4e0d5e43f","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.5.0.tgz","fileCount":2243,"integrity":"sha512-e3JqDrLDfp/MITDVEECvHdwlJMiBh3OTLtTZ1zbIuBEwGvgOOsSpewJHJij3Unu+j9mgXdC4R90jPSjutkvaNg==","signatures":[{"sig":"MEUCIQCG74hjjeZz2/N8q0PinbTnWSErjw0XWhWtpLPulxcKnwIgBx0rLn04+M0NqGfVs17FM6f1vgUEnKz+nLJ15t0f70w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60155925},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.5.0.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/3058808167a872efa156d3d74b6c559f/devmotion-cli-0.5.0.tgz","_integrity":"sha512-e3JqDrLDfp/MITDVEECvHdwlJMiBh3OTLtTZ1zbIuBEwGvgOOsSpewJHJij3Unu+j9mgXdC4R90jPSjutkvaNg==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","nanoid":"^5.1.5","playwright":"1.50.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@ffmpeg-installer/ffmpeg":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.0_1780000593783_0.5271426610878402","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@devmotion/cli","version":"0.6.0","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.6.0","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"bde8386af46a3aa887832190acc655787769425e","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.6.0.tgz","fileCount":2359,"integrity":"sha512-CXBe0Lm/EltvFjrxb6+e4c5LgiMYK3MisnbScPevNR2D/x5xTSx6Dmu4VLyIvrF87VFvQR6427zCXVkzhUfEHw==","signatures":[{"sig":"MEUCIBV60tMlH7JSo1g/MR52+FkNd61Z7dz5zYGsOLt5oFK3AiEAja89jipWRiybc3LU/d2MQ0hEfyEHwv9a/kCGWPHl9lU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62587929},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.6.0.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","bundle-mcp":"node ../../scripts/build-mcp-stdio.mjs packages/cli/mcp/mcp-stdio.mjs","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/f0d92f7df74ff162ce4ee57bf6d17722/devmotion-cli-0.6.0.tgz","_integrity":"sha512-CXBe0Lm/EltvFjrxb6+e4c5LgiMYK3MisnbScPevNR2D/x5xTSx6Dmu4VLyIvrF87VFvQR6427zCXVkzhUfEHw==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","nanoid":"^5.1.5","playwright":"1.50.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@ffmpeg-installer/ffmpeg":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.0_1780126641832_0.2048367826515547","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@devmotion/cli","version":"0.6.1","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.6.1","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"25bf7f31845da6665b13cc6551335636d9e1827c","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.6.1.tgz","fileCount":2359,"integrity":"sha512-wxd+bcVQqxY7ORqVgA16jTjSFHa0nxXd6Y/Far4yNefWl9VHGHXgLzDi+w7MLV6CaYrukOZ++fBFKhmiH2zmYQ==","signatures":[{"sig":"MEQCICCXV+pNgaURWp/gS+SNM/S0du508eAHR1WKF7dcmqLEAiBZktK5RVoy/b3qQWEqebY2jqDRmYHwWmpp9q/K6Ca8Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62585813},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.6.1.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","bundle-mcp":"node ../../scripts/build-mcp-stdio.mjs packages/cli/mcp/mcp-stdio.mjs","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/b3be0b72d9425dcc3bc19b6078ba330e/devmotion-cli-0.6.1.tgz","_integrity":"sha512-wxd+bcVQqxY7ORqVgA16jTjSFHa0nxXd6Y/Far4yNefWl9VHGHXgLzDi+w7MLV6CaYrukOZ++fBFKhmiH2zmYQ==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.49","zod":"^4.3.6","mjml":"^4.18.0","citty":"^0.1.6","shiki":"^4.0.2","colord":"^2.9.3","cookie":"^0.6.0","kysely":"^0.28.11","nanoid":"^5.1.6","openai":"^6.22.0","resend":"^6.9.3","svelte":"^5.54.1","esm-env":"^1.2.2","pg-boss":"^12.14.0","valibot":"^1.2.0","date-fns":"^4.1.0","postgres":"^3.4.7","dompurify":"^3.3.3","mediabunny":"^1.30.1","playwright":"1.50.0","posthog-js":"^1.364.6","drizzle-orm":"^0.45.1","html-to-text":"^9.0.5","posthog-node":"^5.28.11","@polar-sh/sdk":"^0.46.1","@sveltejs/kit":"^2.53.4","bezier-easing":"^2.1.0","fluent-ffmpeg":"^2.1.3","tailwind-merge":"^3.4.0","@resvg/resvg-js":"^2.6.2","@sentry/sveltekit":"^10.45.0","@aws-sdk/client-s3":"^3.984.0","@opentelemetry/api":"^1.9.0","@vercel/mcp-adapter":"^1.0.0","@electric-sql/pglite":"^0.3.16","@polar-sh/better-auth":"^1.8.2","@standard-schema/spec":"^1.1.0","@ffmpeg-installer/ffmpeg":"^1.1.0","@elevenlabs/elevenlabs-js":"^2.40.0","@openrouter/ai-sdk-provider":"^2.2.3","@better-auth/drizzle-adapter":"^1.5.3","@aws-sdk/s3-request-presigner":"^3.984.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.1_1780128683668_0.028947487836513464","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@devmotion/cli","version":"0.6.2","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.6.2","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"04f64b2592b56befbe24cbb06502eef973c7543f","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.6.2.tgz","fileCount":2393,"integrity":"sha512-ghbYQISloJ//9a6IJGmVDmMzCjqsLCWjwmNQApcNJAJLK6c0HEKJ5jigV6B9zFNTWBS8+R7CyYlSVqqlVOHVJQ==","signatures":[{"sig":"MEQCIGnrNL68Yg5m2591jOki3S4sna0hm+rBGVdhee5ZFPoEAiAT4ot02wioUnf6vMLCoHNRiytVp/cAiElx6XwkWfM/Wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62598588},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.6.2.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","bundle-mcp":"node ../../scripts/build-mcp-stdio.mjs packages/cli/mcp/mcp-stdio.mjs","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/75786008241198affa1d0a2c3c512861/devmotion-cli-0.6.2.tgz","_integrity":"sha512-ghbYQISloJ//9a6IJGmVDmMzCjqsLCWjwmNQApcNJAJLK6c0HEKJ5jigV6B9zFNTWBS8+R7CyYlSVqqlVOHVJQ==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.64","zod":"^4.3.6","citty":"^0.1.6","colord":"^2.9.3","nanoid":"^5.1.6","svelte":"^5.54.1","esm-env":"^1.2.2","dompurify":"^3.3.3","mediabunny":"^1.30.1","playwright":"1.60.0","better-auth":"^1.5.4","drizzle-orm":"^0.45.1","html-to-text":"^9.0.5","@sveltejs/kit":"^2.53.4","bezier-easing":"^2.1.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@aws-sdk/client-s3":"^3.984.0","@standard-schema/spec":"^1.1.0","@ffmpeg-installer/ffmpeg":"^1.1.0","@openrouter/ai-sdk-provider":"^2.2.3","@aws-sdk/s3-request-presigner":"^3.984.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.2_1780144993509_0.6315573440094153","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@devmotion/cli","version":"0.6.3","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.6.3","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"d3563a693c91546d36945b7225a333d85cf28f25","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.6.3.tgz","fileCount":2412,"integrity":"sha512-9UmVvYlXWY+m1a76NUf3ZJkqXWZwSDfsGInfA7OX66OPESq+z9qQRV8poQjKaCGw/Q1aGTdzwqDn9vnTWuY7Dg==","signatures":[{"sig":"MEUCIQCSlDFOHt17dRb7XLSAfH9s3nKrikuVu7Z7feV7ycXdMwIgb1o1xYNdWHNjRnux4fvN5uZGZhtcOsvvAd6tlsSZ5NM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62677816},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.6.3.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","bundle-mcp":"node ../../scripts/build-mcp-stdio.mjs packages/cli/mcp/mcp-stdio.mjs","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/1907227e561592c7fb1cf2ccb4e53368/devmotion-cli-0.6.3.tgz","_integrity":"sha512-9UmVvYlXWY+m1a76NUf3ZJkqXWZwSDfsGInfA7OX66OPESq+z9qQRV8poQjKaCGw/Q1aGTdzwqDn9vnTWuY7Dg==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.64","zod":"^4.3.6","citty":"^0.1.6","colord":"^2.9.3","nanoid":"^5.1.6","svelte":"^5.54.1","esm-env":"^1.2.2","dompurify":"^3.3.3","mediabunny":"^1.30.1","playwright":"1.60.0","better-auth":"^1.5.4","drizzle-orm":"^0.45.1","html-to-text":"^9.0.5","@sveltejs/kit":"^2.53.4","bezier-easing":"^2.1.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@aws-sdk/client-s3":"^3.984.0","@standard-schema/spec":"^1.1.0","@ffmpeg-installer/ffmpeg":"^1.1.0","@openrouter/ai-sdk-provider":"^2.2.3","@aws-sdk/s3-request-presigner":"^3.984.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.3_1780165557224_0.25663584876992074","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@devmotion/cli","version":"0.7.0","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","_id":"@devmotion/cli@0.7.0","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"homepage":"https://devmotion.app/","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"bin":{"devmotion":"dist/index.js"},"dist":{"shasum":"e9c895e80d6abfcaba0e01890a5c8a9665879acd","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.7.0.tgz","fileCount":2430,"integrity":"sha512-a1wUPJnKZM2q7GuNkzfJj+oBKQ3k7Kk17jFh7Kj+X0wlbG6PKMvYLjs9gp1tY9fA6zSdUbkA6DOFK7ZEkX5+4A==","signatures":[{"sig":"MEUCIQCiBdTfBRf1yLkqFm0cFJnKmO+GqLB/RfAJ+bffATN/5wIgTzRBl26DeOLN+B3yGw04GgX78z+KgWrzvBVpFSoh9DQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62872262},"main":"./dist/index.js","type":"module","_from":"file:devmotion-cli-0.7.0.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest --run","build":"tsup","bundle-mcp":"node ../../scripts/build-mcp-stdio.mjs packages/cli/mcp/mcp-stdio.mjs","test:watch":"vitest","postinstall":"node ./scripts/postinstall.mjs","bundle-studio":"node ./scripts/bundle-studio.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"_resolved":"/tmp/259ad8586af67dc3f94ab73fa0e87e18/devmotion-cli-0.7.0.tgz","_integrity":"sha512-a1wUPJnKZM2q7GuNkzfJj+oBKQ3k7Kk17jFh7Kj+X0wlbG6PKMvYLjs9gp1tY9fA6zSdUbkA6DOFK7ZEkX5+4A==","repository":{"url":"git+https://github.com/devmotion/devmotion.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.17.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.64","zod":"^4.3.6","citty":"^0.1.6","colord":"^2.9.3","nanoid":"^5.1.6","svelte":"^5.54.1","esm-env":"^1.2.2","dompurify":"^3.3.3","mediabunny":"^1.30.1","playwright":"1.60.0","better-auth":"^1.5.4","drizzle-orm":"^0.45.1","html-to-text":"^9.0.5","@sveltejs/kit":"^2.53.4","bezier-easing":"^2.1.0","fluent-ffmpeg":"^2.1.3","@resvg/resvg-js":"^2.6.2","@aws-sdk/client-s3":"^3.984.0","@standard-schema/spec":"^1.1.0","@ffmpeg-installer/ffmpeg":"^1.1.0","@openrouter/ai-sdk-provider":"^2.2.3","@aws-sdk/s3-request-presigner":"^3.984.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.2.4","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.7.0_1781247621764_0.9483569996514003","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@devmotion/cli","version":"0.8.0","description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","type":"module","main":"./dist/index.js","bin":{"devmotion":"dist/index.js"},"dependencies":{"@aws-sdk/client-s3":"^3.984.0","@aws-sdk/s3-request-presigner":"^3.984.0","@ffmpeg-installer/ffmpeg":"^1.1.0","@openrouter/ai-sdk-provider":"^2.2.3","@resvg/resvg-js":"^2.6.2","@standard-schema/spec":"^1.1.0","@sveltejs/kit":"^2.53.4","ai":"^6.0.64","better-auth":"^1.5.4","bezier-easing":"^2.1.0","citty":"^0.1.6","colord":"^2.9.3","dompurify":"^3.3.3","drizzle-orm":"^0.45.1","esm-env":"^1.2.2","fluent-ffmpeg":"^2.1.3","html-to-text":"^9.0.5","mediabunny":"^1.30.1","nanoid":"^5.1.6","playwright":"1.60.0","svelte":"^5.54.1","zod":"^4.3.6"},"devDependencies":{"@types/node":"^22.10.0","tsup":"^8.3.5","vitest":"^3.2.4"},"engines":{"node":">=20"},"keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/devmotion/devmotion.git","directory":"packages/cli"},"homepage":"https://devmotion.app/","publishConfig":{"access":"public"},"scripts":{"build":"tsup","bundle-studio":"node ./scripts/bundle-studio.mjs","postinstall":"node ./scripts/postinstall.mjs","test":"vitest --run","test:watch":"vitest","bundle-mcp":"node ../../scripts/build-mcp-stdio.mjs packages/cli/mcp/mcp-stdio.mjs"},"_id":"@devmotion/cli@0.8.0","bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"_integrity":"sha512-sB7na10kSQekRx0/NnCzBTeUXfgAb1NcU9R7qbz6yE2zLxFQ/TS78xsexUpAu/d0J9KyrJ6UQqsu/Xh2ZOUojA==","_resolved":"/tmp/9e16ddd2b91a442482a8d1edbd3321e6/devmotion-cli-0.8.0.tgz","_from":"file:devmotion-cli-0.8.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.17.0","dist":{"integrity":"sha512-sB7na10kSQekRx0/NnCzBTeUXfgAb1NcU9R7qbz6yE2zLxFQ/TS78xsexUpAu/d0J9KyrJ6UQqsu/Xh2ZOUojA==","shasum":"631bbdd24bdbc230a7e4ad2d2a8e8aee17113c96","tarball":"https://registry.npmjs.org/@devmotion/cli/-/cli-0.8.0.tgz","fileCount":2430,"unpackedSize":62869070,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCNssO4Uuc93xNQUv2A0PMQyX/2iazTIa8qshM2ADx04QIgaN0hOgyuHmqzGQv4MFuFg4wpQNxs9bzhru/71eQfvGw="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1bda5856-edd6-4e4f-8652-89bc725b3d27"}},"directories":{},"maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.8.0_1781282907270_0.7762692441360859"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-28T13:41:26.611Z","modified":"2026-06-12T16:48:27.924Z","0.0.1":"2026-05-28T13:41:26.954Z","0.1.1":"2026-05-28T19:05:36.544Z","0.2.0":"2026-05-28T19:29:39.382Z","0.3.0":"2026-05-28T19:40:35.225Z","0.4.0":"2026-05-28T20:17:14.907Z","0.5.0":"2026-05-28T20:36:34.300Z","0.6.0":"2026-05-30T07:37:22.460Z","0.6.1":"2026-05-30T08:11:24.633Z","0.6.2":"2026-05-30T12:43:14.010Z","0.6.3":"2026-05-30T18:25:57.772Z","0.7.0":"2026-06-12T07:00:22.282Z","0.8.0":"2026-06-12T16:48:27.778Z"},"bugs":{"url":"https://github.com/devmotion/devmotion/issues"},"license":"Apache-2.0","homepage":"https://devmotion.app/","keywords":["video","animation","html","agent","mcp","ffmpeg","playwright","lottie","gsap"],"repository":{"type":"git","url":"git+https://github.com/devmotion/devmotion.git","directory":"packages/cli"},"description":"HTML-first, agent-friendly video tooling. Write HTML. Render video.","maintainers":[{"name":"epavanello","email":"pavanello.emanuele@gmail.com"}],"readme":"# @devmotion/cli\n\nHTML-first, agent-friendly video tooling. **Write HTML. Render video.**\n\nDevMotion turns a directory of HTML files into an animated MP4. Every element\nwith `data-dm-*` attributes becomes a layer on the timeline. The Studio\n(visual editor) and the CLI render share the exact same engine — what you see\nin preview is what you get in the MP4.\n\n```bash\nnpx @devmotion/cli init my-video\ncd my-video\ndevmotion preview   # open the editor in your browser\ndevmotion render    # produce ./output.mp4\n```\n\n---\n\n## Install\n\n```bash\nnpm i -g @devmotion/cli\n# or use it without installing\nnpx @devmotion/cli <command>\n```\n\n### Requirements\n\nOnly **Node.js ≥ 20**. Everything else (ffmpeg, Playwright Chromium) is\ninstalled automatically:\n\n- `@ffmpeg-installer/ffmpeg` ships a platform-specific ffmpeg binary as a\n  regular dependency — no `brew`, `apt`, or `winget` needed.\n- A `postinstall` script downloads Playwright Chromium (~150 MB, one-time).\n  Skip it with `DEVMOTION_SKIP_POSTINSTALL=1` if you don't intend to render\n  (preview still works).\n\nRun `devmotion doctor` to verify both are wired up.\n\n---\n\n## Commands\n\n| Command                             | Purpose                                                    |\n| ----------------------------------- | ---------------------------------------------------------- |\n| `devmotion init <name>`             | Scaffold a new project (`devmotion.json` + `scenes/`)      |\n| `devmotion preview [--port 5173]`   | Open the Studio in the browser, hot-reloads on file change |\n| `devmotion render [--output X.mp4]` | Render to MP4 (auto-spawns Studio if not running)          |\n| `devmotion add-scene <name>`        | Append a new scene, `--with gsap`/`lottie`/`bare`          |\n| `devmotion mcp`                     | Run the local MCP server over stdio                        |\n| `devmotion mcp --print-config`      | Print a stdio MCP config snippet                           |\n| `devmotion doctor`                  | Check ffmpeg & Playwright are installed                    |\n\n---\n\n## Project shape\n\n```\nmy-video/\n├── devmotion.json    # project config (size, fps, scenes)\n├── scenes/\n│   ├── intro.html    # one HTML file per scene\n│   └── outro.html\n└── assets/           # images, videos, fonts, lottie JSON\n```\n\n### `devmotion.json`\n\n```json\n{\n  \"version\": 1,\n  \"name\": \"my-video\",\n  \"width\": 1920,\n  \"height\": 1080,\n  \"fps\": 30,\n  \"duration\": 10,\n  \"background\": { \"type\": \"solid\", \"color\": \"#0a0a0a\" },\n  \"scenes\": [{ \"id\": \"intro\", \"file\": \"scenes/intro.html\", \"start\": 0, \"duration\": 10 }]\n}\n```\n\n### Scene HTML — `data-dm-*` protocol\n\nEvery element annotated with `data-dm-*` becomes a layer:\n\n```html\n<div\n  data-dm-id=\"title\"\n  data-dm-enter=\"fade-in\"\n  data-dm-enter-time=\"0.5\"\n  data-dm-duration=\"0.8\"\n  data-dm-easing=\"ease-out\"\n  data-dm-keyframe-opacity=\"0:0@ease-out; 0.5:1@ease-out; 9:1; 10:0@ease-in\"\n  style=\"color: white; font-size: 48px\"\n>\n  Hello DevMotion\n</div>\n```\n\n| Attribute                | Description                                         |\n| ------------------------ | --------------------------------------------------- |\n| `data-dm-id`             | Unique layer id (referenced by mutations)           |\n| `data-dm-enter`          | Entry preset (`fade-in`, `slide-in-left`…)          |\n| `data-dm-exit`           | Exit preset                                         |\n| `data-dm-enter-time`     | Start time (seconds)                                |\n| `data-dm-exit-time`      | End time (seconds)                                  |\n| `data-dm-duration`       | Preset duration                                     |\n| `data-dm-easing`         | Easing function                                     |\n| `data-dm-keyframe-*`     | Per-property keyframes: `\"time:value@strategy\"`     |\n| `data-dm-word-separator` | Optional separator for `word-reveal` text keyframes |\n| `data-dm-grid-increment` | Grid step for `snap-grid` quantized keyframes       |\n| `data-dm-track`          | Timeline track (z-order)                            |\n| `data-dm-locked`         | Lock layer from edits                               |\n| `data-dm-hidden`         | Hide layer                                          |\n\nKeyframe strategies map to interpolation families automatically:\n\n- Continuous easing: `linear`, `ease-out`, `ease-in-out`, `ease-out-quad`, etc.\n- Discrete jumps: `step-start`, `step-end`, `step-mid`\n- Quantized values: `integer`, `snap-grid` (set `data-dm-grid-increment`)\n- Text reveals for `props.content`: `char-reveal`, `word-reveal`\n\n```html\n<dm-text\n  data-dm-id=\"headline\"\n  transition-effects=\"fade,slide-up,blur\"\n  transition-duration=\"350\"\n  transition-easing=\"ease-in-quad\"\n  slide-distance=\"2.7\"\n  blur-amount=\"0.78\"\n  data-dm-keyframe-props-content=\"0:@char-reveal; 1.4:Welcome to DevMotion@char-reveal\"\n>\n  Welcome to DevMotion\n</dm-text>\n```\n\nFor `dm-text`, `transition-effects` is a comma-separated list applied to each\nnew character/word as it appears. Useful effects include `fade`, `blur`,\n`scale`, `slide-up`, `slide-down`, `slide-left`, and `slide-right`.\n\n### Premium `<dm-*>` elements\n\nFor richer visuals, use the built-in custom elements:\n`dm-phone`, `dm-laptop`, `dm-browser`, `dm-terminal`, `dm-captions`,\n`dm-code`, `dm-video`, `dm-audio`, `dm-text`, `dm-image`, `dm-button`,\n`dm-icon`, `dm-shape`, `dm-html`, `dm-mouse`, `dm-group`.\n\n```html\n<dm-phone\n  data-dm-id=\"demo\"\n  data-dm-enter=\"slide-in-right\"\n  data-dm-enter-time=\"1.5\"\n  src=\"./assets/screen.mp4\"\n></dm-phone>\n```\n\n---\n\n## Animation framework support\n\nScenes can include `<script>` blocks driving GSAP, Lottie, or any custom\nanimation library. DevMotion auto-detects the library, pauses its internal\nclock, and drives it frame-by-frame from the timeline.\n\n| Framework          | Detected via                 | How it's driven                              |\n| ------------------ | ---------------------------- | -------------------------------------------- |\n| GSAP               | `window.gsap.globalTimeline` | `globalTimeline.seek(t, false)`              |\n| Lottie / bodymovin | `window.lottie`              | `goToAndStop(t * 1000, false)` per animation |\n\nDetection is automatic — your scene HTML stays idiomatic, no DevMotion hooks\nor boilerplate. Multiple frameworks coexist on the same scene (e.g. GSAP for\nlayout + Lottie for a logo).\n\nScaffold a scene with a framework template:\n\n```bash\ndevmotion add-scene intro --with gsap     # GSAP CDN + sample tween\ndevmotion add-scene logo  --with lottie   # bodymovin player + sample load\ndevmotion add-scene blank --with bare     # empty body\n```\n\nNeed support for another framework? Adapters live in\n[`src/lib/layers/components/HtmlLayer.svelte`](../../src/lib/layers/components/HtmlLayer.svelte)\n(`FRAMEWORK_ADAPTERS`) — a new adapter is ~10 lines and applies to every\nproject automatically once shipped.\n\n---\n\n## MCP — let an agent edit your project\n\n`devmotion mcp` runs a local MCP server over **stdio**. Agents (Claude Code,\nCursor, Windsurf, …) spawn it inside your project directory to create/edit/remove\nlayers, configure the project, group layers, and apply animation presets —\nevery mutation writes back to your HTML files surgically (preserving formatting,\ncomments, and `<script>` blocks). It does not require `devmotion preview`,\nnetwork access, an account, or an API key.\n\n```bash\ndevmotion mcp --print-config   # print the JSON config snippet to paste into your agent\n```\n\nThe CLI MCP and the SaaS MCP share the same `mutations.ts` code path, so an\nagent that knows how to drive one knows how to drive the other.\n\nInstall the Agent Skill and MCP configuration for Claude Code, Codex, or both:\n\n```bash\nnpx @devmotion/cli setup\n# Non-interactive:\nnpx @devmotion/cli setup --agent both --scope global\n```\n\nGlobal skills are installed to `~/.claude/skills/devmotion/SKILL.md` and\n`~/.agents/skills/devmotion/SKILL.md`. Use `--scope project` for repository-local\nconfiguration. The skill prefers the type-safe MCP operations over editing scene\nHTML by hand.\n\n---\n\n## Two ways to use DevMotion\n\n|             | **CLI / OSS** (this package)               | **SaaS** (devmotion.app) |\n| ----------- | ------------------------------------------ | ------------------------ |\n| Source      | Local filesystem (`devmotion.json` + HTML) | Cloud database           |\n| Editor      | `devmotion preview` (browser)              | Hosted Studio            |\n| Render      | Local ffmpeg + Playwright                  | Hosted GPU farm          |\n| Auth        | None — all local                           | Account + plans          |\n| Agent (MCP) | Local stdio (`devmotion mcp`)              | Remote HTTP              |\n\nThe OSS path is meant for **agents, devs, CI pipelines, and offline work**.\nThe SaaS path is the same engine with managed infrastructure.\n\n---\n\n## License\n\nApache-2.0. See [`LICENSE`](../../LICENSE).\n","readmeFilename":"README.md"}