Referenční přehled příkazů CLI
Příkazy a přepínače vygenerované z aktuálního CLI.
Příkazy jsou rozdělené podle toho, s čím pracujete: nástěnky, úkoly nebo sady. Nápověda je převzatá přímo z CLI, a proto zůstává anglicky. Každý příkaz navíc bere --base <url>, který určuje adresu serveru, a --json, který přepne výstup včetně chyb na JEDNU strojově čitelnou obálku na stdout: {v, ok, verb, data, diagnostics, next}, při selhání navíc exit_code. data nese výsledek příkazu; každá diagnostika má code, srozumitelný detail a pokyn k nápravě ve fix. Pouze spustitelné příkazy patří do next[].cmd. Vlastní protokol zachovávají setup extension host, podřízené příkazy přes qa run, work listen, průběžný work watch, auth token (samotný token), skripty doplňování a interaktivní UI. Návratové kódy: 0 ok · 1 chyba · 2 špatné použití (neznámý příkaz, argument nebo přepínač) · 3 work watch --once nic nenašel · 4 vyžaduje přihlášení · 5 krok potřebuje člověka (spusťte znovu s --yes) · 130 zrušeno.
Skupiny příkazů
vitrinka admin — Deployment administration
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka admin projects
The workspace's project registry
Podpříkazy: check
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka admin projects check
List registry rows that still need a decision (exit 1 while any)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka admin smtp
The deployment mailer (one per install)
Podpříkazy: set, status, test
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--org | — | organization slug (default: $VITRINKA_ORG, then the bound workspace's org, then the sole membership) |
--yes | — | accept every proposed plan without asking |
vitrinka admin smtp set
Save the SMTP config (or --clear it)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--ca | — | path to a private-CA PEM bundle |
--clear | — | delete the saved config (fall back to the env SMTP_*/RESEND_API_KEY) |
--from | — | from address |
--host | — | relay host |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-ca | — | drop the stored CA bundle (back to system roots) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--org | — | organization slug (default: $VITRINKA_ORG, then the bound workspace's org, then the sole membership) |
--password | — | relay password (prefer --password-stdin — argv is visible to ps) |
--password-stdin | — | read the relay password from stdin |
--port | — | relay port (server default 587) |
--tls | — | starttls | implicit | none |
--user | — | relay user ('' switches to an anonymous relay) |
--yes | — | do not ask before --clear |
vitrinka admin smtp status
Source, host/tls/from, whether a password is stored
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--org | — | organization slug (default: $VITRINKA_ORG, then the bound workspace's org, then the sole membership) |
--yes | — | accept every proposed plan without asking |
vitrinka admin smtp test
Send a test email to your own address
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--org | — | organization slug (default: $VITRINKA_ORG, then the bound workspace's org, then the sole membership) |
--yes | — | accept every proposed plan without asking |
vitrinka auth — Credentials, one per deployment
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka auth login
Sign this machine in through a browser approval
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--insecure-storage | — | consent up front to storing the token in plain text if no credential store exists |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka auth logout
Revoke this machine's credential for a deployment
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka auth status
Deployments this machine holds credentials and bindings for
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka auth token
Print the stored token, for shell substitution
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board — Annotation boards
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board artifact
Self-contained interactive pages
Podpříkazy: create, init, push
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board artifact create
Build an artifact report from a screenshot set
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--branch | — | branch (default: the current branch) |
--from | — | source capture root (default: .vitrinka/screenshots) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--kind | report | artifact kind |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project name (default: this repository) |
--quality | — | JPEG quality (default 85) |
--select | — | shots to embed: "1,3-5" (1-based manifest positions) |
--size | — | longest-edge resize in px (default 720) |
--slug | — | artifact slug (required; becomes the set key) |
--source | — | source set override: project/branchSlug/key |
--title | — | human title (default: the journey title, then the slug) |
--yes | — | accept every proposed plan without asking |
vitrinka board artifact init
Scaffold an artifact and its set config
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--branch | — | branch (default: the current branch) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--kind | report | artifact kind (seeds the design direction) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project name (default: this repository) |
--slug | — | artifact slug (required; becomes the set key) |
--title | — | human title (default: the slug) |
--yes | — | accept every proposed plan without asking |
vitrinka board artifact push <file.html>
Push one self-contained HTML file onto a board as an artifact card
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--actor | — | X-Board-Actor attribution (default: the stored operator) |
--board | — | board slug (required) |
--device | — | the page's device: phone|tablet|web |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--section | — | land inside the named section (a brainstorm board: the decision chapter) |
--title | — | card title (default: the file name) |
--yes | — | accept every proposed plan without asking |
vitrinka board capture <ios|android|macos|web|safari>
Capture a screenshot into the set, then push
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--action | — | what was done on this screen (after --next: that branch's wire label) |
--boxes | — | runner text map in source-image pixels (default: <adopted image>.boxes.json) |
--device | — | device name |
--file | — | adopt an existing image instead of capturing |
--hidpi | true | web: refuse a 1× file when --viewport is known (default: vitrinka.config.json capture.hidpi, on) |
--hq | — | full-fidelity asset: no lossy re-encode, no resize |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--label | — | stable shot label (journey wiring targets it) |
--next | — | journey branch: the target shot's label (repeatable) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--note | — | caption (required) |
--open | — | deep link to open before capturing |
--region | — | macOS capture region x,y,w,h |
--root | — | capture root (default: .vitrinka/screenshots) |
--route | — | app route (required) |
--settle | — | seconds to wait before capturing (default 4 with --open, else 0) |
--src | — | implementing source file (repeatable or comma-separated) |
--state | — | notable app/auth state |
--target | — | {x,y,w,h} JSON bbox of the clicked element (follows a --next) |
--title | — | human title (also names the file) |
--type | — | safari: css selector of the input to tap for --state keyboard (default: the first text input) |
--udid | — | iOS simulator UDID |
--url | — | provenance URL (beats --open in the manifest); for safari: the page to open (required) |
--viewport | — | WxH or WxH@scale (e.g. 393x852@3) |
--yes | — | accept every proposed plan without asking |
vitrinka board cards
Cards on a board
Podpříkazy: rm
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board cards rm <board> <id…>
Trash cards on a board (ids, comma lists and ranges such as 362-370)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--why | — | why these cards go — required to confirm removing cards you did not create |
--yes | — | accept every proposed plan without asking |
vitrinka board compose <board>
Compose cards onto a board from compose_board arguments (JSON file or - for stdin)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | compose_board arguments as JSON (- reads stdin); a board key is ignored |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board create
Turn a set into an annotation board
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--actor | — | X-Board-Actor attribution (default: the stored operator) |
--btitle | — | board title |
--journey | — | build a branching journey tree instead of a flat flow board |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--root | — | capture root (default: .vitrinka/screenshots) |
--slug | — | board slug (default: <project>-<branch>-<key>, the set's address) |
--title | — | board title (alias of --btitle) |
--yes | — | accept every proposed plan without asking |
vitrinka board diagram
Refreshable architecture diagrams
Podpříkazy: import, schema
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board diagram import <file>
Parse OpenAPI, SQL DDL or docker-compose into a diagram
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--actor | — | X-Board-Actor attribution (default: the stored operator) |
--board | — | board slug (required) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--kind | — | auto|openapi|sqlddl|compose (default: auto-detect) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--rev | — | source revision (git SHA) for the ↻ micro-label |
--section | — | land inside the named section frame |
--title | — | diagram card title |
--verbose | — | print the full card JSON instead of the summary |
--yes | — | accept every proposed plan without asking |
vitrinka board diagram schema
Introspect a live Postgres locally and push its schema
Podpříkazy: push
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board diagram schema push
Introspect --db locally via psql and push the parsed schema
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--actor | — | X-Board-Actor attribution (default: the stored operator) |
--board | — | board slug (required) |
--db | — | postgres connection URL (required; stays local) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--rev | — | source revision for the ↻ micro-label |
--section | — | land inside the named section frame |
--title | — | diagram card title |
--verbose | — | print the full card JSON instead of the summary |
--yes | — | accept every proposed plan without asking |
vitrinka board dump <dir>
Dump a directory of captures onto a board (create-or-reuse, upload, ledger card)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--actor | — | X-Board-Actor attribution (default: the stored operator) |
--board | — | board slug (default: render-audit-<date>-<label>-<sha7>) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--label | — | round label used in the default slug, title and ledger (default: the dir name) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | benchmarking | owning project when the board is created |
--title | — | board title when created (default: "Render audit · <date> · <label> @ <sha7>") |
--workspace | — | workspace to write into (default: the bound workspace) |
--yes | — | accept every proposed plan without asking |
vitrinka board edit [path]
Open a file or project in the Vitrinka editor
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--print | — | print the deep link only |
--project | — | project name override for the registry entry |
--yes | — | accept every proposed plan without asking |
vitrinka board import-chat [file.ndjson]
Publish a chat transcript (eve run or NDJSON) as a chat card
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--actor | — | X-Board-Actor attribution (default: the stored operator) |
--allow-unredacted | — | publish the transcript as-is despite findings |
--assistant-label | — | assistant bubble label (default: eve / assistant) |
--board | — | board slug (required unless --dry-run) |
--dry-run | — | print the card payload instead of publishing |
--eve | — | eve session/run id — fetched through the vitrinka eve proxy |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--ndjson | — | NDJSON transcript file (or pass it as the positional argument) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--redact | — | mask every sensitive match as "▮▮▮ [redacted-<type>]" and publish |
--section | — | land inside the named section frame |
--title | — | card title (default: the run title / file name) |
--user-label | — | user bubble label (default: the stored operator) |
--yes | — | accept every proposed plan without asking |
vitrinka board init
Create a .vitrinka board config for publishing
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--branch | — | branch (default: the current branch) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--key | — | set key (default: today's date) |
--kind | screenshots | set kind |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project name (default: this repository) |
--root | — | capture root (default: .vitrinka/screenshots) |
--title | — | human title |
--yes | — | accept every proposed plan without asking |
vitrinka board list
List boards, optionally filtered by project, subgroup, type or tag
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--archived | — | include archived boards |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--match | — | how to combine tags: all (default) or any |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | only boards owned by this project |
--subgroup | — | only boards in this sidebar subgroup |
--tags | — | comma-separated tags; prefix one with '-' to exclude |
--type | — | only boards of this board type (brainstorm, docs, journeys…) |
--yes | — | accept every proposed plan without asking |
vitrinka board meta
Set the journey header (kicker, title, accent, intro, chips)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--accent | — | title substring to accent |
--chip | — | "Key=Value" chip (repeatable; replaces all stored chips) |
--intro | — | journey intro paragraph |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--kicker | — | journey kicker |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--root | — | capture root (default: .vitrinka/screenshots) |
--title | — | journey title |
--yes | — | accept every proposed plan without asking |
vitrinka board open
Open the thing you're working on: the set's live board, or vitrinka home
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--browser | — | force the https URL even when Vitrinka.app is installed |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--print | — | print the URL only |
--qr | — | render the URL as a terminal QR code instead of opening it |
--root | — | capture root (default: .vitrinka/screenshots) |
--yes | — | accept every proposed plan without asking |
vitrinka board pull
Restore a screenshot set's files into the capture root
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--branch | — | branch the set was pushed from (default: the descriptor, else the current branch) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--key | — | set key (default: the descriptor, else today's date) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project name (default: the root's descriptor, else this repository) |
--root | — | capture root (default: .vitrinka/screenshots) |
--yes | — | accept every proposed plan without asking |
vitrinka board push
Publish the set to vitrinka
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-design | — | skip sending the repo's DESIGN.md with an artifact push |
--no-fix | — | skip the doc.json preflight autofix (typos, entities, JSON damage) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--no-render | — | skip the server's post-publish smoke render (and its screenshot download) |
--prune | — | mirror the folder: delete the set's files it no longer holds |
--revive | — | publish onto an artifact that was deleted: its page comes back (same address) instead of the push being refused |
--root | — | capture root (default: .vitrinka/screenshots) |
--source | — | cross-link source set: project/branchSlug/key |
--title | — | human title, re-sent on every push |
--yes | — | accept every proposed plan without asking |
vitrinka board rename <project>/<branchSlug>/<selector> [new-name]
Give the set a stable custom name
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--clear | — | clear the custom name |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board share <board>
Mint a share link for outside people, optionally opening on one element
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--card | 0 | open the link on this element (the id in /a/<id>) as a document; the link still grants the whole board |
--expires | 30d | link lifetime: 24h, 7d, 30d, never |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--mode | view | view (read-only) or annotate (link holders can leave feedback) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka board upload <files...>
Upload files onto a board as cards
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--actor | — | X-Board-Actor attribution (default: the stored operator) |
--anchor | — | dock beside this card id |
--board | — | board slug (required) |
--create-section | — | create --section as a new frame even when its name is a near match of an existing one |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--section | — | land inside the named section frame |
--side | — | which side of the anchor: right|below |
--yes | — | accept every proposed plan without asking |
vitrinka board view <board>
Open a board in the browser, or print its link
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--web | true | open in a browser; --web=false only prints the link |
--yes | — | accept every proposed plan without asking |
vitrinka config — This machine's vitrinka settings
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka config bind [workspace]
Bind this repo to a workspace on a deployment
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project name to bind (default: this repository) |
--yes | — | accept every proposed plan without asking |
vitrinka config default [workspace]
Show or set this deployment's default workspace
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka config hidpi [on|off]
Show or set whether this repo's web captures are 2× (default on)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka config operator [name]
Show or set the board-attribution operator persona
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka config prefix [path] [workspace]
Show or set path-prefix workspace rules
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka config reviewer [self|codex]
Show or set the lane this machine's reviews judge on (default self)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka config writes [confirm|auto]
Show or set the write mode for defaulted directories
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka docs — Look up the deploy's unified reference: element kinds, card kinds, artifact components, guides
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka docs ask <request…>
Ask for a vitrinka command in plain words
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | run the proposed command without asking |
vitrinka fav — Your bookmark tree — star boards, cards, sessions, tasks and projects
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka fav add <kind> <id|slug>
Star a board, card, session, task or project
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--folder | — | file into this folder: an id, or a name (created when missing) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--scope | — | personal or workspace (default: the workspace's default star scope) |
--yes | — | accept every proposed plan without asking |
vitrinka fav list
Print your bookmark tree
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--scope | all | which root: personal, workspace or all |
--yes | — | accept every proposed plan without asking |
vitrinka fav rm <kind> <id|slug>
Remove a star
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--scope | — | personal or workspace (default: the workspace's default star scope) |
--yes | — | accept every proposed plan without asking |
vitrinka intake — The intake queue — drafts proposed by sessions, annotations, reports, PRs and Eve
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka intake accept <id>
Accept a pending draft
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--family | — | decide the whole pending family in one verdict: a QA plan draft with its journeys, or the journeys proposed on a live plan |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka intake decline <id>
Decline a pending draft
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--family | — | decide the whole pending family in one verdict: a QA plan draft with its journeys, or the journeys proposed on a live plan |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka intake list
List pending intake drafts with their dedupe verdicts (--status declined|merged for closed ones)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--status | — | pending (default) | accepted | declined | merged |
--yes | — | accept every proposed plan without asking |
vitrinka intake merge <id>
Merge a pending draft
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--into | 0 | the task this draft duplicates |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka intake propose <title>
Propose a draft through the intake door (deduped; a human accepts it)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--body | — | markdown body |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--type | — | task | bug | story | epic | todo |
--yes | — | accept every proposed plan without asking |
vitrinka me — Todos, agenda, diary, schedules, work time and your project brief
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me agenda [today|tomorrow|<day>|week]
Your planned days: list (default today), add a task, done, move, rm
Podpříkazy: add, done, move, rm
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--people | — | whose days: me and/or user ids, comma-joined (default me) |
--project | — | only this project's tasks (<project> or <workspace>/<project>) |
--yes | — | accept every proposed plan without asking |
vitrinka me agenda add <task>
Plan an existing task on a day (default today): its id, <workspace>/<id>, key or url
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--at | — | start HH:MM on the quarter hour (omit for all-day) |
--for | — | length on the quarter hour, e.g. 90m or 1h30m (default 1h) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--on | — | plan it on a day: YYYY-MM-DD, a weekday, yesterday |
--person | — | plan it on someone else's agenda by user id (workspace admins) |
--today | — | plan it today (the default) |
--tomorrow | — | plan it tomorrow |
--yes | — | accept every proposed plan without asking |
vitrinka me agenda done <item>
Tick an agenda item — closes the item only, never the task's state (a todo completes)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me agenda move <item>
Move an agenda item to another day, set its time, or make it all-day
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all-day | — | clear the time block |
--at | — | start HH:MM on the quarter hour (omit for all-day) |
--for | — | length on the quarter hour, e.g. 90m or 1h30m (default 1h) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--to | — | the new day: today, tomorrow, YYYY-MM-DD, a weekday |
--yes | — | accept every proposed plan without asking |
vitrinka me agenda rm <item>
Take an item off its day (the task itself is untouched)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me brief
The project brief — now, next, blocked, what changed, who holds what, Eve's suggestions
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me diary
The personal diary — promote a recorded meeting into a project
Podpříkazy: promote
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me diary promote <card>
Turn a diary meeting card into a meeting task (audio + transcript attached) in a project
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | the project the meeting task lands in (required; must exist there) |
--workspace | — | the workspace the task lands in (default: the bound workspace) |
--yes | — | accept every proposed plan without asking |
vitrinka me schedule
Scheduled reminders — add, list, ripe, move, skip, end
Podpříkazy: add, end, list, move, ripe, skip
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me schedule add <title> --in <dur> | --at <time>
Schedule a todo at a clock time
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--at | — | a clock time: RFC 3339, 'YYYY-MM-DD HH:MM', 'tomorrow 17:30', 'fri 09:00', '17:30' |
--body | — | markdown body |
--every | — | recur every … (one segment: 1d · 1w · 4h) |
--in | — | a delay from now (30m · 4h · 3d · 2w) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--lead | — | ripen this long before the time (default 2h) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--priority | — | low | normal | high |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me schedule end <id>
End a scheduled todo (status done; a recurring series stops)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me schedule list
Open scheduled todos bucketed OVERDUE / TODAY / THIS WEEK / LATER (--all: every project)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | every project |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me schedule move <id> --in <dur> | --at <time>
Reschedule a todo
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--at | — | a clock time: RFC 3339, 'YYYY-MM-DD HH:MM', 'tomorrow 17:30', 'fri 09:00' |
--in | — | a delay from now (30m · 4h · 3d) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me schedule ripe
Todos that are ripe now (--claim: announce each once per cooldown; --all: every project)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | every project (/api/v1/me/ripe) |
--claim | — | record the announcement; repeat within the cooldown prints nothing |
--compact | — | one line per todo |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me schedule skip <id>
Skip a recurring todo's current occurrence (one step forward)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me time
Automatic human and agent work tracking
Podpříkazy: capture, disable, enable, hooks, service, status
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me time capture
Run automatic capture and durable delivery until stopped
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me time disable
Pause local capture immediately
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me time enable
Opt in on this machine and register automatic agent hooks
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--exclude-application | — | bundle identifiers never recorded |
--human | true | capture foreground human activity with the native sampler |
--idle-seconds | 120 | idle threshold |
--install-hooks | true | register machine hooks (false for isolated harness verification) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project for unassigned human activity |
--sampler | worktime | Výbava worktime executable |
--yes | — | accept every proposed plan without asking |
vitrinka me time hooks
Render hook settings for an isolated harness without installing them
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--harness | claude | claude or codex |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me time service
Automatic capture at login
Podpříkazy: install
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me time service install
Keep the opted-in collector running at macOS login
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me time status
Show consent, routing and pending capture
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo
Personal todos — add, list, show, done, drop, milestones
Podpříkazy: add, backfill, done, drop, list, milestone, show
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo add <title>
Add a todo — a trigger, a milestone, a due date or a clock time
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--at | — | a clock time: RFC 3339, 'YYYY-MM-DD HH:MM', 'tomorrow 17:30', 'fri 09:00', '17:30' |
--body | — | markdown body |
--body-file | — | read the body from a file (- = stdin) — a GUI caller keeps big bodies out of argv |
--branch | — | record the checkout's branch |
--commit | — | record the checkout's HEAD commit |
--context | — | full-context companion text (shows as [ctx]) |
--context-file | — | read the context from a file (- = stdin) |
--depends | — | task ids this todo waits on, comma-separated (a blocks link) |
--due | — | a whole-day deadline (YYYY-MM-DD) |
--every | — | recur every … (one segment: 1d · 1w · 4h) |
--in | — | a delay from now (30m · 4h · 3d · 2w) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--lead | — | ripen this long before the time (default 2h) |
--milestone | — | wait for this milestone (by name; created when missing) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--priority | — | low | normal | high |
--project | — | project slug (default: this checkout's) |
--trigger | — | a free-text trigger the model judges ("when the PR merges") |
--when | — | a typed condition the server fires: 'pr 472 merged' · 'release cut' · 'deployed prod' · 'path internal/x/**' · 'task 12' · 'after 31' (other text stays prose) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo backfill
Propose typed when conditions for the project's prose-trigger todos (--dry-run shows the plan; each proposal needs a human verdict)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--dry-run | — | print the plan without filing proposals |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo done <id>
Complete a todo (a recurring one rolls to its next occurrence)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo drop <id>
Drop a todo (status cancelled)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo list
List todos (open by default; --all every project; --here the checkout's, silent when none)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | every project |
--closed | — | include done and dropped todos |
--compact | — | one line per todo: - #id title [ctx] [project] — when (high) |
--here | — | the checkout's project; prints nothing when none resolves |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--open | true | open todos only (the default) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo milestone
Milestones the todos wait on — add, list, reach, unreach
Podpříkazy: add, list, reach, unreach
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo milestone add <name>
Create a milestone (--due YYYY-MM-DD)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--due | — | target date (YYYY-MM-DD) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo milestone list
List the project's milestones (✓ = reached)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo milestone reach <name|id>
Mark a milestone reached — the todos waiting on it ripen now
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo milestone unreach <name|id>
Clear a milestone's reached mark
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka me todo show <id>
Read one todo in full — fields, context, body, links, milestone
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka outbox — Writes queued while the deployment was unreachable — list, flush, retry, drop
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka outbox drop <id>
Give up a queued write for good (asks first; --yes skips)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka outbox flush
Replay the pending writes now, oldest first, each exactly once
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka outbox list
Show pending, parked and recently replayed writes
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka outbox retry <id>
Put a parked write back in the queue (--new-key: send it as a new request)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--new-key | — | send under a fresh Idempotency-Key — only after checking the change did NOT land (a request_in_doubt park) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka project — This repository's vitrinka wiring
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka project commits
The commit convention: show it, or turn the subject prefix on/off for this project
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--subject | — | on|off — prefix commit subjects with the task id in the workspace style |
--yes | — | accept every proposed plan without asking |
vitrinka project copilot
Read the project Overview: Eve's brief, needs you, gating bugs, next, active sprints, week
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--tz | — | IANA zone placing today (default: your timezone pref) |
--yes | — | accept every proposed plan without asking |
vitrinka project deploy-mark <env> <sha>
Record that a commit reached an environment (prod · staging · …) so deployed <env> todos fire
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--at | — | when it reached the environment (RFC 3339; default now) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka project fields
A project's custom-field definitions — list, add, update, remove
Podpříkazy: add, list, remove, update
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka project fields add <key> <label> --kind <kind>
Define a field (kinds: text longtext select multiselect checklist number date url relation)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--applies-to | — | task type this field belongs to: * | task | bug | story | epic |
--default | — | select default (one of the options) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--kind | — | value kind |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--options | — | select/multiselect values, comma-separated |
--position | 0 | sort position |
--project | — | project slug (default: this checkout's) |
--required | — | mark the field required |
--yes | — | accept every proposed plan without asking |
vitrinka project fields list
List the project's field definitions
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka project fields remove <key>
Delete a definition and every value stored under it
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka project fields update <key>
Patch a definition — only the flags you pass change (key and kind are immutable)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--applies-to | — | task type this field belongs to: * | task | bug | story | epic |
--default | — | select default (one of the options) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--label | — | new label |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--options | — | select/multiselect values, comma-separated |
--position | 0 | sort position |
--project | — | project slug (default: this checkout's) |
--required | — | mark the field required |
--yes | — | accept every proposed plan without asking |
vitrinka project history
Product snapshot, stable chapters and original source versions
Podpříkazy: chapter, chapters, snapshot
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka project history chapter <id>
Read original product history with stable snapshot cursors
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--cursor | — | opaque next cursor; never mix snapshot cursors |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 20 | bounded page size (1–50 chapters; 1–200 sources) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--snapshot | — | snapshot watermark for the first page; continuation cursor already carries it |
--yes | — | accept every proposed plan without asking |
vitrinka project history chapters
Read original product history with stable snapshot cursors
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--cursor | — | opaque next cursor; never mix snapshot cursors |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 20 | bounded page size (1–50 chapters; 1–200 sources) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--snapshot | — | snapshot watermark for the first page; continuation cursor already carries it |
--yes | — | accept every proposed plan without asking |
vitrinka project history snapshot
Read the product snapshot without fetching its history
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka project index
Configure and refresh the path autocomplete index
Podpříkazy: configure, status
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--components | — | scan a UI library and push the component index instead |
--dry | — | with --components: print the scan as JSON and push nothing |
--dry-run | — | print the exact manifest and upload nothing |
--explain | — | explain whether one repository-relative path is indexed, and why |
--from | — | push an enriched components JSON file instead of scanning (with --components) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--library | — | UI kit name, one per library in a monorepo (with --components) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project name (defaults to the repository name) |
--root | — | capture root of the repo to index (defaults to the current repository) |
--src | — | comma-separated component dirs to scan (with --components) |
--yes | — | accept every proposed plan without asking |
vitrinka project index configure
Interactively define, preview and approve the index policy
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka project index status
Show the policy, approval and last-upload state — read-only
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka project link [project]
File this checkout under an existing vitrinka project (a multi-repo project's next repository)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | take every default without prompting |
vitrinka project merge <from> --into <to>
Merge a project into another project of the same workspace
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--adopt | — | mint one epic in <to> (titled by --title) and re-parent <from>'s root tasks under it |
--allow-mirror-push | — | merge even though <to> mirrors to a tracker with local truth (the moved tasks will be pushed) |
--apply | — | write the merge (default: dry run) |
--dry-run | — | print what would move and write nothing — the default, spelled out |
--into | — | the project <from> merges into — it survives (required) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--title | — | the epic's title (with --adopt) |
--yes | — | accept every proposed plan without asking |
vitrinka project merge-plan --into <project>
List the stray projects a merge into <project> would move — a dry run, nothing is written
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--into | — | the target project the strays would merge into (required) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka project now
Read needs-you, outcomes and next work at project or sprint scope
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--category | — | category ids (repeatable or comma-separated); omit for all categories |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--sprint | 0 | scope sprint id; 0 reads the project |
--yes | — | accept every proposed plan without asking |
vitrinka project release
The release track: show each repository's window, --refresh to sweep them, --cut to freeze the release
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--cut | — | freeze the release page and open the next window (asks first; --yes confirms) |
--expect-head | — | with --cut: refuse unless the window's head is this commit (the SHA you checked) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--notes | — | link the release's notes document: <project>/<branch>/<key> | <card URL> | <card id> |
--notes-clear | — | unlink the release's notes document and drop its preview from the board |
--project | — | project slug (default: this checkout's) |
--refresh | — | sweep every repository of the release and ask Eve to rewrite the page |
--repo | — | with --refresh: <owner>/<name>[:<branch>][@<sha|RFC3339>], once per repository (the first refresh names every repository and its start) |
--title | — | with --cut: the release's name (default: the page's own, else the date) |
--until | — | with --refresh: pin the primary repository's window end to this commit on its branch (full SHA); only merges it contains are swept |
--version | — | with --cut: the release's version |
--yes | — | accept every proposed plan without asking |
vitrinka project tidy
Sweep legacy roots and stray shots into .vitrinka/
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | also move loose images and audit files (not just shot-*.png litter) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | apply the planned moves |
vitrinka project transfer [project] --to <workspace>
Copy a whole project into another workspace you own
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--archive-source | — | after the destination commits, retire the source: boards archived, tasks trashed, name marked moved |
--dry-run | — | count rows and blobs, write nothing |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--merge | — | the destination already has this project: merge vocabulary by key, append content, rename colliding boards/sets |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--to | — | destination workspace slug (required) |
--yes | — | accept every proposed plan without asking |
vitrinka project unlink
Drop this checkout from its project: the ledger row and the origin's line in the project's repositories
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa — Runs, exploratory sessions, pairing and session archives
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa pair
Supervise the app under test for live pairing
Podpříkazy: logs, relay, restart, run, status, stop
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa pair logs <stack>
Print a stack's log path and tail
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--lines | 60 | how many trailing lines to print |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa pair relay
Relay the local Claude session's replies to the pair panel (opt-in)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--dir | — | repo directory whose Claude transcript to tail (default: this repo's root) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--session | 0 | recorder session id (default: the project's newest live session) |
--transcript | — | exact transcript .jsonl to relay (default: the repo's newest at start — PINNED for the whole run, never switched) |
--yes | — | accept every proposed plan without asking |
vitrinka qa pair restart [stack…]
Restart supervised stacks so a fix reaches the running app
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa pair run [stack…]
Start the project's run stacks (reuse when already healthy)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa pair status
Show each stack's supervision, liveness and readiness
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa pair stop [stack…]
Stop supervised stacks
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa run [flags] -- <test command> [args…]
Run a test command and publish its results onto the feature's QA record — one verb, no manifest to write
Podpříkazy: publish
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--app | — | app name stamped on the manifest |
--bugs | intake | what a failing case becomes: intake (a bug draft blocking the journey) · direct (a live bug task) · none |
--dry-run | — | run and fold, print the manifest, publish nothing |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--no-shots | — | send the manifest only — no screenshots, no log |
--pr | — | the run's pull request as owner/repo#n |
--project | — | the project for an unplanned run (default: the repo's project) |
--results | — | the result file or directory to fold (skips the scan) |
--runner | — | runner name stamped on the manifest (default: from the result format) |
--task | 0 | the target task: a qa task, a journey, a story or an epic (default: the checkout's vt-<id>, else Unplanned runs) |
--yes | — | accept every proposed plan without asking |
vitrinka qa run publish <manifest.json>
Publish a test run manifest: create or extend the qa task + journeys, set verdicts, compose the qa board, attach shots and log, file failing cases
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--bugs | intake | what a failing case becomes: intake (a bug draft blocking the journey) · direct (a live bug task) · none |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--log | — | the run log to attach (default: the manifest's log) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--no-shots | — | send the manifest only — no screenshots, no log |
--pr | — | the run's pull request as owner/repo#n (attached to the epic as a pr ref) |
--project | — | the project for an unplanned run (default: the repo's project) |
--task | 0 | the target task: a qa task, a journey, a story or an epic (default: the checkout's vt-<id>, else Unplanned runs) |
--yes | — | accept every proposed plan without asking |
vitrinka qa session
Archive, continue and launch coding-agent sessions behind tasks
Podpříkazy: archive, continue, launch
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa session archive <transcript.jsonl> --task <id>
Archive a harness transcript behind a task (redacted, paths made portable) — a hand-off act, never automatic
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--hint | — | when a reader should load this transcript ("load when …") |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--task | — | task id the session belongs to |
--version-of | — | ref id this upload is a new version of (default: same filename on the task) |
--yes | — | accept every proposed plan without asking |
vitrinka qa session continue <task-id>
Print the task's latest distill as a /continue brief; offer native resume when the transcript's harness is yours
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--ref | — | read this distill ref instead of the latest |
--yes | — | accept every proposed plan without asking |
vitrinka qa session launch <task-url|slug> <dir>
Open a fresh coding-agent session through $VITRINKA_SESSION_LAUNCHER, or say which /continue line to run by hand
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa usertest
Exploratory testing as one session: start · case · (snap…) · verdict · finish → the QA record
Podpříkazy: case, finish, start, status, verdict
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa usertest case <title>
Open a case — every following snap attaches to it until its verdict
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--key | — | journey key (default: the title's slug) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa usertest finish
Fold the session into a run manifest and publish it: qa task, one journey per case, verdicts, shots, bug drafts
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--bugs | intake | what a failing case becomes: intake · direct · none |
--dry-run | — | write and print the manifest, publish nothing |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--keep | — | keep the session file after publishing |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--no-shots | — | send the manifest only — no screenshots |
--pr | — | the session's pull request as owner/repo#n |
--project | — | the project for an unplanned session (default: the repo's project) |
--task | 0 | the target task (default: the session's, else the checkout's vt-<id>, else Unplanned runs) |
--yes | — | accept every proposed plan without asking |
vitrinka qa usertest start
Open an exploratory testing session
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--app | — | app name stamped on the run |
--device | — | device name stamped on the run |
--force | — | discard an open session and start a new one |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--platform | — | platform stamped on the run (ios · android · web · macos) |
--project | — | the project for an unplanned session (default: the repo's project) |
--task | 0 | the feature this session tests: a qa task, a story or an epic (default: the checkout's vt-<id>) |
--yes | — | accept every proposed plan without asking |
vitrinka qa usertest status
Show the open session
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka qa usertest verdict <pass|fail|skip>
Close the open case with its verdict
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--note | — | what happened (a failing case's note becomes the bug draft's first line) |
--yes | — | accept every proposed plan without asking |
vitrinka review — The review brief and its rules — the rubric a review pass applies
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka review brief
Render the review brief — the rules a review pass applies, as one prompt block
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--persona | — | seat line appended to the brief ("a senior mobile designer reviewing onboarding") |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka review file <board> <candidates.json>
File explicitly kept, version-pinned candidates through one annotate batch
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--agent | — | author runtime (required): claude-code | codex | eve | gemini | other:<slug> | judge/<model> |
--dry-run | — | resolve anchors and return version-pinned crop URLs without filing |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka review judge <board|set> | --run <id>
Judge captured screens and audit findings; --status reads compact results; --run has Eve judge an eve review run
Podpříkazy: export
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--batch | — | request provider batch processing |
--calibration | — | audit a calibration sample of passes |
--instructions | — | optional review focus |
--journey | — | scope to the latest journey pass |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--model | — | judge model override; default team routing |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--rules | — | rule IDs (comma-separated; default all enabled) |
--run | 0 | have Eve judge an eve review run (vitrinka review plan <board>… --judge eve) |
--section | — | scope to a board section |
--set | — | scope is project/branchSlug/selector; resolve its existing board on the server |
--status | — | read existing judgments without starting a pass |
--yes | — | accept every proposed plan without asking |
vitrinka review judge export <job>
Export version-pinned judgments as JSON; explicitly mark keep before review file
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--candidates | — | export mechanical candidates instead of model judgments |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka review lint <shots-dir>
Measure captured images and boxes.json; write candidates.json without a browser or model
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--locale | — | captured locale, e.g. cs-CZ |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--output | — | output path (default <shots-dir>/candidates.json) |
--theme | — | captured theme: dark or light |
--viewport | — | WxH in source-image pixels; default image dimensions |
--yes | — | accept every proposed plan without asking |
vitrinka review plan [board…]
Plan a review over boards — scope, capture gaps, duplicates, reuse — as a review run; --run reads its receipt
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--after | 0 | with --cards: the next page after this card id (the reply's moreCards) |
--cards | — | with --run: list each card's receipt |
--checklist | — | checks judged beside the project rubric (text or a digest): reuse matches only runs with the same |
--full | — | judge everything again, reusing nothing |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--judge | — | eve: Eve judges the run server-side (vitrinka review judge --run <id>) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--run | 0 | read a planned run's receipt |
--scope | — | latest (each journey's last capture pass) or all |
--section | — | review these sections instead of a scope (repeatable) |
--sight | — | with --run: echo the code printed on sheet 1 |
--state | — | with --cards: only cards in this receipt state |
--yes | — | accept every proposed plan without asking |
vitrinka review rules
Read, lint and publish review rules (markdown with frontmatter)
Podpříkazy: get, lint, list, put
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka review rules get <id>
Print one rule as markdown (the form put takes back)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--workspace | — | address the workspace layer instead of a project |
--yes | — | accept every proposed plan without asking |
vitrinka review rules lint <file>...
Lint rule files with the server's own linter; --fix repairs what is mechanical
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--fix | — | rewrite each file with the mechanical repairs (BOM, entities, enum near-misses, a derived id, a default check) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka review rules list
List the resolved rules with the layer each one comes from
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--workspace | — | address the workspace layer instead of a project |
--yes | — | accept every proposed plan without asking |
vitrinka review rules put <file>...
Publish rule files to the project (or --workspace) layer — lints first, every put is a new version
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--fix | — | autofix each file on disk before publishing |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--workspace | — | address the workspace layer instead of a project |
--yes | — | accept every proposed plan without asking |
vitrinka review stats
Human verdicts per review rule and agent/model
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | filter by project; omit for the workspace |
--since | 90d | lookback days (90d) or RFC3339 timestamp |
--yes | — | accept every proposed plan without asking |
vitrinka search — Search the workspace: tasks, pages, boards, tags, cards, sessions and shots in one call (annotations by number: №432)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--deep | — | with --resolve: Eve picks among an ambiguous verdict's candidates (spends AI credits) |
--groups | — | comma-separated groups to run: tasks,annotations,pages,boards,tags,cards,sessions,shots (default: all; tasks alone with --type/--state) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 0 | max hits per group (default 8, max 50; with --resolve at most 5) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | narrow to one project |
--resolve | — | read <text> as one task reference: a verdict and at most 5 candidates |
--state | — | canonical task state key (tasks only) |
--tags | — | comma-separated tag slugs (boards, cards, sessions) |
--type | — | task type key (tasks only) |
--yes | — | accept every proposed plan without asking |
vitrinka search query <sql>
Run one read-only SELECT over the workspace's agent calls ledger and board/task facts
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--format | — | table | json | csv (default: table on a TTY, json otherwise) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--param | — | positional value for the next ? placeholder (repeatable) |
--yes | — | accept every proposed plan without asking |
vitrinka search resolve <url>
Resolve a pasted app URL to the task, project, board or card it names — in any workspace you belong to
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup — First run: sign in, plugins + MCP, this repo, the index — then modules, skills, extension, uninstall
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--advanced | — | show the noise table, the directory picker and the exact manifest |
--check | — | with --runners: report drift between the declaration and the repo, exit 1 on drift, write nothing |
--experimental | — | also install the vitrinka-experimental plugin (flows still proving themselves; Claude Code only, opt-in) |
--extension | — | install the journey-recorder extension without asking |
--force-icon | — | send the repository's icon again, even over an icon a person chose for the project |
--harness | — | project-level MCP files to render from vitrinka.config.json: a comma-separated list of claude, codex, cursor, opencode, vscode, gemini, or all (default: claude plus every harness detected on this machine or in the repo) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--local | — | project scope: no shim/completion, harness project files only, no Claude Code or Codex registry writes (both are global) |
--mcp | — | register the MCP endpoints without asking |
--modules | — | the modules to install as plugins, comma-separated (pm, me, qa, experimental; core is always on) — default: every module but experimental, or the choice vitrinka setup modules recorded |
--no-acp | — | skip the ACP listener adapters (vitrinka work listen --harness …) |
--no-completion | — | skip shell completion |
--no-extension | — | skip the journey-recorder extension |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-mcp | — | skip the MCP registrations |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--operator | — | set the board-attribution operator persona |
--project | — | project name (default: the project declaring this origin, else the repository name) |
--runners | — | declare where the repo's test runners write results (vitrinka.config.json runners[]); only this step runs |
--yes | — | accept every proposed plan without asking |
vitrinka setup extension
Install, update and diagnose the recorder extension
Podpříkazy: setup, update
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup extension setup
Unpack the marketplace release and register the update host
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--force | — | re-download even when the installed version matches |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup extension update
Swap the folder to the newest release (the extension reloads itself)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--check | — | report whether an update exists, install nothing |
--force | — | reinstall even when current |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup modules
Modules are plugins: list, enable or disable one (core is always on)
Podpříkazy: disable, enable, list
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup modules disable <module|plugin>
Disable a module by removing the plugin that ships it (pm, me, qa, experimental)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup modules enable <module|plugin>
Enable a module by installing the plugin that ships it (pm, me, qa, experimental)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup modules list
List every module, its plugin and where it is installed
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup skills
The skill roster: every plugin's skills by module, and the one-skill show|hide switch
Podpříkazy: hide, show
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka setup skills hide <skill>
Hide an optional skill in Claude Code (skillOverrides)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--scope | — | settings scope: user (~/.claude) or project (./.claude) |
--yes | — | accept every proposed plan without asking |
vitrinka setup skills show <skill>
Show an optional skill in Claude Code (skillOverrides)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--scope | — | settings scope: user (~/.claude) or project (./.claude) |
--yes | — | accept every proposed plan without asking |
vitrinka setup uninstall
Remove everything setup put here
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--local | — | project scope: legacy copies under ./.claude, project-scope MCP first |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--purge | — | also remove ~/.config/vitrinka (token + operator) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint — Outcome scopes — optional dates, concurrent starts and reviewed carry
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint binding
Persist or resume the project's harness-session scope
Podpříkazy: get, set
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint binding get <session>
Read the explicit session binding: unknown, none or sprint
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint binding set <session>
Bind this session explicitly to --none or --sprint, using --version
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--none | — | affirmatively choose no sprint |
--project | — | project slug (default: this checkout's) |
--sprint | 0 | sprint id from this project's list |
--version | 0 | current binding version; 0 only when unknown |
--yes | — | accept every proposed plan without asking |
vitrinka sprint cockpit <id>
Read one sprint's cockpit: goal, counts, obligations, gating bugs, scope change, people, activity, week
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--tz | — | IANA zone placing today (default: your timezone pref) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint complete <id>
Preview explicit carry selection; --apply <preview.json> applies the reviewed version
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--apply | — | reviewed preview JSON file; accepts the CLI data envelope |
--into | 0 | explicit destination sprint; 0 means backlog |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--request-id | — | stable idempotency id for applying this exact preview |
--task | — | selected unfinished task ids; empty carries none |
--yes | — | accept every proposed plan without asking |
vitrinka sprint create <name>
Create an outcome scope with optional dates, goal and coverage
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--coverage | — | covered product:<key>, component:<key> or task:<id>; repeat for multiple |
--ends | — | end date-time |
--goal | — | finite outcome this sprint delivers |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--starts | — | start date-time |
--yes | — | accept every proposed plan without asking |
vitrinka sprint list
List a project's sprints
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint members <id>
Read a bounded page of unfinished members for a carry preview
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--after | 0 | next cursor from the preceding page |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 50 | page size (1–200) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint release
Exact candidates and evidence; verification and shipment remain human authority
Podpříkazy: evidence, get, list, prepare
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint release evidence
Original evidence for an exact candidate
Podpříkazy: add, list
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint release evidence add <candidate-id>
Record original evidence; verified:true requires a human browser session
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | typed request JSON file (- reads stdin; CLI data envelopes accepted) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint release evidence list <candidate-id>
Read a bounded evidence page
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--after | 0 | next cursor from the preceding page |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 50 | page size (1–200) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint release get <candidate-id>
Read candidate identity and currentness
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint release list <sprint-id>
Read a bounded candidate page
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--after | 0 | next cursor from the preceding page |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 50 | page size (1–200) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint release prepare <sprint-id>
Prepare an exact repository/build candidate at the current scopeVersion
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | typed request JSON file (- reads stdin; CLI data envelopes accepted) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint resolve
Resolve feature/bug/followup routing before atomic task creation
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | typed request JSON file (- reads stdin; CLI data envelopes accepted) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint start <id>
Start alongside existing active sprints; absent dates remain absent
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint status <id>
Read Before/Ship/After obligations and bounded blockers
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--after | 0 | next cursor from the preceding page |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 50 | page size (1–200) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--scope-version | — | first page's scopeVersion (required with --after) |
--yes | — | accept every proposed plan without asking |
vitrinka sprint update <id>
Patch goal, coverage or optional dates with the current version
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | typed request JSON file (- reads stdin; CLI data envelopes accepted) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka tag — The tag vocabulary — the third axis beside project and subgroup
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka tag add <board> <tag>...
Attach tags to a board
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--set | — | replace the board's whole tag set instead of adding to it |
--yes | — | accept every proposed plan without asking |
vitrinka tag list
List the known tags and what carries them
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka tag remove <board> <tag>...
Detach tags from a board
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task — The task engine — list, read, file, update, comment, rank, search, ask, delete, start/stop a run, pickup, handback, spot
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task ask [<id>] <question>
Ask Eve one question about a task, or with --project about a whole project (AI credits)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--intent | — | developer (default) · product · qa · reviewer · onboarding, or your own short phrase |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | ask over this project's tasks, or <workspace>/<project> (default with no <id>: this checkout's) |
--scope | — | with <id>: self (the task alone) or tree (adds descendants; default for an epic) |
--yes | — | accept every proposed plan without asking |
vitrinka task brief <id>
Compose the epic's Plan chapter and print the feature-brief skeleton (fill it, then task upload --kind brief)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--out | — | Write the skeleton to this file instead of stdout (the skill fills it under the caps) |
--yes | — | accept every proposed plan without asking |
vitrinka task comment <id> <body>
Comment on a task (@mentions reach My work)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task create <title>
File a task
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--assignee | — | assignee name ("" unassigns) |
--body | — | markdown body |
--category | 0 | workspace category id (0 clears) |
--dueAt | — | RFC 3339 due date ("" clears) |
--endAt | — | RFC 3339 end |
--estimate | 0 | estimate |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--label | — | labels, comma-separated |
--link | — | an issue or page the task tracks (URL, github:o/r#7, jira:PROJ-1); repeatable |
--milestone | 0 | milestone id (0 unassigns) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--obligation-file | — | Before/Ship/After obligation JSON, including explicit deferral owner and trigger |
--origin | — | request origin: human, agent, system or unknown; independent of filer |
--parent | 0 | parent task id (0 detaches) |
--priority | — | urgent | high | medium | low ("" clears) |
--project | — | project slug (default: this checkout's) |
--scope-file | — | ScopeRequest JSON for feature/child/followup/bug/enhancement routing |
--sprint | 0 | sprint id (0 unassigns) |
--startAt | — | RFC 3339 start |
--state | — | state key |
--status | — | legacy status |
--type | — | task | bug | story | epic | todo |
--yes | — | accept every proposed plan without asking |
vitrinka task delete <id>
Soft-delete a task (and trash its board projections)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task field
A task's custom-field values — get, set
Podpříkazy: get, set
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task field get <id> [key]
Print a task's custom-field values (one key, or all)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task field set <id> <key> <value|json>
Set one custom-field value (JSON for lists/checklists; a checklist merges by item; null deletes)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--replace | — | the checklist is the whole list (drops, renames, reorders) |
--yes | — | accept every proposed plan without asking |
vitrinka task final <id>
Compose (or rebuild) the epic's final artifact — the feature board and the versioned final page
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task find <ref>
Which task tracks this issue or page — an exact lookup by link (URL, github:o/r#7, jira:PROJ-1); none is an empty answer
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka task get <id>
Read one task in full, with its comments and refs (--include children for an epic's tree)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--include | — | also read, comma-separated: children (an epic's tree, one call), links, events |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task handback [id] [-]
Hand the task back: land steps and gates on the task (a child only for real work), attach the summary, link the PR, end this session's run — and print the hand-back block
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--board | — | link a board by slug |
--branch | — | the branch the work lives on (default: the checkout's current branch) |
--build-on | — | where the next session should start building |
--decide | — | a call a human owns, a "Decide: title" human gate on this task: "title::why[::who]" — add "::ask:<the sentence a person reads>" (repeat) |
--done | — | one thing that shipped (repeat) |
--gate | — | a human gate on this task, --step with kind human: "name[::who][::when]" — add "::ask:<the sentence a person reads>::why:<what waits on it>" (repeat) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--next | — | a child TASK — only work that needs its own session, PR or QA record: "title" or "bug:title" (repeat, rank order) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--omit | — | something left out, filed as a child: "title::why" (repeat) |
--pr | — | link a pull request as owner/repo#number (repeat) |
--prereq | — | a prerequisite before the next step can start (repeat) |
--read-first | — | ref ids the next session must read first (repeat or comma-separated) |
--session | — | the session whose live run this hand-back ends (default: $VITRINKA_SESSION_ID / $CLAUDE_SESSION_ID) |
--status | — | move the task: backlog|todo|in_progress|in_review|done|cancelled |
--step | — | a step on THIS task — a check on the work just done, a merge, a look: "name[::step|human|date|action][::who-or-YYYY-MM-DD][::when]" (repeat; "Merge PR #12::human::acme-lead::pr 12 merged") |
--summary | — | the higher-level summary everyone reads (required unless the body comes from stdin) |
--surface | — | a new API, component or place to build on (repeat) |
--transcript | — | archive this session's transcript on the task after the hand-back and label it eve-distill — the hand-off to a colleague, never a default: bare --transcript finds the running Claude Code session's file, or --transcript=<path> for a file (Codex) |
--worktree | — | the worktree path (default: the cwd when it is under .worktrees/) |
--yes | — | accept every proposed plan without asking |
vitrinka task label <id>
Add and/or remove labels on a task (labels are created on demand; eve-* names trigger Eve flows)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--add | — | labels to add, comma-separated |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--remove | — | labels to remove, comma-separated |
--yes | — | accept every proposed plan without asking |
vitrinka task lineage [id] --file <event.json>
Land one memo run lineage event (locate or checkpoint) on a task — the door memo's outbox calls
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | the memo outbox request: {v, id, task, event, run, receipt?, archive?: {path, digest}} |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task link <id> <toId>
Relate two tasks (blocks | relates | duplicates | custom --label)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--label | — | label for --rel custom |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--rel | relates | blocks | relates | duplicates | custom |
--yes | — | accept every proposed plan without asking |
vitrinka task links <id>
External links: the issue or page a task tracks — list, add <id> <url>, rm <id> <link-id>
Podpříkazy: add, rm
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task links add <id> <ref>
Attach an issue or page (URL, github:o/r#7, jira:PROJ-1); an issue another task tracks is refused with its owner
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--title | — | the item's title, shown beside the link |
--yes | — | accept every proposed plan without asking |
vitrinka task links rm <id> <link-id>
Detach one external link by its id (vitrinka task links <id> lists them)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task list
List a project's tasks (summary, working order; --sort priority,-due)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--admission | — | admission states: committed, pending, declined, merged |
--ask | — | a phrase Eve compiles into the filter ("open stories under the restart epic"), alone — no facet flag, --filter or --cursor beside it; needs an AI backend |
--assignee | — | assignee name |
--category | — | workspace category ids |
--cursor | — | continue from a previous page |
--filter | — | a raw filter document (base64url JSON) — overrides the facet flags |
--group | — | state groups, comma-separated (backlog,unstarted,started,completed,cancelled) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--label | — | labels, comma-separated |
--limit | 50 | page size (max 200) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--order | — | rank | priority | due | created (legacy; --sort replaces it) |
--origin | — | request origins (human, agent, system, unknown) |
--parent | — | children of this task (any task spelling: 42, VIT-42, a URL); 0 = top-level tasks only |
--project | — | project slug (default: this checkout's) |
--sort | — | sort keys in precedence order, - for descending (priority,-due): rank, priority, due, start, created, updated, title, state, type, assignee, id, sprint, estimate |
--state | — | state keys, comma-separated |
--status | — | legacy status filter |
--text | — | full-text filter: tasks carrying every word (task search ranks any of them) |
--type | — | types, comma-separated (task,bug,story,epic,todo) |
--yes | — | accept every proposed plan without asking |
vitrinka task meeting-notes <id>
Ask Eve for a meeting task's notes, decisions and action-item drafts (--board composes the meeting board too)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--board | — | also compose (or rebuild) the meeting board and link it to the task |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--workspace | — | the workspace the meeting task lives in (what diary promote answered) |
--yes | — | accept every proposed plan without asking |
vitrinka task mine
My work across projects — assigned, created, mentioned, overdue
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task organize
Review explicit category/parent edits before applying; IDs and provenance survive
Podpříkazy: apply, preview
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task organize apply
Apply the reviewed preview plus an idempotency requestId
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | typed request JSON file (- reads stdin; CLI data envelopes accepted) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka task organize preview
Preview selected edits without writing
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | typed request JSON file (- reads stdin; CLI data envelopes accepted) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project slug (default: this checkout's) |
--yes | — | accept every proposed plan without asking |
vitrinka task pickup [id|url]
Print the task's pickup — what to do, where to start, what to read first, which branch exists, what not to load
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task qa-board <id>
Create or return the qa task's board (Plan section with the living journeys diagram + one section per journey)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task rank <id>
Move a task in the manual order (--before / --after neighbour ids; neither = to the end)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--after | 0 | the task that should come AFTER this one |
--before | 0 | the task that should come BEFORE this one |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka task resolve-qa
Resolve the qa task a publish belongs to — --task, else the branch's vt-<id> → its epic's open qa child
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--task | — | a qa task, or an epic/story/task that owns or sits under one (default: the checkout's vt-<id>) |
--yes | — | accept every proposed plan without asking |
vitrinka task search <text>
Full-text search over this checkout's project's tasks (relevance-ranked; --all for every project; --within one task's tree)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | search every project |
--epic | — | only tasks under this task at any depth (any task spelling) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 20 | hits (1..50) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--parent | — | only direct children of this task (any task spelling: 42, VIT-42, a URL) |
--project | — | search this project, or <workspace>/<project> (default: this checkout's) |
--state | — | only this state key (backlog, todo, in_progress, …) |
--type | — | only this task type (bug, epic, story, todo, …) |
--within | — | search this task's own tree instead — titles, bodies, comments, fields and refs (any task spelling) |
--yes | — | accept every proposed plan without asking |
vitrinka task spot <title>
File something you spotted but will not do in this change — a child of the bound task, else of the project's rolling 'Found during implementation' epic
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--body | — | what you saw · where (file, route, screen) · why it is out of scope here |
--from-step | — | promote this step of the parent (item id or exact name) into the child; it leaves the checklist |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--label | — | an extra label by name, created on demand (repeat) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--parent | 0 | the bound task (default: the checkout's vt-<id>; none → the rolling epic) |
--priority | — | urgent | high | medium | low — only when you know it |
--production | — | a user could hit this on the deployed product: adds the might-affect-production label |
--project | — | project slug (default: this checkout's) |
--ref | — | evidence as kind:ref — board:<slug>, pr:owner/repo#n, session:<id> (repeat) |
--type | — | bug (default) for a defect that exists today, task for a follow-up or a Decide: |
--yes | — | accept every proposed plan without asking |
vitrinka task start [id]
Bind this session to a task as a live run — the brief and the cards show who is on it (no id: the checkout's vt-<id>)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--session | — | session id to bind (default: $VITRINKA_SESSION_ID / $CLAUDE_SESSION_ID, else a per-process id) |
--summary | — | what this run is about |
--yes | — | accept every proposed plan without asking |
vitrinka task stop <run>
End a live run with a summary
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--summary | — | what the run did |
--yes | — | accept every proposed plan without asking |
vitrinka task update <id>
Patch a task — only the flags you pass change
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--assignee | — | assignee name ("" unassigns) |
--body | — | markdown body |
--category | 0 | workspace category id (0 clears) |
--dueAt | — | RFC 3339 due date ("" clears) |
--endAt | — | RFC 3339 end |
--estimate | 0 | estimate |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--label | — | labels, comma-separated |
--milestone | 0 | milestone id (0 unassigns) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--obligation-file | — | Before/Ship/After obligation JSON, including explicit deferral owner and trigger |
--parent | 0 | parent task id (0 detaches) |
--priority | — | urgent | high | medium | low ("" clears) |
--project | — | move the task with its whole subtree into this project (states, labels, fields, sprint and milestone map by key; missing keys are created there) — a whole project is vitrinka project merge |
--sprint | 0 | sprint id (0 unassigns) |
--startAt | — | RFC 3339 start |
--state | — | state key |
--status | — | legacy status |
--title | — | new title |
--type | — | task | bug | story | epic | todo |
--yes | — | accept every proposed plan without asking |
vitrinka task upload <id> <files...>
Upload files onto a task as evidence (one file ref per file)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--hint | — | One-line hint stored on the ref (what a reader gets from it; pickup prints it) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--kind | — | Ref kind for every file (an upload kind: file · brief · decision · plan · handoff · transcript · …; default file) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--version-of | 0 | Ref id whose lineage this upload continues as the next version (the brief skeleton's ref id from task brief); default: the file name is the lineage key |
--yes | — | accept every proposed plan without asking |
vitrinka work — The annotation work queue
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka work list
List open work items for this scope
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | every scope — conflict-free, takes no exclusive lease |
--board | — | one board |
--branch | — | narrow a project scope to one branch (default: the current branch) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | a project (default: this repository) |
--yes | — | accept every proposed plan without asking |
vitrinka work listen
Host a harness over ACP and feed it this scope's board work
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | every scope — conflict-free, takes no exclusive lease |
--auto | — | answer allow_always to every permission request (unattended) |
--board | — | one board |
--branch | — | narrow a project scope to one branch (default: the current branch) |
--harness | — | harness to host (default: the first detected harness that can be hosted over ACP) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | a project (default: this repository) |
--takeover | — | steal an EXPIRED lease for this scope |
--yes | — | accept every proposed plan without asking |
vitrinka work watch
Monitor the queue and lease this repo+branch scope
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | every scope — conflict-free, takes no exclusive lease |
--board | — | one board |
--branch | — | narrow a project scope to one branch (default: the current branch) |
--exec | — | headless resume: feed every work line to this harness's listening thread (claude, codex) with its own auto-approve policy |
--harness | claude | the harness this watch wakes, stamped on the lease: one of claude, codex, cursor, opencode, vscode, gemini |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--keepalive | 0 | opt-in seconds between model-waking keepalive lines while a viewer is present; 0 disables |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--once | — | single lease-free probe; exit 3 when the queue is idle |
--project | — | a project (default: this repository) |
--quiet-grace | 5 | seconds to wait between diffs while the queue is non-empty |
--takeover | — | steal an EXPIRED lease for this scope |
--yes | — | accept every proposed plan without asking |
vitrinka workspace — Workspace-wide settings
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka workspace category
Permanent Bugs/Features/Maintenance vocabulary
Podpříkazy: create, list, update
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka workspace category create
Create a permanent workspace category (admin)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | typed request JSON file (- reads stdin; CLI data envelopes accepted) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka workspace category list
Read a bounded page of workspace categories
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--after | 0 | next cursor from the preceding page |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--limit | 50 | page size (1–200) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka workspace category update <id>
Configure or deactivate a category using its version (admin)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--file | — | typed request JSON file (- reads stdin; CLI data envelopes accepted) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka workspace commit-prefix [bracket|bare|colon]
Show or set the workspace-wide subject prefix style ([vt-401] · vt-401 · vt-401:)
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
Příkazy nejvyšší úrovně
vitrinka doctor
Check the installation and this repository; name the repair for each failure
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--all | — | also check every other project checkout registered on this machine |
--fix | — | review and apply the repairs doctor found (ledger rows, setup migrations, the extension host) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--yes | — | accept every proposed plan without asking |
vitrinka status
Session dashboard: live board, open work queue, and listener lease
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--branch | — | branch (default: the current branch) |
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--live | — | repaint the report every few seconds on a terminal; ctrl-c exits |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--project | — | project name (default: this repository) |
--root | — | capture root (default: .vitrinka/screenshots) |
--yes | — | accept every proposed plan without asking |
vitrinka update
Update the CLI and refresh every installed surface
| Přepínač | Výchozí | Nápověda |
|---|---|---|
--jq | — | run a jq expression over the envelope and print its results (implies --json) |
--no-input | — | never prompt; a step that needs consent exits 5 with its plan ($VITRINKA_NO_INPUT, $CI) |
--no-queue | — | fail a write the deployment cannot receive instead of queueing it in the outbox ($VITRINKA_NO_QUEUE) |
--verbose | — | hand the terminal to the child processes instead of task spinners |
--yes | — | accept every proposed plan without asking |
Průvodci
Stejní průvodci, které vypíše vitrinka help <topic>: proměnné prostředí, návratové kódy, obálka JSON, neinteraktivní použití a práce agenta s CLI. Zůstávají anglicky jako nápověda příkazů.
vitrinka help environment — Environment
Every variable the CLI reads. Flags beat variables, variables beat the stored config in ~/.config/vitrinka/config.json ($XDG_CONFIG_HOME is honoured).
Deployment and credentials
| Variable | Meaning |
|---|---|
VITRINKA_URL | Deployment origin, e.g. https://vitrinka.acme.internal. --base overrides it; unset means the stored default. |
VITRINKA_TOKEN | Credential for this run. Beats the OS keyring and the plaintext file store. |
VITRINKA_CA_CERT | Path to a PEM bundle trusted for the deployment's TLS; HTTPS_PROXY / NO_PROXY are honoured as usual. |
VITRINKA_UPLOAD_IDLE | How long an upload (board push, board upload) may move no bytes before it fails as stalled, as a duration like 3m (default 60s). A slow link that keeps moving never reaches it; uploads have no whole-request limit. |
VITRINKA_NO_KEYRING | Non-empty: never touch the OS keyring; auth login stores to the file store after consent. |
VITRINKA_KEYRING_CACHE_MS | How long a keyring read is cached inside one process, in milliseconds. |
VITRINKA_OPERATOR | Display name stamped on board writes; overrides config operator. |
VITRINKA_ORG | Organization slug for admin commands when you belong to more than one. |
Behaviour switches
| Variable | Meaning |
|---|---|
VITRINKA_NO_INPUT | 1: never prompt, same as --no-input. A step that needs consent exits 5. |
CI | Any value: no prompts, no update notice — the same as VITRINKA_NO_INPUT=1 plus VITRINKA_NO_UPDATE_CHECK=1. |
NO_COLOR | Any value: plain output, no ANSI colour. |
VITRINKA_DEBUG | Non-empty: narrate every HTTP round trip on stderr. |
VITRINKA_NO_AI | 1: disable vitrinka docs ask, the plain-words command finder. |
VITRINKA_NO_UPDATE_CHECK | Non-empty: skip the daily "a newer CLI exists" notice. |
VITRINKA_RELEASE_FEED | Where update fetches binaries; on-prem estates point it at their mirror. |
VITRINKA_EXT_MARKET | Where setup extension fetches the recorder extension. |
VITRINKA_RESOLVE_RENAMES | Non-empty: session archives follow git renames when mapping paths. |
VITRINKA_SESSION_LAUNCHER | Your command that opens a fresh coding-agent session, flags allowed. It is split on whitespace only — quotes inside it are not honoured — so a launcher that needs a quoted word goes in a script, and the variable names the script. qa session launch <task url> <dir> runs it with both appended and prints its one-line receipt; a skill's fresh-session exit (the brainstorm's closing question, a hand-back whose remainder outgrew the context window) calls that verb. Unset, unrunnable or a non-zero exit fails, and the skill prints /continue <task url> instead. |
Set by vitrinka for child processes
| Variable | Meaning |
|---|---|
VITRINKA_RUN_ID, VITRINKA_RUN_DIR, VITRINKA_RUN_STARTED_AT | Exported to the test command under qa run so a runner can stamp its artifacts. |
VITRINKA_SHOTS | always: qa run collects screenshots even when every case passed. |
VITRINKA_SESSION_ID | The coding-agent session a task handback ends; CLAUDE_SESSION_ID and CODEX_SESSION_ID are read as fallbacks. |
VITRINKA_LISTEN_HOST, VITRINKA_LISTEN_SCOPE | Set by work listen inside the hosted harness so the session knows it is being fed board work. |
$ VITRINKA_URL=https://vitrinka.acme.internal VITRINKA_TOKEN=$TOKEN vitrinka status --jsonvitrinka help exit-codes — Exit codes
The process status is part of the contract: a script or agent branches on it before reading anything else.
| Code | Name | Meaning |
|---|---|---|
| 0 | ok | Success. |
| 1 | failed | The command ran and failed; diagnostics[].code says why and fix says what to do. |
| 2 | misuse | Unknown command, bad flag or argument, or a removed name. Nothing ran. |
| 3 | nothing | Nothing to report: work watch --once found no work. |
| 4 | auth | No usable credential for this deployment; run vitrinka auth login. |
| 5 | needs_human | A step needs consent that --no-input forbade; the plan is in data, rerun with --yes. |
| 130 | cancelled | Interrupted (Ctrl+C or a cancelled prompt); nothing partial was applied. |
With --json the same number is repeated as exit_code inside the envelope, so a caller that captured stdout but lost $? still has it.
$ vitrinka task get 99999 --json; echo "exit $?"
{"v":1,"ok":false,"verb":"task get","diagnostics":[{"code":"not_found","detail":"task 99999 is not in project web","fix":"list tasks with: vitrinka task list"}],"exit_code":1}
exit 1vitrinka help json — JSON output
--json turns any command, including help, version and failures, into ONE envelope on stdout. Nothing else is printed there; progress and notes go to stderr.
{ "v": 1, "ok": true, "verb": "task list",
"data": { "tasks": [ ... ], "nextCursor": "" },
"diagnostics": [],
"next": [ { "do": "Open one task", "cmd": "vitrinka task get 12" } ] }
{ "v": 1, "ok": false, "verb": "task get",
"diagnostics": [ { "code": "...", "severity": "error", "detail": "...", "why": "...", "fix": "..." } ],
"next": [ { "do": "..." } ],
"exit_code": 3 }vis the envelope version;datais the command's result and is the only part whose shape depends on the verb.diagnostics[]explain a failure or a caveat:codeis a closed vocabulary,detailthe observed fact,whythe proven cause when there is one,fixthe exact command when one exists. A successful command may still carryseverity: "info"rows —setupreportsskippedwhen the index was deliberately left out — so branch oncode, not on the array being empty.next[]is what to do now, on success and failure:dodescribes it andcmd, when present, is executable as printed — no placeholders.exit_codeappears only on failure, so a wrapper that lost the process status still has it.
Fields
--json=field,list keeps only those keys of each data row — of a page's rows (task list), of a read's subject (task get keeps them on data.task). Unknown fields fail with exit 2, the known ones, and the same call re-run with the fields that exist — unless the command already wrote: then it succeeds with the fields that exist (all of data when none did) and an unknown_field warning, because re-running it would write twice. <verb> --help --json carries a dataShape example wherever data is not a flat list of rows.
$ vitrinka task list --json=id,title,state
{"v":1,"ok":true,"verb":"task list","data":{"tasks":[{"id":12,"title":"Checkout retries","state":"doing"}],"nextCursor":""},"diagnostics":[],"next":[]}--jq
--jq '<expression>' runs a jq expression over the whole envelope and prints the result, one value per line; strings print raw.
$ vitrinka task list --json --jq '.data.tasks[] | select(.state=="doing") | .url'
https://vitrinka.acme.internal/w/acme/p/web/t/12--jq never hides a failure: when the expression finds nothing in a failure envelope, the whole envelope prints instead, with the same non-zero exit. When every result is null, stderr names the real data shape, e.g. data is {nextCursor, tasks[]}: try .data.tasks[].
Streams and protocols keep their own shape: work watch, work listen, qa run (the child's stdio), auth token (the raw token) and the shell completion scripts.
vitrinka help no-input — Non-interactive use
The CLI prompts only when both stdin and stdout are a terminal. Two global flags make the behaviour explicit for scripts and agents, which may well be running on a pseudo-terminal.
| Flag | Meaning |
|---|---|
--no-input | Never prompt. Also VITRINKA_NO_INPUT=1 or any CI value. A step that needs consent stops with exit 5. |
--yes | Accept the proposed plan wherever a prompt would have asked, on a terminal or not; it never waits for an answer. |
--yes accepts what the command proposes; it never invents choices. A step with no sane default (which workspace, which project among several) still exits 5 and names the flag that answers it.
Exit 5, needs_human
The envelope carries the plan the command wanted to apply and the exact rerun that applies it.
$ vitrinka doctor --fix --json --no-input
{ "v": 1, "ok": false, "verb": "doctor", "exit_code": 5,
"diagnostics": [ { "code": "needs_human",
"detail": "2 repairs in this repository need consent",
"fix": "review data.plan, then rerun with --yes" } ],
"data": { "plan": [
{ "target": "vitrinka.config.json", "before": "no project", "after": "web" },
{ "target": "machine ledger", "before": "stale setup", "after": "current setup" } ] },
"next": [ { "cmd": "vitrinka doctor --fix --yes --json" } ] }Cancel (Ctrl+C) exits 130 and applies nothing. A skipped optional step is ok: true with a skipped diagnostic, never a failure.
vitrinka help agents — Driving the CLI as an agent
Four rules make every call mechanical: always --json, always --no-input, branch on exit_code then diagnostics[].code, and run next[].cmd verbatim when you want the follow-up.
$ vitrinka task mine --json=id,title,url --no-inputRecovery is in the envelope
exit_code2 means the call itself was wrong; readdiagnostics[].fixand correct the command, do not retry it.- 4 means sign in:
vitrinka auth loginneeds a human once; after that the keyring orVITRINKA_TOKENcarries it. - 5 means consent: hand
data.planto the human and rerun thenext[].cmdwith--yeswhen they agree. - 1 with
not_found,forbiddenorconflictis a fact about the workspace, not a transient; do not loop.
Reading less
--json=fields and --jq exist so a list read costs a fraction of the tokens; ask for the keys you will use.
$ vitrinka task list --json --jq '[.data.tasks[] | {id, state}]'Two doors, one server
The vitrinka MCP server (the deployment's /mcp door, registered by setup with OAuth) exposes the same operations as tools with JSON Schemas; the CLI is the door for shells, hooks and CI. Both validate on the server, so neither can skip a rule the other enforces. Prefer MCP inside an agent harness and the CLI inside scripts; never build URLs by hand, print the url a response returns.