Vibestrate
Vibestrate
docs

CLI commands

Every vibe command, every option, every default - generated from the commander program tree.

Source: src/cli/index.ts 49 top-level commands

The full vibe CLI is the surface for working with Vibestrate from a terminal. This page is generated from the live commander tree exported by buildVibestrateProgram() in the Vibestrate source - when a command changes, this page changes after the next docs regeneration.

For a guided tour of how the CLI is organised, see CLI overview.

vibe init

Initialize Vibestrate in the current project (.vibestrate/ scaffold).

Options
  • -f, --force - re-scaffold / overwrite existing config files to repair a broken project (runs are preserved)
  • --yes - non-interactive: use safe detected defaults, never wait for input
  • --interactive - force the guided wizard even when --yes would default to non-interactive
  • --git-init - if the directory isn't a git repo, create one (starter .gitignore; initial commit only when no secret-like files would be swept). Never implied by --yes.
vibe setup

Guided wizard for provider, validation commands, and run defaults.

vibe welcome

Guided, resumable walkthrough: providers -> crew -> flows -> your first run.

Options
  • --reset - start the walkthrough over, clearing saved progress
vibe provider

Inspect, configure, and test local coding-CLI providers.

Subcommands
vibe provider detect

Scan PATH for known local coding CLIs (claude/codex/opencode/aider/ollama).

Options
  • --json - emit JSON
vibe provider list

Show providers configured in this project.

Options
  • --json - emit JSON
vibe provider test

Send a tiny no-op prompt to a configured provider and look for the magic token.

Arguments
  • [providerId]
Options
  • --yes - skip confirmation prompt (non-interactive)
vibe provider set

Assign every default agent to use the given provider.

Arguments
  • <providerId>
Options
  • --yes - skip confirmation prompts when adding a detected provider
vibe provider setup

Guided provider setup wizard.

vibe provider remove

Remove a provider from project.yml (refuses if a role still uses it).

Arguments
  • <providerId>
Options
  • --yes - skip the confirmation prompt (non-interactive)
vibe provider catalog

Show the provider capability catalog (built-in + your .vibestrate/providers-catalog.yml overlay).

Options
  • --json - emit JSON
vibe provider refresh

Detect each provider's real models/efforts (codex `debug models` JSON, else --help scraping) and write them to the catalog overlay. Refreshes stale built-in lists; local only.

Arguments
  • [providerId]
Options
  • --force - replace existing overlay/built-in entries instead of gap-filling
  • --dry-run - show what would be written without writing
  • --probe-cloud - ALSO ask cloud providers (http-api / localhost-proxy) for their model list over the network, using that provider's configured key. Off by default: this is the only part of a refresh that leaves your machine.
vibe config

Show and edit .vibestrate/project.yml without hand-editing YAML.

Subcommands
vibe config view

Readable, grouped view of the config - each section shows where it's editable.

Options
  • --json - emit the structured view as JSON
vibe config show

Print the raw config YAML and validate it.

Options
  • --json - emit parsed JSON instead of YAML
vibe config get

Print a single config value (dot-path, e.g. commands.validate).

Arguments
  • <path>
Options
  • --json - emit JSON
vibe config set

Set a config value. Booleans/numbers/strings parsed automatically; arrays/objects via JSON (e.g. 'vibe config set commands.validate "[\"pnpm test\"]"').

Arguments
  • <path>
  • <value>
vibe config keys

List every settable config key with its type, allowed values, and default (from the schema).

Arguments
  • [filter]
vibe config validate

Validate the project.yml file against the Vibestrate schema.

Options
  • --json - emit JSON
vibe skills

List, inspect, and assign skills (.vibestrate/skills and .claude/skills).

Subcommands
vibe skills list

Show every discovered skill and which agents use it.

Options
  • --json - emit JSON
vibe skills show

Print a skill's full SKILL.md body.

Arguments
  • <name>
vibe skills assign

Attach a skill to an agent (writes to .vibestrate/project.yml).

Arguments
  • <agent>
  • <skill>
vibe skills unassign

Remove a skill from an agent.

Arguments
  • <agent>
  • <skill>
vibe skills fetch

Fetch a skill markdown from an http(s) URL into .vibestrate/skills/ (guarded + secret-redacted).

Arguments
  • <url>
Options
  • --name <name> - skill filename (default: derived from the URL)
  • --assess - read-only AI overview: helpful / already-present / conflicting
  • --overwrite - replace an existing skill of the same name
vibe flows

List and inspect Flow run recipes from built-ins and .vibestrate/flows.

Subcommands
vibe flows list

Show every discovered Flow.

Options
  • --json - emit JSON
vibe flows show

Print a Flow's seats, ordered steps, and crew seat-coverage.

Arguments
  • <id>
Options
  • --json - emit JSON
  • --crew <id> - check coverage against this crew (default: project default)
vibe flows use

Set the default Flow applied to runs without --flow (always shown), or --clear it.

Arguments
  • [id]
Options
  • --clear - clear the default flow so the orchestrator selects per task
vibe flows suggest

Suggest a Flow from task risk signals and local Flow outcomes.

Arguments
  • <task...>
Options
  • --file <path> - known touched file path; repeat for more default: []
  • --risk <level> - task risk level: low, medium, or high
  • --json - emit JSON
vibe flows draft

Turn an English description into an editable Flow draft (supervisor-assisted). Draft only - never writes; adopt it with `flows import`.

Arguments
  • <description>
Options
  • --crew <id> - check seat coverage against this crew (default: project default)
  • --yaml - print only the flow YAML, for piping into a file
  • --json - emit JSON
vibe flows derive

Build a Flow around a specific task: a shaping turn decomposes the work, deterministic code compiles the graph. Draft only - never writes; adopt it with `flows import`.

Arguments
  • <task>
Options
  • --id <flowId> - id for the derived flow (default: derived)
  • --max-units <n> - refuse a decomposition with more units than this - each unit is a model turn, so unit count is the cost multiplier
  • --crew <id> - check seat coverage against this crew (default: project default)
  • --yaml - print only the flow YAML, for piping into a file
  • --json - emit JSON
vibe flows export

Export a Flow as canonical YAML (for sharing / backup).

Arguments
  • <id>
Options
  • --out <file> - write the YAML to a file instead of stdout
  • --json - emit JSON { flowId, source, yaml }
vibe flows import

Import a Flow from a local file path or an http(s) URL into .vibestrate/flows/.

Arguments
  • <source>
Options
  • --overwrite - replace an existing project flow with the same id
  • --json - emit JSON
vibe flows export-arbitration

Export a Quality Arbitration run as local JSON evidence for later evaluation.

Arguments
  • <runId>
Options
  • --out <file> - write the JSON export to a local file
vibe flows hub

Browse + install Flows from the community hub (vibestrate.com/api/hub).

Subcommands
vibe flows hub list

List (or search) Flows in the hub.

Arguments
  • [query...]
Options
  • --base-url <url> - override the hub base URL
  • --json - emit JSON
vibe flows hub install

Pull + verify + install a hub Flow (by ref) into .vibestrate/flows/.

Arguments
  • <ref>
Options
  • --base-url <url> - override the hub base URL
  • --overwrite - replace an existing project flow with the same id
vibe flows hub publish

Publish a project flow to the hub (public, immutable).

Arguments
  • <flowId>
Options
  • --version <semver> - the release version, e.g. 1.2.0
  • --name <slug> - hub name (defaults to the flow id)
  • --handle <login> - your GitHub login (must match the token account)
  • --base-url <url> - override the hub base URL
  • --allow-token-to-custom-host - send the token to a non-default origin (local testing)
  • --yes - skip the confirmation prompt
  • --json - emit JSON
vibe supervisor

Supervisor personas (the orchestrator's judgment posture).

Subcommands
vibe supervisor list

List the resolved supervisor personas (built-ins + project).

Options
  • --json - emit JSON
vibe supervisor archetypes

List the curated supervisor archetypes you can adopt.

Options
  • --json - emit JSON
vibe supervisor adopt

Adopt a curated archetype into this project's personas.

Arguments
  • <archetypeId>
vibe supervisor default

Set the project's default supervisor (built-in or a project persona).

Arguments
  • <id>
vibe supervisor remove

Remove a project persona (not a built-in or the active default).

Arguments
  • <id>
vibe supervisor stop

Stop the supervisor acting. It still answers.

Options
  • --reason <text> - why, shown in the panel default:
vibe supervisor resume

Let the supervisor act again.

vibe supervisor status

Whether the supervisor may act right now.

Options
  • --json - emit JSON
vibe profile

Runtime presets (provider + model/power) that Crew roles run on.

Subcommands
vibe profile list

List profiles, grouped by provider, with how many roles use each.

Options
  • --json - emit JSON
vibe profile add

Create a new profile.

Arguments
  • <id>
Options
  • --provider <id> - raw provider id this profile runs on
  • --label <label> - human label
  • --model <model> - provider model id (e.g. sonnet, opus)
  • --power <level> - provider-specific power/effort (e.g. balanced)
  • --max-tokens <n> - hard cap on output tokens per turn
  • --timeout <ms> - per-turn wall-clock timeout (ms)
vibe profile set

Edit an existing profile's fields.

Arguments
  • <id>
Options
  • --label <label> - human label
  • --model <model> - provider model id (e.g. sonnet, opus)
  • --power <level> - provider-specific power/effort (e.g. balanced)
  • --max-tokens <n> - hard cap on output tokens per turn
  • --timeout <ms> - per-turn wall-clock timeout (ms)
  • --provider <id> - move the profile to a different provider
vibe profile duplicate

Copy a profile under a new id (e.g. claude -> claude-cheap).

Arguments
  • <id>
  • <newId>
vibe profile remove

Delete a profile (refuses if a role uses it, unless --force).

Arguments
  • <id>
Options
  • --force - delete even if roles still reference it
vibe params

Durable project parameters: typed param answers persisted + reused across runs.

Subcommands
vibe params list

List every stored param answer (secrets shown as env refs).

Options
  • --json - emit JSON
vibe params get

Print one stored value (secrets shown as env refs).

Arguments
  • <key>
vibe params set

Set one or more values: `vibe params set --flow <id> name=Acme niche=SaaS`. With --flow, keys are flow params (type-checked, secret-aware). Without it, keys are raw param keys (bare = project-global).

Arguments
  • <assignments...>
Options
  • --flow <id> - interpret keys as the flow's declared params (recommended)
vibe params generate

Draft a value for a `generate`-enabled param via a provider (optional, user-initiated, reviewed). Prints a suggestion; --accept stores it.

Arguments
  • <param>
Options
  • --flow <id> - the flow that declares the param
  • --accept - store the suggestion (setBy: generated) without asking
vibe params unset

Remove stored values by key (explicit, never automatic).

Arguments
  • <keys...>
vibe crew

List crews, show a crew's roles, and set the default ("active") crew.

Subcommands
vibe crew list

List configured crews (the default is marked).

Options
  • --json - emit JSON
vibe crew show

Show a crew's roles, profiles, and seats (default crew if omitted).

Arguments
  • [id]
Options
  • --json - emit JSON
vibe crew use

Set the default ("active") crew - runs without --crew use it.

Arguments
  • <id>
vibe crew draft

Turn an English description into an editable Crew draft (supervisor-assisted). Draft only - never writes; adopting it means saving the printed role files, then the block, into project.yml.

Arguments
  • <description>
Options
  • --yaml - print only the crews block, for piping into a file
  • --json - emit JSON
vibe crew presets

Ready-made crews (fast / thorough / cheap / local) tuned by provider effort.

Subcommands
vibe crew presets list

List available presets and whether they're installed.

Options
  • --json - emit JSON
vibe crew presets add

Install a preset crew (fast / thorough / cheap / local) into project.yml.

Arguments
  • <id>
vibe approvals

Inspect and resolve human-approval requests for a paused run.

Subcommands
vibe approvals list

Show all approval requests for a run.

Arguments
  • <runId>
Options
  • --json - emit JSON
vibe approvals show

Show a single approval request in detail.

Arguments
  • <runId>
  • <approvalId>
Options
  • --json - emit JSON
vibe approvals approve

Approve a pending approval. Resumes the run if it is waiting.

Arguments
  • <runId>
  • <approvalId>
Options
  • --note <text> - decision note recorded in approvals.json
vibe approvals reject

Reject a pending approval. The run will be marked `blocked`.

Arguments
  • <runId>
  • <approvalId>
Options
  • --note <text> - decision note recorded in approvals.json
vibe approvals request-changes

Return an agent-requested gate with guidance; the stage re-runs with it.

Arguments
  • <runId>
  • <approvalId>
Options
  • --guidance <text> - what the agent should change
vibe roadmap

Manage local roadmap items (.vibestrate/roadmap/roadmap.json).

Subcommands
vibe roadmap init

Create the .vibestrate/roadmap/ scaffold if missing.

vibe roadmap add

Add a roadmap item.

Arguments
  • <title>
Options
  • -d, --description <text> - longer description
  • -p, --priority <level> - low | medium | high default: medium
  • --json - emit JSON
vibe roadmap list

List roadmap items.

Options
  • --json - emit JSON
vibe roadmap show

Show a single roadmap item.

Arguments
  • <id>
Options
  • --json - emit JSON
vibe roadmap update

Update a roadmap item.

Arguments
  • <id>
Options
  • --title <text>
  • --description <text>
  • --status <s>
  • --priority <p>
vibe roadmap archive

Archive a roadmap item (keeps history).

Arguments
  • <id>
vibe roadmap proposals

List roadmap proposals stored in .vibestrate/roadmap/proposals/.

Options
  • --json - emit JSON
vibe roadmap proposal

Inspect, parse, and accept individual proposals.

Subcommands
vibe roadmap proposal show

Print a proposal's raw Markdown body.

Arguments
  • <id>
vibe roadmap proposal parse

Parse a proposal and print the typed preview.

Arguments
  • <id>
Options
  • --json - emit JSON
vibe roadmap accept

Accept a parsed proposal (creates roadmap items + tasks atomically). Omit the id to pick one with TAB.

Arguments
  • [id]
Options
  • --dry-run - preview without writing
  • --allow-unresolved-dependencies - skip DEPENDS_ON entries that point at unknown task titles instead of failing
  • --json - emit JSON
vibe roadmap plan

Run the configured local planner provider on a broad goal and save the output as a proposal draft.

Arguments
  • <goal...>
Options
  • --id <proposalId> - explicit proposal id; default is timestamp + slug
  • --provider <providerId> - override the provider id (default: planner agent's provider)
vibe spec-up

Plan before you build: discovery -> spec -> architecture -> roadmap (a chain of read-only runs).

Subcommands
vibe spec-up start

Start spec-up: launch the intake run that asks the gap questions.

Arguments
  • <brief...>
Options
  • --persona <id> - supervisor persona (judgment posture) for the run
  • --flow <id> - the flow to BUILD once the spec is approved (carried to `spec-up build`)
vibe spec-up questions

Show the intake run's gap questions (and their ids).

Arguments
  • <runId>
Options
  • --json - emit the questions as JSON
vibe spec-up answer

Answer a round's questions; loops to a gap-check round or builds the spec.

Arguments
  • <runId>
Options
  • --answer <id=value> - answer for a question id (repeatable) default: []
  • --proceed - stop questioning and build the spec now (skip further gap-checks)
vibe spec-up simplify

Explain a question in plain language (what it asks + what it affects).

Arguments
  • <runId>
  • <questionId>
Options
  • --for-non-developer - add an everyday-life analogy (no jargon)
vibe spec-up suggest

Draft an answer grounded in your prior answers (you still decide). --all for every blank.

Arguments
  • <runId>
  • [questionId]
Options
  • --all - suggest a draft for every question in the round
vibe spec-up approve

Approve the spec-up draft and launch the roadmap synthesis run.

Arguments
  • <specUpRunId>
vibe spec-up build

Approve the spec-up draft and BUILD it: run the chosen flow seeded with the approved spec.

Arguments
  • <specUpRunId>
Options
  • --flow <id> - build flow override (default: the flow carried from the spec-up run)
vibe spec-up roadmap

Turn a finished spec-up-roadmap run into a reviewable proposal.

Arguments
  • <runId>
vibe spec-up edit

Edit a spec-up section (scope/spec/architecture/risks) before the build, via $EDITOR or --file. Guarded: secret-refusing, blocked after approve.

Arguments
  • <runId>
  • <section>
Options
  • --file <path> - read the new content from a file instead of opening $EDITOR
vibe tasks

Manage local tasks: backlog → queued → running → done.

Subcommands
vibe tasks add

Create a task.

Arguments
  • <title>
Options
  • -d, --description <text>
  • -p, --priority <p> - low | medium | high default: medium
  • --roadmap <id> - link to a roadmap item id
  • --skills <list> - comma-separated skill names
  • --files <list> - comma-separated likely-touched files
  • --provider <id> - override the provider for runs spawned from this task.
  • --read-only - investigation-only: runs spawned from this task skip executor + fix loop and refuse apply/validate/revert.
  • --supervised - create a supervised task: its steps are sequenced by the Conductor (per-step review, supervisor, budget, clean-halt) instead of running once.
  • --json - emit JSON
vibe tasks list

List tasks.

Options
  • --status <s> - filter by status
  • --json - emit JSON
vibe tasks suggest

Suggest which backlog card to pick up next (ready + priority).

Options
  • --all - show the full ranked backlog, not just the top few
  • --json - emit JSON
vibe tasks show

Show a task with comments and run history.

Arguments
  • <id>
Options
  • --json - emit JSON
vibe tasks comment

Add a comment to a task.

Arguments
  • <id>
  • <body>
vibe tasks export

Write the board as CSV (Jira / Trello / Monday / Linear all import it).

Options
  • --out <file> - write to a file instead of stdout
vibe tasks import

Create tasks from a CSV exported by another tracker. Additive: never updates or deletes an existing card.

Arguments
  • <file>
Options
  • --dry-run - show what would be created, write nothing
vibe tasks stage

File a task under a workflow stage (free label). No arguments clears it. Re-filing runs nothing - it only moves the label.

Arguments
  • <id>
  • [stage...]
vibe tasks ready

Mark a task ready to run.

Arguments
  • <id>
vibe tasks cancel

Cancel a task.

Arguments
  • <id>
vibe tasks archive

Archive a task (files it into the board's Archived column).

Arguments
  • <id>
vibe tasks unarchive

Un-archive a task.

Arguments
  • <id>
vibe tasks delete

Permanently remove a task card (refuses while its run is live).

Arguments
  • <id>
Options
  • -y, --yes - skip the confirmation prompt
vibe tasks queue

Add a task to the scheduler queue.

Arguments
  • <id>
vibe tasks run

Run this task now (foreground). A supervised task sequences its steps (the Conductor); a plain task runs the default flow once.

Arguments
  • <id>
vibe tasks sequence

Sequence a supervised task's steps in order (the Conductor). The stable entry the scheduler spawns; `run` delegates here for supervised tasks.

Arguments
  • <id>
Options
  • --json - emit JSON
  • --unattended - never pause for a human - the contract every scheduler-spawned run needs
vibe tasks status

Show a supervised task's live conductor status (lifecycle, steps, invariants, halt).

Arguments
  • <id>
Options
  • --json - emit JSON
vibe tasks pause

Pause a supervised task's live run (between steps).

Arguments
  • <id>
vibe tasks resume

Resume a paused supervised task, or re-sequence a halted one from the clean tip.

Arguments
  • <id>
vibe tasks pickup

Execute the task's checklist item-by-item (pick-up flow). Continuous by default; --step pauses between items.

Arguments
  • <id>
Options
  • --step - pause between items for review (step-by-step)
  • --flow <id> - checklist-aware flow to run (default "pickup"); e.g. pickup-review for a per-item review panel + arbiter.
vibe tasks checklist

Manage a task's in-card checklist (the ordered breakdown of items).

Subcommands
vibe tasks checklist list

List a task's checklist items.

Arguments
  • <taskId>
Options
  • --json - emit JSON
vibe tasks checklist add

Append a checklist item (a step). Add --objective/--acceptance/--files to author a structured step for a supervised task.

Arguments
  • <taskId>
  • <text...>
Options
  • --objective <text> - the scoped brief an executor receives for this step
  • --acceptance <text> - plain-language done-when check for this step
  • --files <list> - comma-separated file hints (primary context for this step)
vibe tasks checklist check

Mark a checklist item done.

Arguments
  • <taskId>
  • <itemId>
vibe tasks checklist uncheck

Reset a checklist item to pending.

Arguments
  • <taskId>
  • <itemId>
vibe tasks checklist status

Set an item status: pending | in_progress | done | blocked.

Arguments
  • <taskId>
  • <itemId>
  • <status>
vibe tasks checklist edit

Edit a checklist item's text.

Arguments
  • <taskId>
  • <itemId>
  • <text...>
vibe tasks checklist remove

Remove a checklist item.

Arguments
  • <taskId>
  • <itemId>
vibe tasks checklist move

Move a checklist item to a 1-based position.

Arguments
  • <taskId>
  • <itemId>
  • <position>
vibe tasks checklist promote

Promote a checklist item to its own card (keeps a derived-from link).

Arguments
  • <taskId>
  • <itemId>
vibe tasks enhance

Propose a checklist for a task with an AI assist (read-only). Add --apply to append the items.

Arguments
  • <id>
Options
  • --apply - append the proposed items to the task's checklist
  • --profile <id> - profile to run the assist on (default: crew planner)
  • --json - emit JSON
vibe tasks report

Generate a Markdown task report at .vibestrate/roadmap/tasks/<id>-report.md.

Arguments
  • <id>
vibe integrate

Preview + integrate merge-ready run branches into a dedicated branch (never main, never push).

Subcommands
vibe integrate list

List merge-ready runs (integration candidates).

vibe integrate preview

Dry-run merge the selected (or all) merge-ready branches; show conflicts.

Arguments
  • [runIds...]
vibe integrate advise

Read-only merge advice for the selected (or all) merge-ready runs: risk flags, assurance lanes, topology, dry-run conflicts, and a deterministic recommendation. Mutates nothing.

Arguments
  • [runIds...]
Options
  • --json - emit the advice as JSON
vibe integrate pr

Prepare a pull request for a run: writes the body from the run's own record and prints the `gh pr create` line. Vibestrate never pushes - you run it.

Arguments
  • <runId>
Options
  • --json - emit JSON
vibe integrate analyze

Optional read-only LLM pass over the run's redacted diff vs main: semantic risk narrative (never a merge verdict). Spawns a local provider; caches markdown under the run.

Arguments
  • <runId>
Options
  • --json - emit the full analysis result as JSON
vibe integrate apply

Integrate the selected (or all) merge-ready branches into --into <branch>.

Arguments
  • [runIds...]
Options
  • --into <branch> - the integration branch to create (never main)
vibe integrate finish

Merge a complete, clean integration branch into main - locally, with explicit confirmation, never pushed. Refuses partial integrations, dirty trees, and conflicts.

Arguments
  • <integrationBranch>
Options
  • --confirm <token> - non-interactive consent: must be exactly "merge-to-main"
vibe queue

Manage the local task scheduler queue.

Subcommands
vibe queue list

Show the queue and running tasks.

Options
  • --json - emit JSON
vibe queue add

Add a task to the queue.

Arguments
  • <taskId>
Options
  • --source <name> - origin label for fairness / per-source quotas (default: user)
vibe queue remove

Remove a task from the queue.

Arguments
  • <taskId>
vibe queue run

Start the local scheduler loop and process queued tasks.

Options
  • --exit-when-drained - exit once the queue is empty (useful in scripts)
vibe queue pause

Pause the scheduler (new tasks will not start).

vibe queue resume

Resume the scheduler.

vibe queue service

Print a launchd/systemd unit that brings the scheduler back after a reboot. Prints it - installing is yours to do.

Options
  • --out <file> - write the unit to a file instead of stdout
vibe queue status

Print scheduler state and recent conflict warnings.

Options
  • --json - emit JSON
vibe logs

Show the captured provider stdout/stderr stream for a run (the model's live CLI output).

Arguments
  • <runId> - Run id (see `vibe status`) (a unique prefix is enough)
Options
  • --follow - tail the stream live (like `tail -f`); Ctrl+C to stop
  • --stream <promptName> - specific agent stream to read (default: newest)
vibe telemetry

Opt-in OpenTelemetry export of a run's metrics to your own collector (off by default).

Subcommands
vibe telemetry trace

Print the OTLP trace JSON for a run (no network - inspect before exporting).

Arguments
  • <runId>
vibe telemetry export

Export a run's metrics as an OTLP trace to a collector (Langfuse, Tempo, Jaeger…).

Arguments
  • <runId>
Options
  • --endpoint <url> - OTLP/HTTP base URL (e.g. http://localhost:4318)
  • --auth <envRef> - env reference for a bearer token, e.g. env:LANGFUSE_TOKEN
vibe workspace

Track + switch between multiple Vibestrate projects (a user-level registry).

Subcommands
vibe workspace list

List registered projects (live ● / dormant ○).

Options
  • --json - emit JSON
vibe workspace add

Register a project directory (default: the current directory).

Arguments
  • [path]
vibe workspace remove

Remove a project from the workspace registry (leaves it on disk).

Arguments
  • <pathOrLabel>
vibe workspace open

Open a project's dashboard, starting it (server + scheduler) if dormant.

Arguments
  • [pathOrLabel]
Options
  • --all - open every registered project
  • --no-open - start the dashboard(s) but don't open a browser tab
vibe workspace close

Shut down a project's dashboard + scheduler (refuses if busy unless --force).

Arguments
  • [pathOrLabel]
Options
  • --all - close every live registered project
  • --force - shut down even if runs/queue are busy
vibe workspace overview

Cross-project rollup: runs + cost across every registered project.

Options
  • --range <range> - window: 24h|7d|30d|90d default: 7d
  • --json - emit JSON
vibe notifications

Inspect and manage local Vibestrate notifications.

Subcommands
vibe notifications list

Show notifications.

Options
  • --unread-only - only show unread
  • --attention-only - only show items that need action
  • --json - emit JSON
vibe notifications read

Mark a notification read.

Arguments
  • <id>
vibe notifications resolve

Mark a notification resolved.

Arguments
  • <id>
vibe notifications read-all

Mark every unread notification as read.

vibe notifications settings

Show current notification settings and configured gateways.

vibe notifications test

Send a tiny test notification through a configured gateway.

Arguments
  • <gatewayId>
vibe gateways

Inspect and toggle notification delivery gateways.

Subcommands
vibe gateways list

Show available gateways and their enabled/valid status.

Options
  • --json - emit JSON
vibe gateways test

Send a test message through a gateway (no real notification persisted).

Arguments
  • <gatewayId>
vibe gateways enable

Enable a configured gateway.

Arguments
  • <gatewayId>
vibe gateways disable

Disable a gateway. Existing config is preserved.

Arguments
  • <gatewayId>
vibe editor

Configure and test the local editor handoff used by the dashboard.

Subcommands
vibe editor detect

Probe known editors (code, code-insiders, cursor) for availability.

vibe editor set

Enable editor handoff and store the command (default args use --goto path:line:column).

Arguments
  • <command>
Options
  • --args <args...> - override the default args (use {file}/{line}/{column} placeholders)
vibe editor test

Open a file (default: README.md) using the configured editor command.

Arguments
  • [file]
Options
  • --line <n> - line number
vibe suggestions

Inspect and act on review suggestions captured for a run.

Subcommands
vibe suggestions list

List every suggestion attached to a run.

Arguments
  • <runId>
Options
  • --json - emit JSON instead of a human-readable table
vibe suggestions show

Show one suggestion in detail (including any proposed patch).

Arguments
  • <runId>
  • <suggestionId>
vibe suggestions approve

Approve a suggestion (creates and resolves an approval record).

Arguments
  • <runId>
  • <suggestionId>
Options
  • --note <text> - decision note recorded with the approval
vibe suggestions reject

Reject a suggestion. Records a rejection in approvals.json.

Arguments
  • <runId>
  • <suggestionId>
Options
  • --note <text> - decision note recorded with the approval
vibe suggestions apply

Apply an approved suggestion's proposedPatch inside the run's worktree (git apply, never push/merge).

Arguments
  • <runId>
  • <suggestionId>
Options
  • --validate - after applying, run commands.validate inside the worktree
  • --auto-revert-on-fail - if validation fails, revert the patch (only valid with --validate)
  • --profile <name> - validation profile to run after apply (only meaningful with --validate)
vibe suggestions validate

Run the project's commands.validate inside the run's worktree against an applied suggestion.

Arguments
  • <runId>
  • <suggestionId>
Options
  • --profile <name> - named validation profile from commands.validationProfiles
vibe suggestions revert

Revert a previously-applied suggestion using the captured patch (git apply -R).

Arguments
  • <runId>
  • <suggestionId>
vibe suggestions profile

Read or edit a suggestion's validation profile metadata.

Subcommands
vibe suggestions profile show

Print the suggestion's current validation profile (if any).

Arguments
  • <runId>
  • <suggestionId>
vibe suggestions profile set

Set the suggestion's validation profile. Future validation runs use this profile. Does NOT re-run validation.

Arguments
  • <runId>
  • <suggestionId>
  • <profileName>
vibe suggestions profile clear

Clear the suggestion's validation profile back to default (commands.validate).

Arguments
  • <runId>
  • <suggestionId>
vibe bundles

Group reviewed suggestions into a review pass that applies, validates, and reverts as a unit.

Subcommands
vibe bundles list

List every bundle (review pass) attached to a run.

Arguments
  • <runId>
Options
  • --json - emit JSON
vibe bundles create

Create a new review pass (bundle) for a run.

Arguments
  • <runId>
Options
  • --title <text> - human-readable title
  • --description <text> - optional longer description
  • --suggestion <ids...> - initial suggestion ids to include (must belong to this run)
vibe bundles add

Add a suggestion to a draft bundle.

Arguments
  • <runId>
  • <bundleId>
  • <suggestionId>
vibe bundles remove

Remove a suggestion from a draft bundle.

Arguments
  • <runId>
  • <bundleId>
  • <suggestionId>
vibe bundles approve

Approve a review pass (gate before apply).

Arguments
  • <runId>
  • <bundleId>
Options
  • --note <text> - decision note
vibe bundles reject

Reject a review pass.

Arguments
  • <runId>
  • <bundleId>
Options
  • --note <text> - decision note
vibe bundles apply

Apply every suggestion in the review pass to the run worktree (all-or-nothing with rollback).

Arguments
  • <runId>
  • <bundleId>
Options
  • --validate - after applying, run commands.validate
  • --auto-revert-on-fail - if validation fails, revert the bundle (only valid with --validate)
  • --profile <name> - validation profile to run after apply (only meaningful with --validate)
vibe bundles smart-apply

Apply suggestions one-by-one in order. Earlier successes stay applied if a later step fails.

Arguments
  • <runId>
  • <bundleId>
Options
  • --stop-on-validation-fail - validate after each step; stop at the first failing validation
  • --auto-revert-failing - when --stop-on-validation-fail is set, revert ONLY the failing step (prior steps stay applied)
  • --profile <name> - force every step to use this named validation profile
  • --use-suggestion-profiles - let each step use its own VALIDATION_PROFILE (falls back to bundle/default)
vibe bundles validate

Run commands.validate against the run worktree, attached to a bundle.

Arguments
  • <runId>
  • <bundleId>
Options
  • --profile <name> - named validation profile from commands.validationProfiles
vibe bundles revert

Revert every suggestion in the review pass via git apply -R (worktree only).

Arguments
  • <runId>
  • <bundleId>
vibe bundles preflight

Run a static-only preflight without modifying the worktree.

Arguments
  • <runId>
  • <bundleId>
vibe bundles profile

Read or edit a review pass's validation profile metadata.

Subcommands
vibe bundles profile show

Print the bundle's current validation profile (if any).

Arguments
  • <runId>
  • <bundleId>
vibe bundles profile set

Set the bundle's validation profile. Future validation runs use this profile. Does NOT re-run validation.

Arguments
  • <runId>
  • <bundleId>
  • <profileName>
vibe bundles profile clear

Clear the bundle's validation profile back to default (commands.validate).

Arguments
  • <runId>
  • <bundleId>
vibe validation

Inspect validation profiles configured under commands.validationProfiles.

Subcommands
vibe validation profiles

List the implicit default + every named validation profile.

Options
  • --json - emit JSON
vibe validation usage

Show how often each validation profile has actually run (`commands.validate` use counts as 'default').

Options
  • --json - emit JSON
vibe validation profile

Inspect, manage, and migrate validation profile references.

Subcommands
vibe validation profile show

Show the resolved commands for a named profile (or 'default').

Arguments
  • <name>
Options
  • --json - emit JSON
vibe validation profile migrate

Rewrite suggestion and bundle records that reference <fromProfile> to point at <toProfile>. Use --clear to migrate to the default profile.

Arguments
  • <fromProfile>
  • <toProfile>
Options
  • --dry-run - preview affected records; write nothing
  • --clear - interpret <toProfile> as a placeholder for clear-to-default
  • --all - scan every run instead of the recent 50
  • --run <runId> - limit to a single run
vibe validation profile clear-references

Clear every suggestion/bundle that references <profileName> back to the default profile.

Arguments
  • <profileName>
Options
  • --dry-run - preview affected records; write nothing
  • --all - scan every run instead of the recent 50
  • --run <runId> - limit to a single run
vibe validation profile rename

Rename a validation profile in project.yml AND migrate every suggestion/bundle reference in one atomic operation. Preserves the profile's description and commands. Refuses if <toProfile> already exists.

Arguments
  • <fromProfile>
  • <toProfile>
Options
  • --dry-run - preview the project.yml rename + affected references; write nothing
  • --all - scan every run instead of the recent 50
  • --run <runId> - limit the reference scan to a single run
vibe validation profile doctor

Audit every suggestion + bundle for stale validation-profile references. Default scope matches `vibe doctor` (recent 50 runs); use --all to lift the cap.

Options
  • --all - scan every run instead of the recent 50
  • --run <runId> - limit the audit to a single run
  • --json - emit JSON (machine-readable; includes didYouMean per record)
vibe validation profile migrations

List previously-applied profile migrations.

Options
  • --json - emit JSON
vibe terminal

Inspect and close dashboard terminal sessions. Sessions are user-launched from the dashboard; this CLI never spawns one.

Subcommands
vibe terminal list

List every terminal session ever opened in this project (live + closed).

Options
  • --json - emit JSON
vibe terminal close

Mark a terminal session as closed. Only affects live sessions in the running dashboard process; closed sessions are already terminal.

Arguments
  • <sessionId>
vibe policies

The project's rule surface: owner-authored tiered policies (advise = reviewer-checked; block = deterministic merge-cap) plus the hard, fail-closed security gates in .vibestrate/policies/.

Subcommands
vibe policies add

Add a project policy (active immediately). advise by default; --block for a deterministic merge-cap.

Arguments
  • <id>
  • <statement>
Options
  • --fix <text> - the correction the reviewer should name (advise)
  • --lens <lenses...> - scope an advise rule to review lenses (default: every run)
  • --block - make this a deterministic hard merge-block (requires --matcher)
  • --matcher <regex> - regex matched against added diff lines (block only)
vibe policies remove

Remove a project policy.

Arguments
  • <policyId>
vibe policies confirm

Confirm a pending (supervisor-proposed) policy - it goes live.

Arguments
  • <policyId>
vibe policies reject

Reject a pending (supervisor-proposed) policy - removes it.

Arguments
  • <policyId>
vibe policies migrate

Lift legacy persona-scoped preferences into project policies and remove the old keys.

vibe policies draft

Turn an English rule into an editable policy draft (supervisor-assisted). Draft only - never writes; adopt it with `policies add`.

Arguments
  • <description>
Options
  • --json - emit JSON
vibe policies suggest

Propose candidate policies from recent runs' diffs (supervisor-assisted). Draft only - never writes.

Options
  • --limit <n> - how many recent runs to scan (1-10)
  • --json - emit JSON
vibe policies test

Dry-run a matcher against a diff snippet or recent runs (read-only). Give an existing block-policy id, or --regex.

Arguments
  • [policyId]
Options
  • --regex <pattern> - regex to test (instead of a policy id)
  • --flags <flags> - regex flags (subset of gimsuy)
  • --glob <glob> - touched-file glob to test
  • --snippet <file> - path to a diff/patch file to test against
  • --recent - test against recent runs' diffs
  • --limit <n> - recent runs to scan (1-10)
  • --surface <surface> - apply surface (suggestion-apply | bundle-apply) default: suggestion-apply
  • --json - emit JSON
vibe policies list

List the project's policies (owner-authored tiered rules) and the hard security gates in .vibestrate/policies/*.yml.

Options
  • --json - emit JSON
vibe policies check

Apply the loaded policy rules to a patch file (unified diff). Read-only - never applies, never executes.

Arguments
  • <patchFile>
Options
  • --surface <surface> - which apply surface to simulate (suggestion-apply | bundle-apply) default: suggestion-apply
  • --json - emit JSON
vibe policies doctor

Validate rule YAML, list malformed files, surface duplicate ids and empty-rule files.

Options
  • --json - emit JSON
vibe policies config

Show or set the safety behavior toggles (strict apply-only, terminal, forbid-* guards).

Options
  • --json - emit JSON
  • --strict-apply-only <bool> - agents propose diffs; gateway applies
  • --harden-read-only <bool> - read-only claude seats run --permission-mode plan
  • --allow-terminal <bool> - enable the dashboard terminal panel
  • --forbid-main-writes <bool> - block writes to the main branch
  • --forbid-secrets <bool> - block reads/writes of secret files
  • --forbid-push <bool> - block auto-push
  • --forbid-merge <bool> - block auto-merge
vibe assurance

Show a run's Run Assurance verdict (evidence-backed; from the Action Broker log + review/verification).

Arguments
  • <run> - the run id or display name (see `vibe status`)
Options
  • --json - emit JSON
vibe audit

Show a run's audit tree (flow steps, per-step attempts incl. retries/fallbacks, control events).

Arguments
  • <run> - the run id or display name (see `vibe status`)
Options
  • --json - emit JSON
vibe path

Show a run's workspace (worktree path + branch) so you can cd into it.

Arguments
  • <runId> - the run id (see `vibe status`) (a unique prefix is enough)
Options
  • --cd - print only the absolute worktree path (for `cd "$(...)"`)
  • --json - emit JSON
vibe rename

Give a run a friendly display name (the run id stays the same).

Arguments
  • <runId> - the run id (see `vibe status`) (a unique prefix is enough)
  • <name...> - the new display name
vibe ledger

Show the project continuity brief (what shipped, what's open).

Options
  • --json - emit the structured ledger state as JSON
  • --limit <n> - max entries per section (default 5)
Subcommands
vibe ledger add

Hand-add a ledger entry - the same write path the dashboard's "Add entry" form uses.

Options
  • --kind <kind> - shipped | intent | decision | mention | residual
  • --title <text> - entry title (max 300 chars)
  • --detail <text> - optional longer detail (max 4000 chars)
  • --tags <list> - comma-separated tags
  • --status <status> - open | shipped | abandoned
  • --json - emit the created entry as JSON
vibe consult

Ask the project orchestrator a question, answered from controlled project context (read-only).

Arguments
  • <question> - the question to ask about this project
Options
  • --task <id> - include a task's context (title, status, checklist)
  • --run <id> - focus a recent run by id
  • --file <path> - include a project file's content (repeatable) default: []
  • --profile <id> - answer with a specific profile (default: the crew's read-only planner)
  • --provider <id> - answer ad-hoc with this provider (overrides --profile)
  • --model <id> - model for the ad-hoc provider (requires --provider)
  • --effort <level> - effort/power for the ad-hoc provider (requires --provider)
  • --json - emit the full structured result as JSON
vibe steer

Queue a note onto a running run; it is applied at the next step boundary.

Arguments
  • <runId> - id of the run to steer (a unique prefix is enough)
  • <note...> - what the agents should do differently
Options
  • --step <stepId> - hold the note until this specific step runs (default: whichever step runs next)
vibe learn

Regenerate .vibestrate/CODEBASE.md, an auto-derived map of the project's stack, layout, and routes, and harvest the codebase's TODO markers.

Subcommands
vibe learn show

Print the current CODEBASE.md (run `vibe learn` first if there is none).

vibe learn todos

Print the harvested TODO counts. `vibe todos` reviews and promotes them.

Options
  • --json - emit JSON
vibe todos

Review the TODO markers `vibe learn` found in your code, and promote the real ones onto the Board.

Options
  • --all - also list the ones already on the board and the dismissed ones
  • --json - emit JSON
Subcommands
vibe todos promote

Promote harvested TODOs onto the Board. Omit the fingerprint to pick one with TAB.

Arguments
  • [fingerprints...]
Options
  • --title <title> - override the card title (single selection only)
  • --priority <priority> - override the card priority: low | medium | high
  • --json - emit JSON
vibe todos dismiss

Set TODOs aside so later scans stop offering them. Reversible with `undismiss`.

Arguments
  • [fingerprints...]
vibe todos undismiss

Bring dismissed TODOs back into the review list.

Arguments
  • [fingerprints...]
vibe budget

View or configure the daily spend cap (and what happens when it's hit).

Subcommands
vibe budget show

Show the configured cap, action, and today's spend so far.

vibe budget set

Set the daily spend cap and/or the action taken when it's reached.

Options
  • --cap <usd> - daily cap in USD (e.g. 5)
  • --action <action> - what to do at the cap: stop | downgrade-model | reduce-effort
  • --warn <pct> - warn threshold as a fraction 0..1 (default 0.8)
  • --fallback <providerId> - cheaper Profile to switch to on downgrade-model
  • --max-turns-run <n|off> - max agent turns in one run (count ceiling)
  • --max-time-run <min|off> - max wall-clock minutes for one run
  • --max-turns-day <n|off> - max agent turns across all runs today
  • --max-time-day <min|off> - max wall-clock minutes across all runs today
  • --on-limit <stop|pause> - what to do when a count/time ceiling is hit (pause = attended)
vibe budget off

Remove the daily spend cap.

vibe replay

Read-only inspector for a persisted run (mirrors the Replay tab in the dashboard).

Arguments
  • <runId> - id of the run to replay (a unique prefix is enough)
Options
  • --json - emit the full replay projection as JSON
vibe pause

Request that an active run pause at the next stage boundary.

Arguments
  • <runId> - id of the run to pause (a unique prefix is enough)
vibe guide

Manage VIBESTRATE.md (the agent's operating guide for this project) and its proposals.

Subcommands
vibe guide show

Print the project's VIBESTRATE.md (or note that there is none).

vibe guide init

Scaffold a starter VIBESTRATE.md at the project root (refuses if one exists).

vibe guide proposals

List open VIBESTRATE.md proposals (e.g. from consult).

Options
  • --all - include applied/rejected proposals
Subcommands
vibe guide proposals show

Show a proposal's full suggested text.

Arguments
  • <id>
vibe guide apply

Apply a proposal - append its text to VIBESTRATE.md (guarded write).

Arguments
  • <id>
vibe guide reject

Reject a proposal (keeps it on record, marked rejected).

Arguments
  • <id>
vibe resume

Clear a pending pause request or resume a paused run.

Arguments
  • <runId> - id of the run to resume (a unique prefix is enough)
vibe shell

Interactive terminal panel. For the full dashboard + scheduler + browser in one shot, use `vibe ui` instead.

Options
  • --refresh <ms> - snapshot refresh interval in ms (default 1000)
  • --once - print one snapshot as JSON and exit (useful for scripts / smoke tests)
  • --full-screen - draw in the terminal's alternate buffer, filling the window instead of rendering inline. Off by default: it must redraw correctly on resize in YOUR terminal, and VSCode's integrated one misbehaved.
vibe run

Run the default plan→architect→implement→review→verify workflow.

Arguments
  • [task...]
Options
  • --ui - start the local supervisor dashboard alongside the run
  • --ui-port <port> - port for the supervisor dashboard (default 4317)
  • --task <taskId> - link this run to a roadmap task; updates task status and runIds.
  • --crew <id> - crew to resolve the flow's seats against (default: project.defaultCrew).
  • --profile <id> - run-wide Profile override applied to every seated step in this run.
  • --read-only - investigation-only run: skip executor + fix loop; refuse apply/validate/revert; force readOnly permissions on every role.
  • --permission-mode <mode> - permission mode: read-only | ask (approve each change) | accept-edits (auto-apply, then hold for your sign-off before completing) | auto (default). --read-only is the alias for read-only.
  • --unattended - never pause for a human: forces budget onLimit->stop and resilience onExhausted->fail, so the run always terminates on its own.
  • --skills <list> - comma-separated skill ids to attach to every agent for this single run (merged with each agent's configured skills).
  • --concise - ask agents to produce token-efficient output (prefer diffs, bullets, no preamble).
  • --flow <id> - resolve and run a Flow recipe for this run.
  • --supervisor <id> - supervisor persona (judgment posture) for this run; default = project.defaultPersona.
  • --select - let the orchestrator pick the Flow even when a default flow is set.
  • --no-select - skip Flow selection and the adaptive spec-up detour; run the flow directly.
  • --step-profile <stepId=profileId> - override the Profile for a Flow step (same Role, different runtime). Repeat for multiple steps. default: []
  • --seat-role <seat=roleId> - pin a Role to a Seat when the crew has more than one role filling it. Repeat for multiple seats. default: []
  • --flow-brief <text> - extra brief for the Flow task packet.
  • --flow-context <policy> - Flow context policy (balanced|compact|artifact-heavy).
  • --flow-force <step> - run a Flow step even when its condition would stand it down (e.g. --flow-force review-authz). Repeat for multiple steps. Only ever ADDS work back - there is no inverse that disarms a review. default: []
  • --flow-skip <step> - skip an optional Flow step for this run. Repeat for multiple steps. default: []
  • --param <key=value> - set a flow parameter (for a flow that declares `params:`). Repeatable. default: {}
  • -i, --interactive - interactively pick the Flow and Crew you didn't pass (horizontal selector), then run. With --flow, opens that flow's detailed setup instead.
  • --resume-from <runId> - rewind: fork from a prior run, reusing its plan (+ architecture) instead of regenerating them.
  • --resume-stage <stage> - stage to resume at with --resume-from: planning | architecting | executing (regenerate code) | reviewing | fixing | verifying (restore the source run's code snapshot). Default: executing.
  • --preview - dry-run a downstream rewind: print the files the restore would overwrite/remove (vs the worktree base), then exit without starting a run. Use with --resume-from.
  • --checklist <mode> - pick-up execution over the linked task's checklist: continuous | step. Needs --task and a checklist-aware flow (--flow pickup).
  • --context-file <path> - attach a project file as context for every agent (repeatable; path-guarded, secrets redacted). default: []
  • --context-url <url> - attach an http(s) URL as context (repeatable; SSRF-guarded, bounded, secrets redacted). default: []
  • --context-pdf <path> - attach a project PDF as context (repeatable; needs poppler's pdftotext, path-guarded, secrets redacted). default: []
vibe ui

Start the local supervisor dashboard for this project.

Options
  • --port <port> - port to bind (default 4317)
  • --host <host> - bind host (default 127.0.0.1). A non-loopback host exposes the API on the network and requires VIBESTRATE_API_TOKEN.
  • --no-open - don't open the dashboard in your default browser on startup (default: open).
  • --no-scheduler - don't start the managed scheduler subprocess (default: on; the UI owns its lifecycle).
vibe status

List Vibestrate runs in this project.

Options
  • --json - emit JSON instead of a human-readable table
vibe abort

Mark a run as aborted (does not delete the worktree).

Arguments
  • <runId>
vibe runs

Manage runs and their rewind snapshots.

Subcommands
vibe runs prune

Delete rewind-snapshot refs you choose to drop: orphans (run dir gone), beyond a keep-N window, or one run. Shows the plan and confirms first; never purges on its own.

Options
  • --keep <n> - keep the N most-recent runs' snapshots, prune the rest
  • --orphans - prune refs whose run directory is gone (default when no other scope is given)
  • --run <runId> - prune one specific run's snapshots
  • --dry-run - show what would be pruned, delete nothing
  • -y, --yes - skip the confirmation prompt
vibe doctor

Check environment, config, providers, and recommend next steps.

Options
  • --json - emit JSON
  • --fix - apply safe fixes (create missing dirs/templates, add Claude provider if detected, suggest validation)

© 2026 Vibestrate
v0.4.3 Shonshon - Evolving Technologies