Full disclosure first: I'm not a professional programmer. I'm a passionate geek who, over the past few months, built a handful of small apps with Claude's help, guided step by step. Then I switched to Mistral Vibe for two reasons: European sovereignty, and the fear that Claude could somehow be influenced by the decisions of the US administration. If I'm going to entrust my work to an AI, I'd rather it live under a sky I trust.
The main work with Vibe has been exactly this: rebuilding an environment similar to the one I had with Claude, where multiple agents interact with each other — and sometimes, I'll admit, a bit outside the boundaries the system set for them.
The architecture (all on one Mac, no external servers):
- Multiple Vibe CLI sessions, each in its own repo folder with a declared identity (a per-session "signature")
- A homemade message bus: mailboxes between sessions, with sender, subject and body for each "brief"
- A "postman" service that delivers auto-executable briefs and wakes dormant sessions
- A local MCP gateway holding the services together: mail, system state, files, and a new diagnostic tool that lists live processes and sessions
- A human protocol on top of everything: every change goes through a PR, a remote review, and my explicit go-ahead
What works: the apps have been rebuilt and installed on my devices, the brief → execute → report → review cycle holds most of the time, and the productivity of a non-programmer who ships signed code is, for me, remarkable.
What doesn't — the part I almost never see written about. Real defects, with dates:
- Ghost sessions (Oct 26): dead processes leaving work and messages half-done; whoever resumes doesn't know what was already done.
- Crossed territory (Oct 28): a session tasked with one repo answered citing another repo, without being given permission.
- Read ≠ executed (Oct 28): the mail tool marks a message as read on reading, not on executing. A session can read its task, do nothing, and the task disappears. This one cost me the most time in a single day.
- Stale main (Oct 28): a session starting from an outdated main redid work that was already done, and another stayed on its feature branch after merge instead of returning to main.
- Missing identity: when a session doesn't declare who it is, its reports can't be verified. I now ask at every startup, but it's a convention, not a technical control.
And the smoking gun from tonight's diagnostics: the postman service had silently skipped 10+ briefs in 24 hours, with reasons like "session already active" (it wasn't) or "out of dispatch list". The rooms looked empty because the wake-up call was never sent. I have a fix in the pipeline: every skip gets logged with message ID and reason, "active session" must mean a verified live process, and messages get marked on execution, not on reading.
In the middle of all this, there's also a bug confirmed by Mistral support: the "low" thinking option in the CLI sends an unsupported value and fails with a 400. Workaround: "off", "auto", or the /thinking command. They were kind and fast about it — but it's a reminder of how young this CLI is.
My end-of-month conclusion: the technical part — getting a model to call tools — largely works now. The part that's missing, and the part I'm actually working on, is the management layer: making multiple agents collaborate with an audit trail, human approvals that are recorded, and tasks that don't get lost. If anyone here has fought the same battles — sessions losing tasks, shared state across agents, a dispatcher that skips deliveries — I'd genuinely like to hear how you solved it.
(Written with the help of AI — the same assistant that runs this ecosystem helped me draft this. It seemed honest to say so.)