TransIT AI

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

YouThe AI agent
Can doOpen a shell and run anything on itNothing — no access at all
Gated?No — like typing at any terminalN/A — no tool reaches a local shell
Sees it?Yes — it’s your surfaceNo — structurally invisible
PriceFree

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 top stays 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:

OSPath
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.