Chock.sh Build your plugin

Agents

Mistral Vibe

Mistral Vibe and chock: install methods and steps, what it can enforce, and the evidence behind it.

Install methods: sync. Agentseam tier block+rewrite, grade best-effort before a tool runs.

Install methods

  • Repo hooks: chock sync --repo . --agents mistral-vibe writes .vibe/hooks.toml (ask the user before running it)

Evidence wanted

Chock has not seen this agent run its hooks yet. If you use it, you can help: agentseam issue #187

What it can enforce

Tier
block+rewrite
Grade before a tool runs
best-effort
Fail mode before a tool runs
configurable
Basis
vendor-docs
Recorded
2026-10-11

Events

EventCan blockCan rewriteFail mode
pre_toolyesyesconfigurable
stopyesnoopen
post_toolnonoopen

Ask support

Answers an ask with: deny. Honours ask: no. Evidence: tested (tests/test_guard_fail_to_ask.py::test_a_crashed_guard_asks_rather_than_allowing).

Hook timeout

Default 60 seconds, set by the timeout field in s.

Vendor source

Test status

  • Repo hooks: untested. A test of the plugin says nothing about repo hooks.
  • No row in the engine's list of live tests for this agent.

Known limits

Adapted (D2a): Vibe's payload is unambiguous (its snake_case hook types pre_tool, post_tool and post_agent are mapped by no other adapter, so the event name alone separates it), and its verdict is the flat_decision family's {decision: deny, reason}. A deny at pre_tool refuses the call and its reason becomes the tool error; at post_agent (the stop-like event) it asks the agent to retry, capped by Vibe at 3 retries per hook per user turn. Install writes [[hooks]] tables in Vibe's own keys: name (agentseam-<type>-<CRC-32 of the command>, unique because Vibe drops a duplicate name across files), type, match ("*" when no matcher is given, since the docs call it required at tool hooks) and command. Escalate degrades to a block: no hook verdict prompts. A transform at pre_tool is written as hook_specific_output.tool_input, which Vibe documents as a full replacement of the tool's arguments, re-validated against the tool's schema (a replacement that fails validation is denied); at post_agent a transform degrades to a block. Fail mode is configurable at pre_tool: open by default (a non-zero exit, timeout or malformed stdout warns and proceeds) and closed with strict = true, which install writes on its pre_tool rule only when called with fail_closed=True (agentseam tier-table --fail-closed reads that install). post_agent stays fail-open: Vibe rejects strict there. Project hooks load only in trusted folders, so a written config is not yet a live one. There is no prompt-submit or session event. Vibe also speaks ACP (vibe-acp), a client-agent protocol, not a hook surface; it is not claimed as one. Instruction files reach it through AGENTS.md. Evidence wanted (to test or overturn this row): https://github.com/open-coder-ai/agentseam/issues/187

Built from engine 5a4b6287a46e and catalog 1e60d211c1bb.