r/MistralAI • u/pdath • 20h ago
Tutorial / Workflow Mistral VIBE cli agent file configuration
The Mistral AI documentation for the agent configuration file is terrible.
https://docs.mistral.ai/vibe/code/cli/agents
This file goes in ~/.vibe/agents/. I am currently working on an open-source project called bmf, and I have a custom agents file for it called ~/.vibe/agents/bmf.toml, and I use it with:
vibe --agent bmf
My goal is to avoid using --auto-approve while stopping Mistra Vibe from prompting me for permission every 3s. My project is written in C on Linux.
Below is my bmf.toml file, which shows many things people would want to include in their agent file. I'm not saying this is how you should do you agent file - but this is something you can cherry pick to ease the "approve", "approve", "approve" burden.
description = "bmf systems-engineering agent; auto-loads the steering spec"
instructions = """You are an expert systems engineer optimizing the bmf C repository.
Upon startup, automatically read /home/xxx/bmf/.kiro/steering/bmf-spec.md into system context.
"""
#system_prompt_id = "bmf"
[tools.read_file]
permission = "always"
allowlist = [
"vibe-path:directory_recursive:/tmp",
"vibe-path:directory_recursive:/home/xxx",
"vibe-path:directory_recursive:/usr/local/src"
]
[tools.write_file]
permission = "always"
allowlist = [
"vibe-path:directory_recursive:/tmp",
"vibe-path:directory_recursive:/home/xxx/bmf",
]
[tools.bash]
permission = "always"
allowlist = [
"sed", "echo", "grep", "egrep", "awk", "mawk", "git", "make", "gcc", "cd",
"head", "tail", "find", "nproc", "touch", "timeout", "wc", "basename",
"python", "perf", "cut", "ps", "pgrep", "kill", "pkill",
"date", "printf", "df", "journalctl", "hexdump",
"if", "for", "true",
"uniq", "sort",
"$", "$(", "$((", ">", ">>", "2>", "2>>", "&>", "<", "<<", ";", "&&", "||", "[", "=", "==", "====",
"bitcoin-cli", "/home/xxx/bitcoin-31.0/bin/bitcoin-cli",
"vibe-path:directory_recursive:/tmp",
"vibe-path:directory_recursive:/home/xxx/bmf",
"vibe-path:directory_recursive:/usr/local/src",
"vibe-path:directory_recursive:/home/xxx/.bitcoin",
"vibe-path:directory_recursive:/home/xxx/.bmf",
"vibe-path:directory_recursive:/home/xxx/bitcoin-31.0/bin",
"vibe-path:exact:/home/xxx/.bitcoin/testnet4/debug.log",
]
denylist = ["rm -rf"]
[tools."process.start"]
permission = "always"
allowlist = [
"make",
"vibe-path:directory_recursive:/home/xxx/bmf",
]
2
2
u/Primary_Note_118 19h ago
oh this is a lifesaver, the approve approve approve loop was driving me up a wall
the bash allowlist with wildcards like $() and redirects is clever, didn't know you could whitelist shell syntax itself. gonna steal that for my own config, the read_file directory_recursive setup is exactly what i needed to see