The two lenses
Catenary shows the same work in two ways. The Canvas is the infinite canvas where panels float and wires connect agents. TerminalMap is the terminal orchestrator: a grid of terminal splits with a session switcher, made for the keyboard. ⌥⌘S switches between them at any time.
Nothing restarts
Switching lenses changes the presentation, never the work. The terminals, the agents running in them, the browsers and the editors are the same before and after the switch: nothing is closed, nothing is relaunched.
- Into TerminalMap, the terminals of the current session become a grid of splits. Editors and browsers wait as tabs in the right dock.
- Back to the Canvas, every panel returns to where it was. A panel you opened while in TerminalMap lands in the middle of the view.
The switcher at the top of the window, Canvas | TerminalMap, does the same as the shortcut. Each workspace remembers the lens it was left in.
The first launch
With no saved environment, Catenary opens on How do you want to start?, with one card for TerminalMap and one for Canvas. Either way you get a terminal in your Home folder, with no project to pick. A short tour follows; Esc skips it.
To open every project in the same lens, set Settings, General, Start layout. The default, Remember last layout per workspace, reopens each project as you left it.
The Sessions Cockpit
The sidebar has two tabs at the top, Sessions and Files. ⇧⌘S jumps to Sessions. Each card there is one work session, and the session you select is the one TerminalMap shows.
A card tells you what is happening without opening anything:
- the name, then the agent's latest recap or, before there is one, the task it was launched with;
- the branch, with
*when it has uncommitted changes, and the folder; - a dot for the state.
| Dot | Means |
|---|---|
| Blue, breathing | An agent is working |
| Green | The agent finished its turn and is ready for you |
| Amber | A request is waiting: input or approval |
| Red | Something failed |
The + beside a workspace adds a session. Right-click a card for Rename, Go to Request, Reveal in Canvas and Delete Session.
The bell and Jump to Unread
An agent that stops to ask for input or approval, or that fails, raises a request. An agent can also raise one on purpose, with the catenary_request_attention tool (see LSP and tools for agents).
Every pending request, from every workspace, collects under the bell at the left of the title bar. It stays reachable with the sidebar closed, the Files tab open or the workspace archived. Each entry shows its type (Input, Approval or Failure), the session, the workspace and how long it has waited.
⇧⌘U, Jump to Unread, takes you to the oldest request you have not seen yet, in whichever workspace it is.