id = "mistral-vibe" name = "Mistral Vibe" homepage = "https://github.com/mistralai/mistral-vibe" description = "An agentic command-line coding assistant from Mistral AI." executables = ["vibe"] [dotfiles] # https://docs.mistral.ai/vibe/code/cli/install-setup — Vibe creates # ~/.vibe/config.toml. The official README also documents trusted_folders.toml, # agents/, prompts/, and tools/ under VIBE_HOME (which defaults to ~/.vibe). paths = [ "~/.vibe/config.toml", "~/.vibe/trusted_folders.toml", "~/.vibe/agents/", "~/.vibe/prompts/", "~/.vibe/tools/", ] # The official setup docs save API credentials in ~/.vibe/.env. Logs and the # connector discovery cache are generated state and are intentionally omitted. secret = ["~/.vibe/.env"] exclude = [ "~/.vibe/logs/", "~/.vibe/connector_bootstrap_cache.json", ] side_effect = false [commands] format = 1 label = "Mistral Vibe" description = "Start Vibe interactively, or run one non-interactive prompt with limits. Setup, resume and agent-socket options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.source]] id = "readme" kind = "manual" url = "https://raw.githubusercontent.com/mistralai/mistral-vibe/HEAD/README.md" revision = "HEAD 2026-10-27" evidence = """ Use the `--agent` flag to select a different agent: vibe --prompt "Refactor the main function in cli/main.py to be more modular." --auto-approve - **`--max-turns N`**: Limit the maximum number of assistant turns. - **`--max-price DOLLARS`**: Set a maximum cost limit in dollars for this run. - **`--agent NAME`**: Select the agent profile for this run. - **`--auto-approve`, `--yolo`**: Approves all tool calls without prompting - **`--output FORMAT`**: Set the output format. Options: - `text` (default): Human-readable text output - `json`: All messages as JSON at the end - `streaming`: Newline-delimited JSON per message - **`--prompt-file PATH`**: Read the prompt from a file instead of `--prompt`. - **`--time-limit SECONDS`**: Stop the run after this many seconds. `-p` / `--prompt` """ [[commands.field]] id = "prompt" label = "Prompt (non-interactive)" type = "string" option = ["--prompt", "-p"] sources = ["readme"] [[commands.field]] id = "prompt_file" label = "Prompt file" type = "path" path = { kind = "file", role = "input" } option = ["--prompt-file"] sources = ["readme"] [[commands.field]] id = "agent" label = "Agent profile" type = "string" option = ["--agent"] suggestions = [{ value = "ask", label = "ask" }, { value = "accept-edits", label = "accept-edits" }, { value = "auto-approve", label = "auto-approve" }] sources = ["readme"] [[commands.field]] id = "auto_approve" label = "Approve all tool calls" type = "boolean" option = ["--auto-approve"] effect = "exec" sources = ["readme"] [[commands.field]] id = "max_turns" label = "Max turns" type = "integer" option = ["--max-turns"] sources = ["readme"] [[commands.field]] id = "max_price" label = "Max price (USD)" type = "number" option = ["--max-price"] sources = ["readme"] [[commands.field]] id = "time_limit" label = "Time limit (seconds)" type = "integer" option = ["--time-limit"] sources = ["readme"] [[commands.field]] id = "output" label = "Output format" type = "enum" option = ["--output"] choices = [{ value = "text", label = "Text" }, { value = "json", label = "JSON" }, { value = "streaming", label = "Streaming" }] sources = ["readme"] [[commands.task]] id = "interactive" label = "Interactive session" fields = ["agent"] [[commands.task]] id = "one_shot" label = "One-shot prompt" fields = ["prompt", "agent", "max_turns", "max_price", "output"] required = ["prompt"] [[commands.group]] id = "basic" label = "Basic" fields = ["prompt", "prompt_file", "agent", "output"] [[commands.group]] id = "advanced" label = "Limits" fields = ["auto_approve", "max_turns", "max_price", "time_limit"]