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.
Gnista with Codewhale, at a glance.
- Where it runs
- Codewhale (
codewhale, oncedeepseek-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.
Connected in a minute.
- Open Gnista and tick Codewhale (DeepSeek TUI).
- Gnista backs up
~/.codewhale/config.tomland appends its own[[hooks.hooks]]blocks. It also turns on Codewhale’s[control_socket], so replies reach it in any app. - Start a new Codewhale session in your project.
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
Claude Code
Codex
Gemini CLI
Copilot
OpenCode
Devin
Qwen Code
Cursor
Mistral Vibe
CodeBuddy
Kimi Code
Droid
Antigravity
Qoder CLI
Kilo Code
MiMoCode
ZCode
WorkBuddy
Grok Build
Amp
Pi
Goose
Auggie
OpenHands
Trae
Aider
DeepSeek Harness
Wrote your own? It can report to Gnista with one line of JSON: custom agents.