Mistral Vibe,
in your notch.

Mistral Vibe status, approvals and cost on your Mac

Gnista shows every Mistral Vibe session in your MacBook’s notch: working, needs you, done. Vibe’s hooks never say it’s waiting, so Gnista reads Vibe’s own session journal and shows the command it asks about the moment it does.

Try free for 7 days No account, no card · then €19 once
01At a glance

Gnista with Mistral Vibe, at a glance.

Where it runs
Mistral Vibe in any terminal, on its unified harness.
Setup
Tick Mistral Vibe; Gnista writes its hooks to its own file, ~/.vibe/hooks.toml, and new sessions pick them up.
Needs you
Approval requests, with the command, and its questions, with their options, read from Vibe’s own session journal, since no hook says so.
Answer from the notch
No: a Vibe hook can deny but not approve, so you answer in Vibe, and a click takes you to its tab.
Reply from the notch
Yes, typed into the session’s terminal: Terminal, iTerm, Ghostty, a tmux pane, or an editor’s terminal with Gnista’s extension.
In the row
The title from your first prompt, the latest message and tool, tokens, context and cost, from Vibe’s session folder.
Subagents
Vibe waits for its subagents inline, and the row says which one is in front and how many are done.
Cost and limits
Each session is priced as the model in Vibe’s config (Mistral Medium 3.5 by default, at Vibe’s own prices), and the context ring fills to Vibe’s compaction threshold; Vibe records no plan limits.

Needs you, even without a hook.

Vibe has no hook for “waiting”, so Gnista reads Vibe’s own session journal, only when it changes, and shows the request and its command, or the question and its options, the moment it appears. Once you answer in Vibe, the row goes back to working.

What it costs, at Vibe’s own prices.

Gnista reads each session’s totals and context from Vibe’s session folder and prices them as the model in Vibe’s config: Mistral Medium 3.5 unless you changed it, at the prices Vibe ships with. The context ring fills to the point where Vibe compacts (200K tokens unless you changed it), not the model’s whole window.

Subagents, in front.

When Vibe hands work to subagents and waits for them, the row says which one is in front and how many are done, so a long wait still tells you something.

What it can’t do with Mistral Vibe, and why.

  • Approving from the notch: a Vibe hook can deny a tool but not approve it, so you answer in Vibe. A click on the row takes you to its tab.
  • Sessions that were already running when you connected: Vibe reads its hooks when a session starts.
  • Vibe’s legacy harness: Gnista reads the unified harness’s session folder only.
  • What a subagent is doing: Vibe keeps no record of a subagent’s steps, so the row says which one is in front, not its step.
02Setup

Connected in a minute.

  1. Open Gnista and tick Mistral Vibe.
  2. Gnista writes its hooks to its own file, ~/.vibe/hooks.toml. Your other Vibe settings stay as they are.
  3. Start a new Vibe session after connecting: Vibe reads its hooks when a session starts.
03FAQ

Mistral Vibe, asked and answered.

How does Gnista know Vibe is waiting?

From Vibe’s own session journal, which records each approval or question it waits for and when it’s answered. No Vibe hook says so.

Can I approve Vibe from the notch?

No: a Vibe hook can deny but not approve. Answer in Vibe; a click on the row takes you to its tab.

I connected Vibe, but my session doesn’t show. Why?

Vibe reads its hooks when a session starts. Start a new session and it shows.

I use another model in Vibe. Is the cost right?

Gnista prices the model in Vibe’s config, and knows Mistral Medium 3.5. For any other, describe your own model with its prices and window.

How do I remove it?

Settings ▸ Agents ▸ Mistral Vibe ▸ Disconnect. Gnista’s hooks go from ~/.vibe/hooks.toml.

Gnista also keeps an eye on

Wrote your own? It can report to Gnista with one line of JSON: custom agents.