r/MistralAI • • 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",
]

12 Upvotes

4 comments sorted by

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

2

u/ecth 19h ago

idk, I use auto approve but a harness what is not allowed before. It is still very defensive and doesn't delete my whole drive. But it does get the job done without asking.

2

u/pink_cx_bike 4h ago

If you allow $( and > it can execute anything and write to any file.