Vibestrate
Vibestrate
docs
Documentation

CLI commands

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

Source: src/cli/index.ts 30 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
  • --force - overwrite existing config files (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
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).

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
  • [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 config

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

Subcommands
vibe config show

Print the current config 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; }>
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
  • <name() { return this._name; }>
  • <name() { return this._name; }>
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() { 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 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 participant slots and ordered steps.

Arguments
  • <name() { return this._name; }>
Options
  • --json - emit JSON
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 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; }>
Options
  • --json - emit JSON
vibe approvals show

Show a single approval request in detail.

Arguments
  • <name() { return this._name; }>
  • <name() { return this._name; }>
Options
  • --json - emit JSON
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.

Options
  • --json - emit JSON
vibe roadmap show

Show a single roadmap item.

Arguments
  • <name() { return this._name; }>
Options
  • --json - emit JSON
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/.

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
  • <name() { return this._name; }>
vibe roadmap proposal parse

Parse a proposal and print the typed preview.

Arguments
  • <name() { return this._name; }>
Options
  • --json - emit JSON
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 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
  • --effort <level> - effort bucket (low|medium|high). Maps to a provider via project.yml#effortMap.
  • --provider <id> - override the provider for runs spawned from this task (wins over --effort).
  • --read-only - investigation-only: runs spawned from this task skip executor + fix loop and refuse apply/validate/revert.
  • --auto-effort - apply the heuristic effort suggestion when --effort isn't passed.
  • --json - emit JSON
vibe tasks list

List tasks.

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

Show a task with comments and run history.

Arguments
  • <name() { return this._name; }>
Options
  • --json - emit JSON
vibe tasks comment

Add a comment to a task.

Arguments
  • <name() { return this._name; }>
  • <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 queue

Add a task to the scheduler queue.

Arguments
  • <name() { return this._name; }>
vibe tasks run

Run this task now (foreground; same as vibe run --task <id>).

Arguments
  • <name() { return this._name; }>
vibe tasks report

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

Arguments
  • <name() { return this._name; }>
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
  • <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.

Options
  • --json - emit JSON
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 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.

Options
  • --json - emit JSON
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; }]
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
  • <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; }>
Options
  • --json - emit JSON
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.

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() { return this._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
  • <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.

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
  • <name() { return this._name; }>
vibe policies

Inspect user policy rules in .vibestrate/policies/. Rules can refuse a suggestion/bundle apply; they never permit a patch that built-in safety already refused.

Subcommands
vibe policies list

List every rule loaded from .vibestrate/policies/*.yml (after schema + regex/glob validation).

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
  • <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.

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
  • --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 (see `vibe status`)
Options
  • --json - emit JSON
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
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.
  • --effort <level> - task-difficulty hint (low|medium|high). Recorded for planning; does not pick a provider.
  • --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.
  • --auto-effort - apply the heuristic effort suggestion when --effort isn't passed.
  • --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.
  • --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: []
  • --interactive - open terminal Flow setup for task, brief, participants, and optional steps. Requires --flow.
  • --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 (reuse plan) | executing (reuse plan + architecture). Default: executing.
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 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 Guy Shonshon · Made for educational and learning purposes · v0.1.1 · 3ade132 · 2026-05-30 Shonshon - Evolving Technologies