Documentation
CLI commands
Every vibe command, every option, every default - generated from the commander program tree.
Source: src/cli/index.ts 45 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 flowd 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
Flowd wizard for provider, validation commands, and run defaults.
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).
vibe provider list
Show providers configured in this project.
vibe provider test
Send a tiny no-op prompt to a configured provider and look for the magic token.
Arguments
[name() {
return this._name;
}]
Options
--yes - skip confirmation prompt (non-interactive)
vibe provider set
Assign every default agent to use the given provider.
Arguments
<name() {
return this._name;
}>
Options
--yes - skip confirmation prompts when adding a detected provider
vibe provider setup
Flowd provider setup wizard.
vibe provider remove
Remove a provider from project.yml (refuses if a role still uses it).
Arguments
<name() {
return this._name;
}>
Options
--yes - skip the confirmation prompt (non-interactive)
vibe provider catalog
Show the provider capability catalog (built-in + your .vibestrate/providers-catalog.yml overlay).
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
[name() {
return this._name;
}]
Options
--force - replace existing overlay/built-in entries instead of gap-filling--dry-run - show what would be written without writing
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe config keys
List every settable config key with its type, allowed values, and default (from the schema).
Arguments
[name() {
return this._name;
}]
vibe config validate
Validate the project.yml file against the Vibestrate schema.
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.
vibe skills show
Print a skill's full SKILL.md body.
Arguments
<name() {
return this._name;
}>
vibe skills assign
Attach a skill to an agent (writes to .vibestrate/project.yml).
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe skills unassign
Remove a skill from an agent.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe skills fetch
Fetch a skill markdown from an http(s) URL into .vibestrate/skills/ (guarded + secret-redacted).
Arguments
<name() {
return this._name;
}>
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.
vibe flows show
Print a Flow's seats, ordered steps, and crew seat-coverage.
Arguments
<name() {
return this._name;
}>
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
[name() {
return this._name;
}]
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
<name() {
return this._name;
}...>
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 export
Export a Flow as canonical YAML (for sharing / backup).
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
[name() {
return this._name;
}...]
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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). See orchestrator-personas.md.
Subcommands
vibe supervisor list
List the resolved supervisor personas (built-ins + project).
vibe supervisor archetypes
List the curated supervisor archetypes you can adopt.
vibe supervisor adopt
Adopt a curated archetype into this project's personas.
Arguments
<name() {
return this._name;
}>
vibe supervisor default
Set the project's default supervisor (built-in or a project persona).
Arguments
<name() {
return this._name;
}>
vibe supervisor remove
Remove a project persona (not a built-in or the active default).
Arguments
<name() {
return this._name;
}>
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.
vibe profile add
Create a new profile.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe profile remove
Delete a profile (refuses if a role uses it, unless --force).
Arguments
<name() {
return this._name;
}>
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).
vibe params get
Print one stored value (secrets shown as env refs).
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}...>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}...>
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).
vibe crew show
Show a crew's roles, profiles, and seats (default crew if omitted).
Arguments
[name() {
return this._name;
}]
vibe crew use
Set the default ("active") crew - runs without --crew use it.
Arguments
<name() {
return this._name;
}>
vibe crew presets
Ready-made crews (fast / thorough) tuned by provider effort.
Subcommands
vibe crew presets list
List available presets and whether they're installed.
vibe crew presets add
Install a preset crew (fast / thorough) into project.yml.
Arguments
<name() {
return this._name;
}>
vibe approvals
Inspect and resolve human-approval requests for a paused run.
Subcommands
vibe approvals list
Show all approval requests for a run.
Arguments
<name() {
return this._name;
}>
vibe approvals show
Show a single approval request in detail.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe approvals approve
Approve a pending approval. Resumes the run if it is waiting.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
Options
--note <text> - decision note recorded in approvals.json
vibe approvals reject
Reject a pending approval. The run will be marked `blocked`.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
Options
--note <text> - decision note recorded in approvals.json
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
<name() {
return this._name;
}>
Options
-d, --description <text> - longer description-p, --priority <level> - low | medium | high default: medium--json - emit JSON
vibe roadmap list
List roadmap items.
vibe roadmap show
Show a single roadmap item.
Arguments
<name() {
return this._name;
}>
vibe roadmap update
Update a roadmap item.
Arguments
<name() {
return this._name;
}>
Options
--title <text>--description <text>--status <s>--priority <p>
vibe roadmap archive
Archive a roadmap item (keeps history).
Arguments
<name() {
return this._name;
}>
vibe roadmap proposals
List roadmap proposals stored in .vibestrate/roadmap/proposals/.
vibe roadmap proposal
Inspect, parse, and accept individual proposals.
Subcommands
vibe roadmap proposal show
Print a proposal's raw Markdown body.
Arguments
<name() {
return this._name;
}>
vibe roadmap proposal parse
Parse a proposal and print the typed preview.
Arguments
<name() {
return this._name;
}>
vibe roadmap accept
Accept a parsed proposal (creates roadmap items + tasks atomically).
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}...>
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 as a CTO: 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
<name() {
return this._name;
}...>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}>[name() {
return this._name;
}]
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
<name() {
return this._name;
}>
vibe spec-up build
Approve the spec-up draft and BUILD it: run the chosen flow seeded with the approved spec.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
vibe tasks ready
Mark a task ready to run.
Arguments
<name() {
return this._name;
}>
vibe tasks cancel
Cancel a task.
Arguments
<name() {
return this._name;
}>
vibe tasks archive
Archive a task (files it into the board's Archived column).
Arguments
<name() {
return this._name;
}>
vibe tasks unarchive
Un-archive a task.
Arguments
<name() {
return this._name;
}>
vibe tasks delete
Permanently remove a task card (refuses while its run is live).
Arguments
<name() {
return this._name;
}>
Options
-y, --yes - skip the confirmation prompt
vibe tasks queue
Add a task to the scheduler queue.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
vibe tasks status
Show a supervised task's live conductor status (lifecycle, steps, invariants, halt).
Arguments
<name() {
return this._name;
}>
vibe tasks pause
Pause a supervised task's live run (between steps).
Arguments
<name() {
return this._name;
}>
vibe tasks resume
Resume a paused supervised task, or re-sequence a halted one from the clean tip.
Arguments
<name() {
return this._name;
}>
vibe tasks pickup
Execute the task's checklist item-by-item (pick-up flow). Continuous by default; --step pauses between items.
Arguments
<name() {
return this._name;
}>
Options
--step - pause between items for review (step-by-step)
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
<name() {
return this._name;
}>
vibe tasks checklist add
Append a checklist item (a step). Add --objective/--acceptance/--files to author a structured step for a supervised task.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}...>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe tasks checklist uncheck
Reset a checklist item to pending.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe tasks checklist status
Set an item status: pending | in_progress | done | blocked.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}><name() {
return this._name;
}>
vibe tasks checklist edit
Edit a checklist item's text.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}><name() {
return this._name;
}...>
vibe tasks checklist remove
Remove a checklist item.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe tasks checklist move
Move a checklist item to a 1-based position.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}><name() {
return this._name;
}>
vibe tasks enhance
Propose a checklist for a task with an AI assist (read-only). Add --apply to append the items.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
[name() {
return this._name;
}...]
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
[name() {
return this._name;
}...]
Options
--json - emit the advice as 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
<name() {
return this._name;
}>
Options
--json - emit the full analysis result as JSON
vibe integrate apply
Integrate the selected (or all) merge-ready branches into --into <branch>.
Arguments
[name() {
return this._name;
}...]
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
<name() {
return this._name;
}>
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.
vibe queue add
Add a task to the queue.
Arguments
<name() {
return this._name;
}>
Options
--source <name> - origin label for fairness / per-source quotas (default: user)
vibe queue remove
Remove a task from the queue.
Arguments
<name() {
return this._name;
}>
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 status
Print scheduler state and recent conflict warnings.
vibe logs
Show the captured provider stdout/stderr stream for a run (the model's live CLI output).
Arguments
<name() {
return this._name;
}> - Run id (see `vibe status`)
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
<name() {
return this._name;
}>
vibe telemetry export
Export a run's metrics as an OTLP trace to a collector (Langfuse, Tempo, Jaeger…).
Arguments
<name() {
return this._name;
}>
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 ○).
vibe workspace add
Register a project directory (default: the current directory).
Arguments
[name() {
return this._name;
}]
vibe workspace remove
Remove a project from the workspace registry (leaves it on disk).
Arguments
<name() {
return this._name;
}>
vibe workspace open
Open a project's dashboard, starting it (server + scheduler) if dormant.
Arguments
[name() {
return this._name;
}]
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
[name() {
return this._name;
}]
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
<name() {
return this._name;
}>
vibe notifications resolve
Mark a notification resolved.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
vibe gateways
Inspect and toggle notification delivery gateways.
Subcommands
vibe gateways list
Show available gateways and their enabled/valid status.
vibe gateways test
Send a test message through a gateway (no real notification persisted).
Arguments
<name() {
return this._name;
}>
vibe gateways enable
Enable a configured gateway.
Arguments
<name() {
return this._name;
}>
vibe gateways disable
Disable a gateway. Existing config is preserved.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
[name() {
return this._name;
}]
vibe suggestions
Inspect and act on review suggestions captured for a run.
Subcommands
vibe suggestions list
List every suggestion attached to a run.
Arguments
<name() {
return this._name;
}>
Options
--json - emit JSON instead of a human-readable table
vibe suggestions show
Show one suggestion in detail (including any proposed patch).
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe suggestions approve
Approve a suggestion (creates and resolves an approval record).
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
Options
--note <text> - decision note recorded with the approval
vibe suggestions reject
Reject a suggestion. Records a rejection in approvals.json.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe suggestions profile set
Set the suggestion's validation profile. Future validation runs use this profile. Does NOT re-run validation.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}><name() {
return this._name;
}>
vibe suggestions profile clear
Clear the suggestion's validation profile back to default (commands.validate).
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}>
vibe bundles create
Create a new review pass (bundle) for a run.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}><name() {
return this._name;
}>
vibe bundles remove
Remove a suggestion from a draft bundle.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}><name() {
return this._name;
}>
vibe bundles approve
Approve a review pass (gate before apply).
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
Options
--note <text> - decision note
vibe bundles reject
Reject a review pass.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe bundles preflight
Run a static-only preflight without modifying the worktree.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe bundles profile set
Set the bundle's validation profile. Future validation runs use this profile. Does NOT re-run validation.
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}><name() {
return this._name;
}>
vibe bundles profile clear
Clear the bundle's validation profile back to default (commands.validate).
Arguments
<name() {
return this._name;
}><name() {
return this._name;
}>
vibe validation
Inspect validation profiles configured under commands.validationProfiles.
Subcommands
vibe validation profiles
List the implicit default + every named validation profile.
vibe validation usage
Show how often each validation profile has actually run (`commands.validate` use counts as 'default').
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() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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.
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).
vibe terminal close
Mark a terminal session as closed. Only affects live sessions in the running dashboard process; closed sessions are already terminal.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}><name() {
return this._name;
}>
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
<name() {
return this._name;
}>
vibe policies confirm
Confirm a pending (supervisor-proposed) policy - it goes live.
Arguments
<name() {
return this._name;
}>
vibe policies reject
Reject a pending (supervisor-proposed) policy - removes it.
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}>
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
[name() {
return this._name;
}]
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.
vibe policies check
Apply the loaded policy rules to a patch file (unified diff). Read-only - never applies, never executes.
Arguments
<name() {
return this._name;
}>
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.
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
<name() {
return this._name;
}> - the run id or display name (see `vibe status`)
vibe audit
Show a run's audit tree (flow steps, per-step attempts incl. retries/fallbacks, control events).
Arguments
<name() {
return this._name;
}> - the run id or display name (see `vibe status`)
vibe path
Show a run's workspace (worktree path + branch) so you can cd into it.
Arguments
<name() {
return this._name;
}> - the run id (see `vibe status`)
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
<name() {
return this._name;
}> - the run id (see `vibe status`)<name() {
return this._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)
vibe consult
Ask the project orchestrator a question, answered from controlled project context (read-only).
Arguments
<name() {
return this._name;
}> - 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 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
<name() {
return this._name;
}>
vibe guide apply
Apply a proposal - append its text to VIBESTRATE.md (guarded write).
Arguments
<name() {
return this._name;
}>
vibe guide reject
Reject a proposal (keeps it on record, marked rejected).
Arguments
<name() {
return this._name;
}>
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
<name() {
return this._name;
}> - id of the run to replay
Options
--json - emit the full replay projection as JSON
vibe pause
Request that an active run pause at the next stage boundary.
Arguments
<name() {
return this._name;
}> - id of the run to pause
vibe resume
Clear a pending pause request or resume a paused run.
Arguments
<name() {
return this._name;
}> - id of the run to resume
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)
vibe run
Run the default plan→architect→implement→review→verify workflow.
Arguments
[name() {
return this._name;
}...]
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.--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-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: []
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
<name() {
return this._name;
}>
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)