Codewhale,
in your notch.

Codewhale (DeepSeek TUI) notifications, replies and cost on your Mac

Gnista shows every Codewhale session in your MacBook’s notch: working, done, or waiting for you, with the tool it’s on and its reply. When a turn is done, reply from the notch and it goes in as your next message. One click takes you to its tab.

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

Gnista with Codewhale, at a glance.

Where it runs
Codewhale (codewhale, once deepseek-tui) in any terminal.
Setup
Its own hook blocks in ~/.codewhale/config.toml, after a backup, and its control socket turned on.
Needs you
Yes: an approval prompt, a question, or a goal waiting between passes.
Answer from the notch
No: its hooks can deny a tool, not approve it, so a click takes you to Codewhale to answer.
Reply from the notch
Yes, wherever Codewhale runs, through its control socket: at once if it’s idle, after the turn if it’s busy.
In the row
The session’s title, your prompt, its reply, the tool in use and its to-do list, read from Codewhale’s saved session.
Subagents
When it hands work to a subagent, the row says so, with the task.
Cost and limits
What the session cost, as Codewhale prices it, subagents included; no context ring or plan limits.

Reply, straight into the session.

Connecting turns on Codewhale’s control socket, which takes a message as if you’d typed it. A reply from the notch goes in as your next message, in whichever app Codewhale runs: at once if it’s idle, after the turn if it’s busy. Without the socket, Gnista types it into the terminal.

Knows when it’s waiting.

Codewhale’s hooks say when it stops for you: to approve a tool, to answer its question, or between the passes of a goal. The drop turns red, and a click takes you to its tab to answer.

Read from its own session.

Gnista finds the session Codewhale is working on through its process, and reads its title, your prompt, the reply, the tool and the to-do list. The cost is Codewhale’s own, subagents included.

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

  • Answering from the notch: Codewhale’s hooks can deny a tool but not approve it, so you answer in Codewhale.
  • Gnista’s hooks need Codewhale 0.9.13 or later: an older one doesn’t know their events, and fails the whole file.
  • No context ring: Codewhale keeps only a total of tokens, so the row shows the cost alone.
  • Codewhale reads its hooks when a session starts, so a session already open reports only once you start a new one.
02Setup

Connected in a minute.

  1. Open Gnista and tick Codewhale (DeepSeek TUI).
  2. Gnista backs up ~/.codewhale/config.toml and appends its own [[hooks.hooks]] blocks. It also turns on Codewhale’s [control_socket], so replies reach it in any app.
  3. Start a new Codewhale session in your project.
03FAQ

Codewhale, asked and answered.

Is this DeepSeek TUI?

Yes. Codewhale is the terminal agent called DeepSeek TUI until 0.8.41. Gnista knows it by either name, and sees it working by its process even before you connect it.

Can I approve Codewhale from the notch?

No. Its hooks can deny a tool but not approve it, so Gnista shows that it needs you and takes you to its tab to answer.

Can I reply to Codewhale from the notch?

Yes, once a turn is done, in any terminal or editor: Gnista sends your words through Codewhale’s control socket, and they show in the session as your message.

Why doesn’t my session show up?

Codewhale reads its hooks when a session starts, so start a new one after connecting. Gnista’s hooks need Codewhale 0.9.13 or later.

How do I remove it?

Settings ▸ Agents ▸ Codewhale (DeepSeek TUI) ▸ Disconnect. Exactly Gnista’s blocks go, and the control socket goes back off if Gnista turned it on.

Gnista also keeps an eye on

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