Skip to content

The Terminal Surface

Conductor Terminal registers two kinds of host.

Tools → Conductor Terminal contains up to four numbered terminal tabs, labelled Conductor Terminal 1 to 4. They are ordinary Unreal dockable tabs — drag them into a layout, float them, dock them beside the Output Log, whatever suits. Each tab keeps its own shell profile, its own sessions and its own split layout.

Four is a hard cap.

Alt+F2 toggles a terminal hosted in the editor’s status-bar panel drawer. It slides up over the bottom of the editor and dismisses with the same shortcut — handy for a quick command without disturbing your layout. The Conductor Terminal button in the status bar toggles the same drawer with the mouse.

The drawer is a host in its own right: it has its own persisted session record, separate from the four numbered tabs.

When the engine ships Epic’s ushell CLI (Engine/Extras/ushell), the plugin also surfaces it as its own entry under Tools → ushell, for the times you want Epic’s own project tooling rather than a general shell.

Above each terminal surface sits a row of native controls, left to right:

Control What it does
New session (+) Starts another shell in this tab, using the shell picked in the dropdown.
Shell picker Which detected shell new sessions use — plain, or wrapped in a PSMux / tmux workspace where available.
Session picker Switches between this tab’s sessions; only one is displayed at a time.
Terminal ID Read-only. The internal session name (for example T1_2) that the agent’s SwitchSession tool addresses.
Split side by side / Split stacked Add a sibling pane with its own shell. Hidden for PSMux and tmux sessions, where the multiplexer owns layout.
Swap panes Appears only when exactly two panes are open; exchanges them.
Delete session Ends the active session and removes it from the tab.
? PSMux sessions only: a cheat sheet of psmux keybindings (default prefix Ctrl+B).
Settings (gear) Opens Editor Preferences → Plugins → Conductor Terminal, which also holds the MCP client config and psmux install notes.
Pop out Opens a new terminal in the next free numbered slot, as a tab ready to drag into a floating window. Does nothing when all four slots are in use.
Close Closes the tab.

Pop out and Close are hidden inside the panel drawer, which draws its own pair.

If you are putting two terminals side by side and want every pixel for text, turn Show Top Bars off in settings. The whole chrome row disappears.

Each pane has a small colour swatch in its top-right corner — on the pane surface itself, not in the top bar. Tinting a pane is the fastest way to tell two shells apart at a glance — build in amber, agent in green, logs in slate.

A few things worth knowing about how tint works:

  • Alpha is the tint strength, not opacity. At A = 0 the pane keeps its stock background; the higher the alpha, the more of the colour blends in.
  • Cells the shell has explicitly coloured keep their own colours. Tinting the pane will not wash out your ls output or your agent’s syntax highlighting.
  • The per-pane choice persists across editor restarts.
  • The Default Terminal Tint setting seeds new panes only. Changing it never repaints panes that already exist. The factory default is #1E2022.

There is exactly one renderer: a native Slate renderer driven by a real ConPTY. There is no webview, no fallback path, and no toggle — which is why it starts instantly and costs you nothing in editor memory.

ANSI / VT sequences Full colour, attributes, cursor control, scroll regions. Identifies as a VT220 with Sixel.
Alternate screen Full-screen TUI apps (vim, htop, lazygit, agent TUIs) work correctly. A scrollbar hugs the right edge on the primary screen and hides on the alternate screen.
Kitty keyboard protocol CSI-u encoding for disambiguated keys, so modern agent CLIs get the key events they expect.
Inline graphics Sixel and iTerm2 OSC 1337 — see Inline Graphics.
Hyperlinks OSC 8 hyperlinks are underlined and open with Ctrl+click.
Scrollback 5,000 lines per pane by default (ScrollbackLines, config-only).
Fonts A curated monospace list with automatic fallback — see below.

Only monospace faces are offered, on purpose: a proportional font would break column alignment, because the renderer derives one cell width from the glyph advance.

Auto picks the best installed option in this order:

  1. Cascadia Mono (Windows 11 / Windows Terminal’s default), then Cascadia Code
  2. Consolas
  3. Courier New
  4. Droid Sans Mono (bundled with the engine — always available)

Any explicit choice is existence-checked at render time and falls back to the bundled Droid Sans Mono if it is not installed, so the terminal can never end up with a missing face.

Font size can either track the editor’s application scale, or be pinned — see Settings → Appearance. Ctrl+= / Ctrl+- and Ctrl+scroll zoom a pane for the session only and do not change the saved value; Ctrl+0 returns to the size the pane opened at.