{"_id":"@archastro/astroshot","_rev":"4-8c9547f88a74693c6cb4fe43d7476742","name":"@archastro/astroshot","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@archastro/astroshot","version":"0.1.0","keywords":["react","ink","pty","ratatui","terminal","screenshot","visual-testing"],"license":"MIT","_id":"@archastro/astroshot@0.1.0","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://github.com/ArchAstro/astroshots#readme","bugs":{"url":"https://github.com/ArchAstro/astroshots/issues"},"bin":{"astroshot":"bin/astroshot.mjs"},"dist":{"shasum":"c6d31e9314553999b309f21f16cdea9a6fdfb1d1","tarball":"https://registry.npmjs.org/@archastro/astroshot/-/astroshot-0.1.0.tgz","fileCount":13,"integrity":"sha512-AbOf5xvesJa7Cxo+pYjVfwqZFoRmhA4EroerRgLmrVbzKDeccd2T0t0GIhTiAdMDeKVb8zz2dqfNIgZHd8ehQA==","signatures":[{"sig":"MEUCIDsiWKlac1mGPyOJQiKfwMnR2uSKXcUhbylEXf1+S6NIAiEAqtzmRq+wMXPCa+og+zR/iKS6tZlHKaRXvql5Cp+e8HI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16490},"type":"module","engines":{"node":">=22.14.0"},"exports":{"./ink":{"types":"./ink.d.ts","import":"./ink.js"},"./pty":{"types":"./pty.d.ts","import":"./pty.js"},"./tui":{"types":"./tui.d.ts","import":"./tui.js"},"./react":{"types":"./react.d.ts","import":"./react.js"}},"gitHead":"27a128c6cb694c92dbbc63271192ff0cb871262a","scripts":{"test":"node --test test/*.test.mjs","pretest":"npm run build --workspace @archastro/react-shot && npm run build --workspace @archastro/tui-shot"},"_npmUser":{"name":"calvin.grunewald","email":"calvin@archastro.ai"},"repository":{"url":"git+https://github.com/ArchAstro/astroshots.git","type":"git","directory":"packages/astroshot"},"_npmVersion":"11.17.0","description":"One CLI for deterministic React and terminal UI screenshots","directories":{},"_nodeVersion":"26.5.0","dependencies":{"@archastro/tui-shot":"0.1.0","@archastro/react-shot":"0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/astroshot_0.1.0_1785861785264_0.652834794323784","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@archastro/astroshot","version":"0.2.0","keywords":["react","ink","pty","ratatui","terminal","screenshot","movie","screencast","visual-testing"],"license":"MIT","_id":"@archastro/astroshot@0.2.0","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://github.com/ArchAstro/astroshots#readme","bugs":{"url":"https://github.com/ArchAstro/astroshots/issues"},"bin":{"astroshot":"bin/astroshot.mjs"},"dist":{"shasum":"563ba2279ecd9382487a75ecd3f68d74155f5bed","tarball":"https://registry.npmjs.org/@archastro/astroshot/-/astroshot-0.2.0.tgz","fileCount":13,"integrity":"sha512-xtY0UxK+WsvMT4/7Z2jspOIzz20fTLwkYSaTMd4/Cm1Tl4r8pzU8ZYBz7DkNfrYHCUSd9MG9WnDzO+ftrmXIpg==","signatures":[{"sig":"MEUCIQDZLotSg3a6WnS1dtz5CPG2xzzewu0LlwfApMax/LE+dgIgX6vho1gKcJxu0EKihJ/3wbHLowSpr4QoRmaB9Do4290=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fastroshot@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18885},"type":"module","engines":{"node":">=22.14.0"},"exports":{"./ink":{"types":"./ink.d.ts","import":"./ink.js"},"./pty":{"types":"./pty.d.ts","import":"./pty.js"},"./tui":{"types":"./tui.d.ts","import":"./tui.js"},"./react":{"types":"./react.d.ts","import":"./react.js"}},"gitHead":"d50b84239748475d3283edc57ca230bc255d102f","scripts":{"test":"node --test test/*.test.mjs","pretest":"npm run build --workspace @archastro/react-shot && npm run build --workspace @archastro/tui-shot && npm run build --workspace @archastro/movie-harness"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986081a1-8fef-4ef4-9392-011fca3fa5bf"}},"repository":{"url":"git+https://github.com/ArchAstro/astroshots.git","type":"git","directory":"packages/astroshot"},"_npmVersion":"11.17.0","description":"One CLI for deterministic React, terminal, and movie UI captures","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@archastro/tui-shot":"0.2.0","@archastro/react-shot":"0.2.0","@archastro/movie-harness":"0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/astroshot_0.2.0_1786305129787_0.5877861967444575","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@archastro/astroshot","version":"0.2.1","keywords":["react","ink","pty","ratatui","terminal","screenshot","movie","screencast","visual-testing"],"license":"MIT","_id":"@archastro/astroshot@0.2.1","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://github.com/ArchAstro/astroshots#readme","bugs":{"url":"https://github.com/ArchAstro/astroshots/issues"},"bin":{"astroshot":"bin/astroshot.mjs"},"dist":{"shasum":"13de40fd9b559d057e68f0e8bb086f5a273dd672","tarball":"https://registry.npmjs.org/@archastro/astroshot/-/astroshot-0.2.1.tgz","fileCount":21,"integrity":"sha512-9R39ivtp2PdnySZcKnPQFSAm5pwRj/NWCz2JBieNOCYn4NmieD7X5GXoQc04cIPHmwrp5Z1C2VEyi8r+uoX6og==","signatures":[{"sig":"MEQCIAuCWEwgOlGjONXh4F21PrGmZ4ayzouCHby4AMlc6ywIAiBHeoqw1smUXNFBbEVDjxBNekhCjnmfdvEVuIoAG2Aazg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fastroshot@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":756441},"type":"module","engines":{"node":">=22.14.0"},"exports":{"./ink":{"types":"./ink.d.ts","import":"./ink.js"},"./pty":{"types":"./pty.d.ts","import":"./pty.js"},"./tui":{"types":"./tui.d.ts","import":"./tui.js"},"./react":{"types":"./react.d.ts","import":"./react.js"}},"gitHead":"f2573ed7436ed4a76e0b940024006271e625348c","scripts":{"test":"node --test test/*.test.mjs","pretest":"npm run build --workspace @archastro/react-shot && npm run build --workspace @archastro/tui-shot && npm run build --workspace @archastro/movie-harness","build:demo-fixtures":"node scripts/build-demo-fixtures.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986081a1-8fef-4ef4-9392-011fca3fa5bf"}},"repository":{"url":"git+https://github.com/ArchAstro/astroshots.git","type":"git","directory":"packages/astroshot"},"_npmVersion":"11.17.0","description":"One CLI for deterministic React, terminal, and movie UI captures","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@archastro/tui-shot":"0.2.1","@archastro/react-shot":"0.2.1","@archastro/movie-harness":"0.2.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/astroshot_0.2.1_1787184477336_0.6503405294441313","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"_id":"@archastro/astroshot@0.2.2","bin":{"astroshot":"bin/astroshot.mjs"},"bugs":{"url":"https://github.com/ArchAstro/astroshots/issues"},"dist":{"shasum":"5702dd0c5abb54e2fddd6995411654debb2f2f22","tarball":"https://registry.npmjs.org/@archastro/astroshot/-/astroshot-0.2.2.tgz","fileCount":21,"integrity":"sha512-jsVM7Gxow46KipgslLltTkeMC+SorEZFBCR4K4pAyC+TXynDL7kluBso7+fTdU5yKglU3zCAX+62cFkA7yrIQQ==","signatures":[{"sig":"MEUCIQDHfHx05emZ7DNX/JE0M5HAxRWLoCUeOiYJR9jFvOUmjAIgU0rIiN/3kIeg3ZzkVn5lpnsbCljUI42SV2MLa27hghE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF21Hn2wNDhvfnW3iVVUPS5AIQmQ7VqJLJ8cT7mejEd2AiADxnYi4KZftYvjui8rXOolFOznt7IQcUGjNWt72/RIxQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fastroshot@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":760059},"name":"@archastro/astroshot","type":"module","engines":{"node":">=22.14.0"},"exports":{"./ink":{"types":"./ink.d.ts","import":"./ink.js"},"./pty":{"types":"./pty.d.ts","import":"./pty.js"},"./tui":{"types":"./tui.d.ts","import":"./tui.js"},"./react":{"types":"./react.d.ts","import":"./react.js"}},"gitHead":"5915ef1463a066b84f0c5128c06b53e6b1c3dc11","license":"MIT","scripts":{"test":"node --test test/*.test.mjs","pretest":"npm run build --workspace @archastro/react-shot && npm run build --workspace @archastro/tui-shot && npm run build --workspace @archastro/movie-harness","build:demo-fixtures":"node scripts/build-demo-fixtures.mjs"},"version":"0.2.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986081a1-8fef-4ef4-9392-011fca3fa5bf"}},"homepage":"https://github.com/ArchAstro/astroshots#readme","keywords":["react","ink","pty","ratatui","terminal","screenshot","movie","screencast","visual-testing"],"repository":{"url":"git+https://github.com/ArchAstro/astroshots.git","type":"git","directory":"packages/astroshot"},"_npmVersion":"11.17.0","description":"One CLI for deterministic React, terminal, and movie UI captures","directories":{},"maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"_nodeVersion":"24.20.0","dependencies":{"@archastro/tui-shot":"0.2.2","@archastro/react-shot":"0.2.2","@archastro/movie-harness":"0.2.2","@archastro/astroshot-review":"0.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/astroshot_0.2.2_1789431057842_0.4835188946751623"}}},"time":{"created":"2026-08-04T16:43:05.063Z","modified":"2026-09-15T00:10:58.404Z","0.1.0":"2026-08-04T16:43:05.400Z","0.2.0":"2026-08-09T19:52:09.933Z","0.2.1":"2026-08-20T00:07:57.540Z","0.2.2":"2026-09-15T00:10:57.972Z"},"bugs":{"url":"https://github.com/ArchAstro/astroshots/issues"},"license":"MIT","homepage":"https://github.com/ArchAstro/astroshots#readme","keywords":["react","ink","pty","ratatui","terminal","screenshot","movie","screencast","visual-testing"],"repository":{"url":"git+https://github.com/ArchAstro/astroshots.git","type":"git","directory":"packages/astroshot"},"description":"One CLI for deterministic React, terminal, and movie UI captures","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"readme":"# `@archastro/astroshot`\n\nOne command for deterministic React, Ink, and arbitrary terminal screenshots —\nplus **journey movies** into `.astroshot/`.\n\n## Start here (no prerequisites)\n\n```bash\n# Write a real .astroshot/ set: stills + movie poster/video + manifest.json.\n# No Chromium download, no assets of your own; works with the app closed.\nnpx astroshot demo\n\n# Check Node, watched folders, app install/run state, Chromium, and macOS\n# Screen Recording. Each failure prints the exact fix command. Read-only.\nnpx astroshot doctor\n\n# Review the stream in your terminal (Ghostty, kitty, or WezTerm draw the\n# pictures; ffmpeg plays movies). Same review.json as the macOS app.\nnpx astroshot review\n```\n\n`demo` accepts `--feature <name>`, `--root <dir>`, and `--json`. `doctor`\naccepts `--root <dir>`, `--json`, and `--skip-screen`, and exits non-zero when a\nrequired check fails. Watched-folder coverage comes from the Astroshots app's\nown live configuration, so an \"empty tray\" resolves to one of: first-launch\nsetup never completed, this project is outside every watched folder, or the\nproject is watched and the problem is elsewhere.\n\n## Capture\n\n```bash\nnpx astroshot init react\nnpx astroshot init ink\nnpx astroshot init pty\n\nnpx astroshot react ./react.shot.tsx -o ./react.png\nnpx astroshot ink ./ink.shot.tsx -o ./ink.png\nnpx astroshot pty ./pty.shot.yaml -o ./terminal.png\n```\n\n## Movies (`astroshot movie`)\n\nSame binary. Agents: **run `astroshot movie which-source \"…\"` first**.\n\n| You need to record… | `--source` |\n|---------------------|------------|\n| Web / SPA / agent-browser | `browser` |\n| TUI / CLI / truecolor terminal | `pty` (never desktop of Terminal.app) |\n| Native macOS app window | `desktop.window` |\n| Your own PNG sequence | `frames` |\n\n```bash\nastroshot movie --help\nastroshot movie which-source \"ratatui truecolor dashboard\"\nastroshot movie run --source browser --feature web --slug home --url https://example.com\nastroshot movie run --source desktop.window --feature app --slug onboard \\\n  --bundle-id com.example.App --duration-ms 4000\nastroshot movie list-windows   # macOS\n```\n\n`desktop.window` uses macOS `/usr/sbin/screencapture` (already on the system)\nplus a Swift window list shipped in the package — no separate capture binary\ndownload. Requires Screen Recording permission for your terminal/IDE.\n\nUse `react` for isolated browser components, `ink` for in-process Ink fixture\ntrees, and `pty` for executable terminal applications such as Ratatui, Bubble\nTea, Textual, and curses programs. `tui` remains an alias for `ink` for\ncompatibility.\n\nInk fixtures require project-local peers:\n\n```bash\nnpm install --save-dev ink@^7.1 react@^19\n```\n\nInstall the shared Chromium runtime once:\n\n```bash\nnpx astroshot install-browser\n```\n\nUse `react batch <manifest>` or `ink batch <manifest>` for maintained fixture\nsets. Run `<mode> --help` for mode-specific options.\n\nFixture types are available from the unified package:\n\n```tsx\nimport type { ReactShotFixture } from \"@archastro/astroshot/react\";\nimport type { InkShotFixture } from \"@archastro/astroshot/ink\";\n```\n\nPTY YAML and JSON files launch `command` directly, without a shell. Their\n`actions` can wait for visible text, send named keys or literal text, and\npause for bounded durations. Paths in `cwd` are relative to the fixture.\nOn Windows, point `command` at an `.exe`; `.cmd` and `.bat` files are rejected\nbecause running them would introduce an implicit shell.\n\nFixtures, imported modules, and PTY commands execute with the current user's\npermissions. Review untrusted files before capture and never include\ncredentials or private customer data in fixtures or generated images.\n","readmeFilename":"README.md"}