Terminal

Element-backed terminal workbench for CLI agent elements. The overview lists Claude Code, Open Code, and Codex agents in the circle; selecting one opens that element's PTY stream with the element id as session_id.

binds_to: claude-code, open-code, codexdensity: comfortablesource: portal/src/canvas/multi_session_panel.rs

Live

The real panel component, mounted here over fixture data — the same shipped chrome the workspace renders, not a sketch.

terminal

Sketch

Structural preview of the panel chrome. The browser panel renders the real BrowserChrome primitive at miniature scale; the other variants are CSS shape silhouettes. Either way the composition tree below is the authoritative description of what's inside.

Terminalportal/src/canvas/multi_session_panel.rsexisting

States

  • emptyNo terminal agents yet - create Claude Code, Open Code, or Codex
  • overviewOne tile per terminal-capable agent element
  • connectingOpening the selected agent PTY stream
  • connectedInteractive terminal attached to the selected agent
  • errorWebSocket or PTY setup failed

Composition

Click any component name to jump to its component-page entry.

TerminalOverviewPanelouterGenerated-shell entry point that consumes TERMINAL_MULTI_SESSION_CONFIG and renders the element-backed terminal overview.
OverviewModestateGrid state listing one terminal-capable agent element per tile; source_kind=element_list suppresses legacy New/Close session controls.
TerminalTilecontrolClickable tile for a Claude Code, Open Code, or Codex element. The backing element id becomes the stable terminal session id.
SingleModecontentFocused terminal state for the selected agent element. Keeps a breadcrumb back to the overview and embeds the live terminal panel.
TriformTerminalPanelcontentBuilds `/api/{circle}/{agent-slug}/ws/terminal?session_id={element_id}` and renders the PTY stream through the shared TerminalView.
TerminalViewcontentPure-Rust terminal emulator and WebSocket bridge from `chemistry/shell/triform-chat/src/terminal/view.rs`.

Uses Components

Flat list of every component referenced — verifiable against the composition tree by the future generator audit.