Codex,
in your notch.

Codex notifications, approvals and 5-hour and weekly limits on your Mac

Gnista shows every Codex session in your MacBook’s notch. When Codex wants to run a command or apply a patch, allow or deny it there. When a turn is done, reply there. Your 5-hour and weekly limits sit right under your sessions.

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

Gnista with Codex, at a glance.

Where it runs
The Codex CLI, in any terminal or an editor’s terminal, VS Code’s included, Codex threads in the Codex app, Codex in the AI chat of IntelliJ IDEA and other JetBrains IDEs, Codex in Xcode (how), and the Codex CLI on a Linux server, over SSH.
Setup
Hooks in ~/.codex/hooks.json, trusted in ~/.codex/config.toml when you connect: nothing to trust in Codex.
Needs you
Permission requests, with the whole command or patch, and the questions Codex asks at the end of a turn.
Answer from the notch
Allow, or Deny with an optional reason Codex reads; “Always” isn’t possible, as Codex doesn’t take it from a hook. Its end-of-turn questions too: your picks go in as your next message.
Reply from the notch
Yes, through Codex’s own codex queue: at once if Codex is idle, after the turn if it’s busy.
In the row
The session’s title, your prompt, the latest message, the command or patch, plan progress (“3/7 · Writing tests”), the mode, context and cost.
Subagents
Yes: the row shows which subagent is at work, its current step and how many are done.
Cost and limits
Each turn priced at its model’s rate, and your 5-hour and weekly limits, read from Codex’s own session records.

Allow. Deny. Keep going.

The notch opens with the exact command or patch Codex wants to run. Allow it, or deny it with a reason: Codex shows “Denied from Gnista” and carries on with your answer.

Reply, straight into the session.

Gnista uses Codex’s own codex queue, so a reply from the notch shows in the open window as your message, in any terminal or editor: at once if Codex is idle, after the turn if it’s busy. Quit Codex in its terminal already? A reply resumes the session in the background, where Codex can’t ask you anything, so it does only what its sandbox allows.

Progress you can read at a glance.

Codex’s plan shows as progress in the row, with the step it’s on, and so do its subagents. The mode is there too: Plan, Auto, Don’t ask, Bypass.

Limits, without asking.

Codex records your rate limits with every turn. Gnista reads them, so your 5-hour and weekly windows sit under your sessions, and each turn is priced at its model’s rate. For a model Gnista doesn’t know, describe it in a model file.

What it can’t do with Codex, and why.

  • Codex can’t take “Always” from a hook, so the notch offers Allow and Deny only. To allow something for good, do it in Codex.
  • Codex reads its hooks when a session starts, so one started before you connected Gnista skips them until you start a new one.
  • If you don’t answer, Codex asks in its own prompt: at once when you’re at the session’s tab, after 10 seconds while the notch is closed, after 45 seconds at most while you’re in it.
  • After /new or /resume, the old session’s row goes about a minute later, when Codex lets it go.
02Setup

Connected in a minute.

  1. Open Gnista and tick Codex. Gnista backs up ~/.codex/hooks.json and ~/.codex/config.toml to ~/Library/Application Support/Gnista/Backups/, then adds its hooks next to yours and records them as trusted, as Codex does when you trust them yourself.
  2. Start a new Codex session. It runs Gnista’s hooks without asking.
  3. To answer requests from the notch, turn on Settings ▸ General ▸ Answer prompts in Gnista.
03FAQ

Codex, asked and answered.

Can I approve Codex from the notch?

Yes: Allow, or Deny with an optional reason, once Settings ▸ General ▸ Answer prompts in Gnista is on. There’s no Always: Codex doesn’t take it from a hook. If you don’t answer, Codex asks in its own prompt.

Why doesn’t Codex show up in Gnista?

Codex reads its hooks when a session starts, so one started before you connected Gnista skips them: start a new one. There’s nothing to trust in Codex: connecting records Gnista’s hooks as trusted in ~/.codex/config.toml.

Does it work with the Codex app?

Yes. The app runs Codex with the same hooks, so its threads get a row like any session, with Codex as the app, and a click opens the thread.

Can I reply to Codex from the notch?

Yes, in any terminal or editor. Gnista hands your reply to codex queue, so it shows in the session as your message.

Does Gnista show my Codex usage limits?

Yes: the 5-hour and weekly windows, or the one window a free plan has, read from Codex’s own session records. Nothing to switch on, and no signing in.

Does it change my Codex config, and how do I remove it?

It adds its hooks to ~/.codex/hooks.json and records them as trusted in ~/.codex/config.toml, after a backup of both in ~/Library/Application Support/Gnista/Backups/, and leaves yours alone. Settings ▸ Agents ▸ Codex ▸ Disconnect removes exactly Gnista’s hooks and their trust.

Does it work with Codex on a server, over SSH?

Yes, on a Linux server. Connect the server in Settings ▸ Remote, with a host from your ssh config: Gnista puts its helper there and adds its hooks to Codex’s hooks.json on the server, trusted there as on your Mac. Its sessions show with the machine’s name, its title, latest message and cost; answers from the notch reach Codex there, and a click brings up the terminal tab you ssh’d in from, tmux pane included, or your editor’s Remote-SSH window. Step by step: agents over SSH.

Gnista also keeps an eye on

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