Open with AI
CLI
stillsmith init scaffold stillsmith.config.tsx and an example scenestillsmith dev scene browser + annotation authoring GUIstillsmith plan [filters] print what would be capturedstillsmith capture [filters] capture and write PNGsstillsmith mcp stdio MCP serverstillsmith install install the Playwright Chromium buildFilters
Section titled “Filters”Every filter applies to both plan and capture.
| Flag | Selects |
|---|---|
--target <name> |
Output profile. Default: every target. |
--scene <ids> |
Comma-separated scene ids. |
--shot <names> |
Comma-separated shot names. |
--preset <names> |
Comma-separated preset names. |
--tag <tags> |
Comma-separated tags. |
--clean |
Delete the targeted images first. |
--config <path> |
Path to stillsmith.config.tsx. |
stillsmith capture --target docsstillsmith capture --scene rock-shelf --preset docsstillsmith plan --tag docsOrphaned shots
Section titled “Orphaned shots”If a shot isn’t picked up by any target, because its presets don’t intersect a target’s or it lacks the tag a target filters on, an unfiltered run says so:
Warning: 1 shot(s) are not captured by any target: rock-shelf/heroTheir presets don't intersect a target's, or they lack the tag a target filters on.A shot you wrote and never get is easy to miss, so stillsmith warns rather than staying silent.
Output
Section titled “Output”Each target’s outDir gets a manifest.json:
{ "images": [ { "scene": "rock-shelf", "shot": "docs", "preset": "docs", "path": "rock-shelf-docs.jpg", "width": 1800, "height": 1120, "tags": ["docs"] } ]}width and height are the real pixel dimensions (viewport × dpr), so a docs
site can lay out images without measuring them.
There’s deliberately no timestamp in it. Targets like docs usually write into a
committed directory, and a generatedAt field would dirty your git diff on every
capture even when no pixel changed.