Coding agents
What Nermaldoes around Claude Code, Codex, TraeCode, and 19 others — without ever wrapping them.
Nermalrecognises coding agents running in a pane and builds around them. It does not wrap them, proxy them, or replace their interface: the agent you start is the agent you get, running in a normal PTY, with its own UI. Nermaladds the things a terminal is in a position to add — who is running where, what they need, and what changed.
Which agents
Twenty-two CLIs are recognised on sight, by the command running in the pane:
| Agent | Command |
|---|---|
| Claude Code | claude, claude-code |
| Codex | codex, codex-cli |
| TraeCode | traecli, traex |
| Gemini | gemini, gemini-cli |
| Copilot | copilot |
| Cursor | cursor-agent |
| Amp | amp |
| OpenCode | opencode |
| Aider | aider, aider-chat |
| Goose | goose |
| Droid | droid |
| Grok | grok |
| Qwen Code | qwen, qwen-code |
| Kimi Code | kimi, kimi-code |
| Qoder CLI | qoder, qodercli |
| Crush | crush |
| Auggie | auggie |
| Hermes | hermes |
| Vibe | vibe, vibe-acp |
| Antigravity | agy, antigravity |
| Pi | pi |
| Oh My Pi | omp |
Detection sees through the usual disguises: a full path, a .cmd or .exe on
Windows, leading environment assignments, and an interpreter in front
(node .../claude/cli.js).
Your own wrapper
If you launch agents through a wrapper script, map its name to an agent in
config.json:
{
"agent_commands": {
"cc": "claude",
"work": "codex"
}
}The key is your command's name; the value is one of the slugs above (claude,
codex, traecli, gemini, aider, amp, opencode, copilot, cursor, goose,
droid, pi, auggie, hermes, vibe, antigravity, grok, qwen,
omp, kimi, qodercli, crush).
What you get for free
Just by running an agent in a pane:
Brand avatars
The tab chip and sidebar row show which agent runs where, so ten tabs stay legible.
Git context
The branch and working-tree diff on the row, refreshed as the agent works.
Session resume
A pane lost to a reboot relaunches the conversation, carrying its original flags. More →
Context feed
Palette commands that hand the current selection or the repo's git diff to
the running agent as a prompt.
What needs a hook
Live status — working, needs your input, done — comes from the agent
itself, over a channel Nermalinstalls into that agent's configuration. It powers
the status dots, the notifications, the tray icon, and Nermalwait.
Installing takes one click per agent under Settings → Agents. Status and notifications →