Skip to content

Agents overview

An agent node is a terminal preset that launches a coding-agent CLI as its startup command, then tracks what the agent is doing on the node’s header. Under the hood it’s a real terminal like any other — see Node types — but nodeterm layers extra behavior on top, gated per agent by what that agent can actually report.

nodeterm ships with four built-in agents. Creating an agent node runs the agent’s launch command once, as a one-shot startup command, and then clears it — the agent is never double-launched on the same node.

AgentLaunch commandBrand color
Claude CodeclaudeClay (#d97757)
CodexcodexGreen (#10a37f)
GeminigeminiBlue (#4285f4)
opencodeopencodeViolet (#a78bfa)

Add one from the pane right-click menu, the dock +, or the command palette (⌘K). Because an agent node is just a terminal with a preset command, everything you already know about terminals — persistence, scrolling, copy — still applies.

Not every agent can do everything, so nodeterm turns features on per agent rather than assuming they all behave alike. The UI only offers what the agent supports.

CapabilityClaude CodeCodexGeminiopencode
Hooks-based status detectionYesYesYesYes
Resume after rebootYesYesYesYes
Context linkYesYesYesYes
Subagent visualizationYes
Branch conversationYes
Chat nodesYes
Managed accountsYes
Permission modesYes
Usage indicatorYes

The Claude-only rows aren’t hardcoded specialness — they’re simply the features the other CLIs don’t yet expose the hooks or interfaces for. As Codex, Gemini and opencode grow those, the same UI lights up for them.

You can define your own agents in Settings → Agents. A custom agent spawns like any built-in and shows process and terminal-title status — nodeterm knows whether the process is running and reads its terminal title — but it has no hook integration, so none of the richer behaviors above (status detection, subagents, branch, and so on) apply. Point it at any CLI you want to run as a node.

nodeterm does not parse an agent’s output to guess what it’s doing. Instead, each agent’s own hook system posts to a small loopback HTTP server inside nodeterm whenever something happens — a turn starts, a tool runs, the agent finishes or waits for you. The header badge you see is driven entirely by those events.

See Agent status & notifications for what those states look like and how they reach you.