Every operation Quill performs is also a CLI subcommand — discovery, workflow generation, the pipeline, category seeding, dev-doc captures. The portal calls these same primitives. You can drive the whole product from a terminal.
Discover features, plan workflows, run the browser, narrate, compose video, generate MDX. Without arguments, processes every feature in your catalog. Pass a feature id to run just one.
$ quill # all features
$ quill flows_create # one feature, by idThe fastest path to your first generated article. Runs the testid proposer, initializes the workspace's feature catalog and workflows, executes the pipeline, and seeds help-center categories — in that order, one command.
$ quill onboard ./path/to/your-app
$ quill onboard ./your-app --dry-run # preview only, no writesReads your repo source, proposes a feature catalog (one record per customer-facing capability), and generates a workflow.json per feature so the pipeline can run end-to-end. Requires the target app to be running so route discovery is grounded in reality.
$ quill init # use config.target.repoPath
$ quill init ./path/to/repo # override repo path
$ quill init --force # overwrite existing
$ quill init --skip-workflows # features onlyWalks your repo for interactive elements (buttons, inputs, links) that lack a data-testid attribute and proposes stable ids for each one. Dry-run by default. The runner uses these attributes as its only contract with the UI — never CSS classes, never text content.
$ quill testids # dry-run, prints proposals
$ quill testids --apply # write to diskLooks at your features and proposes a help-center category taxonomy — one level deep, customer-facing labels. Writes to .demodemon/categories.json; the portal renders the help center against it.
$ quill categorizeWalks your backend route handlers, hits each GET endpoint against a running dev server, captures the response shape, and lands draft dev-doc pages in the portal queue.
$ quill devdocs
$ quill devdocs --repo apps/api # walk a subpath
$ quill devdocs --url http://localhost:4000
$ quill devdocs --discovery-only # skip captures
$ quill devdocs --recapture # rebuild + flag drift
$ quill devdocs --tag v1.2.3 # named versionThe --include-side-effects flag is an operator-only override; the pipeline's auto-runs must never use it.
The CLI reads .env.local at the workspace root before any engine touches process.env. Shell-exported vars still win — the loader is non-destructive.
ANTHROPIC_API_KEY=sk-ant-... # required: workflow agent, narration, docs-gen
OPENAI_API_KEY=sk-... # optional: alternate TTS provider
QUILL_WORKSPACE_ID=acme-prod # required in production
QUILL_SESSION_SECRET=# 32+ char random
DEMODEMON_GEN_DIR=# absolute path to generated/
DEMODEMON_TARGET_REPO_PATH=# absolute path to customer repo