The MCP server
Most terminals are something agents run inside. Novalis is also something agents can fly: the running window exposes a Model Context Protocol server with 38 tools.
Start it
Section titled “Start it”# Standalone / headlessnovalis --mcp-server
# Or against the live windowNOVALIS_LIVE_MCP=1 open -a NovalisOr flip it in Settings → MCP: the toggle hot-applies to the running window.
Register it with your agent of choice (Claude Code shown):
claude mcp add novalis -- <path-to-bridge>From then on, an agent session holds your terminal as native tools.
What agents can do
Section titled “What agents can do”| Category | Tools (selection) |
|---|---|
| Workspaces & tabs | create_workspace, open_tab (workspace-targeted), close_tab, select_tab, list_tabs |
| Panes | list_panes (split tree, per-pane cwd, alt-screen state), split_pane, focus_pane, close_pane |
| Reading | read_pane (scrollback), list_blocks, list_notifications |
| Synchronization | wait_for_output (regex over live output), wait_for_idle (grid quiet for N ms) |
| Agents | spawn_agent_pane; a pane anywhere running an agent CLI with a prompt; agents spawning agents in one call |
| Signals | notify; post into the attributed notification rail |
The philosophy
Section titled “The philosophy”The MCP surface rides the same intent pipeline as the UI; an agent splitting a pane goes through exactly the code path your ⌘D does. Nothing is a simulation layer, and everything an agent does is visible in the window, in real panes, in real blocks.
Write-capable verbs respect the same approval architecture as agent mode; the human owns the gate.