Product
Local terminal
Sometimes the tool you need is right where you are: a shell on your own
machine. Transit’s Terminal surface opens a real local OS shell —
zsh, bash, fish, PowerShell, cmd, a WSL distro, or a Python / Node
REPL — as a tab right beside your SSH and console sessions. It’s a full
terminal, not a toy: GPU-accelerated rendering, real resize, tabs, and
split-screen tiling with everything else.
It’s the same two-actor model as the SSH side, pushed all the way to one end: you get a full shell; the AI gets nothing at all.
Available in Transit 4.4.0 and later.
Two actors, one surface
| You | The AI agent | |
|---|---|---|
| Can do | Open a shell and run anything on it | Nothing — no access at all |
| Gated? | No — like typing at any terminal | N/A — no tool reaches a local shell |
| Sees it? | Yes — it’s your surface | No — structurally invisible |
| Price | Free | — |
The local terminal is human input, exactly like typing at the SSH prompt. The difference from the SSH side is that here the AI has no share: it cannot list a local shell, read its output, or run anything in it. No new AI tool was added for this surface — it’s invisible to the agent by construction (see the last section below).
Discover and open a shell
The launcher enumerates the shells actually installed on your machine and
shows each one’s version, so you pick from what you have rather than
guessing a path. Typically that’s zsh, bash, and fish on macOS and
Linux; PowerShell, cmd, and any installed WSL distributions on Windows.
Python and Node REPLs show up when they’re on your PATH. Pick one — or
take the default — and it opens as a new tab.
A full terminal, not a cut-down one
- GPU-accelerated rendering. The pane uses the same WebGL-accelerated
xterm renderer as your SSH sessions, so a fast-scrolling build log or
topstays smooth. - Real resize. The PTY resizes with the pane, so full-screen programs
(
vim,htop,less) lay out correctly. - Tabs and tiling. Open as many local shells as you like, and split and tile them alongside SSH and console sessions in a single layout.
- Clear, log, export. Clear the scrollback, or stream it to a file — the same session logging and export the SSH side has.
- Close-confirm. Closing a tab with a live shell asks first, the same guard a live SSH session gets.
Restart in place
When a shell exits — you typed exit, or a REPL quit — the tab doesn’t
vanish. The final scrollback stays on screen and a banner tells you to
press Enter to restart the shell in the same tab, scrollback preserved.
It’s the same reconnect-in-place gesture an ended SSH session uses.
Turning it off
The local terminal is on by default and free. Administrators who don’t want it can remove the surface entirely with a config switch:
[terminal]
enabled = false
in Transit’s config.toml, which lives next to the transit.toml
inventory:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Transit/config.toml |
| Windows | %APPDATA%\Transit\config.toml |
| Linux | ~/.config/Transit/config.toml |
Create the file if it doesn’t exist yet, then restart Transit. With it set, the Terminal rail tab doesn’t appear and no local shell can be opened — an enterprise off-switch for locked-down deployments.
Why the AI can’t touch it
The local terminal is human input, by construction — the same
two-actor safety model as the rest of Transit, with the AI’s share set to
zero. The agent’s tool surface is fixed at six abilities (list open
sessions, read redacted scrollback, propose a command, propose a read-only
API GET, query a packet capture, ask a question), and none of them reach
a local shell. The surface simply isn’t wired into anything the agent can
call: it can’t list a local terminal, can’t read its scrollback, and can’t
run a thing in it.
That isn’t a preference you could loosen — it’s structural, the same property that keeps the AI investigation-only everywhere else. See the security model for how the fixed six-ability menu and the agent firewall are enforced.