CLI reference
All commands in the downloadable StillMade Block CLI.
Run commands
node packages/block-cli/cli.js <command> <target> [argument] [options]Run from the SDK folder, or add the extracted SDK to a project with npm install --save-dev <SDK folder> and call stillmade-block from npm scripts. Targets can be authoring folders or packed files, except where a command creates a new target. --help prints this list.
| Command | Argument | Behavior |
|---|---|---|
| create ./folder | A template (create --list shows them); omit for the text recipe | Write a complete folder: manifest, source, fixtures, a README and, where needed, tests/mocks.json and package.json |
| create-type ./type.json | None | Write an editable connected Project Type example |
| validate target | Optional --mobile | Check the contract without executing behavior; --mobile adds the 320-pixel phone layout profile to the report |
| inspect target | None | Print manifest/runtime or workflow support |
| test target | Optional --mock | Execute fixtures and return the report; --mock (or a tests/mocks.json file) answers hosted calls with stand-ins |
| run target | Optional input.json, --mock; Blocks also accept --state file and --save-state new-file | Execute once and print the outputs (preview is the same command) |
| dev folder | Optional --port 4800, --build "npm run build", and --live (with --site) to review each saved version in your StillMade account | Preview the interface with hot reload |
| ready target | None | Run the Block builder contract readiness check: fixtures, bad input, cancellation, reopen, composition with real catalog Blocks; exits non-zero when FAILED or BLOCKED |
| pack target | Optional output path; add --original with an output.stillmade-block path for your own original implementation | Require passing tests, then write the file to import |
| remix target | Optional output path | Write an editable draft copy with retained license and pinned lineage; nothing is executed |
Templates
| Template | Runtime | Starts |
|---|---|---|
| recipe | recipe | Clean up text with built-in steps; no code. |
| image | recipe | Thicken the lines of an image with built-in image steps. |
| javascript | javascript | Count words with a few lines of sandboxed JavaScript. |
| stateful | recipe | Number takes with memory saved between runs. |
| module | module | Modern JavaScript (ES modules, async, typed arrays) in a Worker. |
| module-wasm | module | A module that runs WebAssembly shipped beside its code. |
| module-hosted | module | A module that calls hosted text and image generation as tools. |
| view-react | module | A React interface (frame view) on a module Block, bundled with esbuild. |
| view-html | javascript | An interface in plain HTML, CSS and JavaScript; no build step. |
| text | capability | Hosted text generation (text.generate) on the person's credits. |
| image-generate | capability | Hosted image generation with any catalog model. |
| video-generate | capability | Hosted video generation with any catalog model. |
| speech | capability | Hosted speech (audio.speech) with any catalog voice. |
| music | capability | Hosted music generation (audio.music). |
| sfx | capability | Hosted sound effects (audio.sfx). |
| transcribe | capability | Hosted transcription with word timings (audio.transcribe). |
| describe-image | capability | Describe or compare up to four images (image.describe). |
| analyze-media | capability | Visual evidence from images or a video (media.analyze). |
| web-fetch | capability | Answer a question from one web page (web.fetch). |
| web-research | capability | Research a topic with sources (web.research). |
| timeline-proposal | capability | Propose Editor timeline edits the person reviews (timeline.propose). |
| outside-api | module | Call an outside https API with the person's own key (net.fetch). |
| connection | module | Call a published OpenAPI adapter with the person's sign-in. |
| storage | module | Remember values across runs in the project's Block storage. |
| trigger-media | capability | Runs on its own when a video is saved (media.saved trigger). |
| trigger-webhook | javascript | Runs when another service sends a webhook. |
| trigger-schedule | javascript | Runs on a schedule with the project's saved inputs. |
Exit and output contract
In a terminal, success prints a readable summary and exits with code 0, and failure prints the error (with failed fixtures and a hint) to stderr and exits nonzero. When output is piped (scripts, coding agents) or with --json, success prints the JSON result object and failure prints a JSON object with error, optional code and report; --text forces readable text. create, create-type, pack and --save-state refuse to overwrite existing files.
Examples
node packages/block-cli/cli.js create --list
node packages/block-cli/cli.js create ./outlines image
node packages/block-cli/cli.js test ./outlines
node packages/block-cli/cli.js dev ./outlines
node packages/block-cli/cli.js pack ./outlines outlines-1.0.0.stillmade.json
node packages/block-cli/cli.js create ./narration speech
node packages/block-cli/cli.js test ./narration --mock
node packages/block-cli/cli.js create-type ./workflow.json
node packages/block-cli/cli.js preview ./workflow.jsonImportable formats
The CLI emits JSON (and .stillmade-module.json bundles for module Blocks), while StillMade also accepts reviewed ZIP source directories. Files outside the supported manifest, source, and fixture layout are not installed as executable dependencies.