A real terminal, first
Every pane is a libghostty surface with native keyboard, mouse, clipboard, focus and resize. Agents run in real PTYs under their own CLI. Nothing is re-implemented, proxied, or replayed.
The spatial canvas
A native macOS terminal workspace for running several CLI coding agents at once. They keep their own harness and their own PTY. You keep the judgment.
You can already run five coding agents at once. The limit was never how many processes your machine will start — it is how many workstreams one person can follow, and then accurately re-enter after looking away.
Tenon is built for that limit. It does not plan work, spawn agents, schedule them, or drive their keyboards; those belong to the harness you already chose. It gives their operator one window where parallel work stays legible, and every condensed claim keeps a direct path back to the transcript, diff, command result, or test receipt it came from.
# Tenon opens and behaves like a terminal. Start there.
⌘T new tab — one full-size terminal
⌘D ⇧⌘D split the active pane left/right, top/bottom
⌘K the command paletteEach terminal Tenon opens knows which pane it is, so the agent inside it can label its own tab, ask you a question, or open a file beside itself:
tenon-cli rename "Fixing the token refresh race"
tenon-cli intent send agent.ask.v1 --input '{"question":"Ship it?"}'Pre-alpha
Tenon is pre-alpha and its interfaces still change between builds. Releases are marked pre-release for that reason. The terminal workspace, spatial canvas, plugin and intent runtime, CLI, command palette, automations and Agent Lens are implemented; the cross-session Attention Inbox and evidence-linked context capsules described in the vision are not yet built.