TransIT AI

Product

Features

Your terminal and your API client, in one workspace — with an agentic AI that can investigate but can’t change your gear. Below is what’s in the product.

SSH client

Multi-session tabs

  • One terminal pane per session; scrollback survives tab switches.
  • Click the tab strip to switch; right-click for rename, export, split, close.
  • Multiple sessions per device are allowed — labels disambiguate as vEX1, vEX1 (2), vEX1 (3), etc.
  • Closing a still-connected tab opens a confirm dialog; ended tabs close without prompting.

Three ways to connect

  • Right-click → Connect in the sidebar.
  • Double-click the device row.
  • Click to focus, then press Enter.

All three open a new tab and focus it.

Reconnect with Enter

After typing exit or logout, the tab stays in place with an amber “session ended” banner. Press Enter inside the pane to reconnect: the dead backend session is cleaned up best-effort, a fresh SSH session opens against the same device, and the new sessionId is swapped into the same tab slot. Custom labels and split anchors survive the swap.

Split-pane view & tiling

Split any tab into a resizable grid of panes — right or down, nested to any depth (Windows-Terminal-style). Drag a tab into a pane to tile it, and close a pane to collapse the grid. One layout can mix SSH, serial console, and local-shell panes side by side. Walkthrough: Split & tile panes.

Per-device terminal preferences

Each device record can opt into:

  • Syntax highlighting — keyword-based ANSI colouring of completed lines. Auto-bypasses while the device is in the alt screen (so vi, less, top render correctly).
  • Quick copy/paste — auto-copy on selection, right-click and middle-click paste. Multi-line pastes prompt for confirmation regardless.

Per-host accent colours

Assign a device a colour from a curated, theme-aware palette. It shows as a left-edge accent on the sidebar row, the session tab, and the terminal pane — a glance-check for “am I on the right box?” The palette recolours with the active light/dark theme; a device with no colour set is unchanged.

Device tags

Tag devices with free-form labels — prod, core, dc3 — orthogonal to the folder hierarchy. Tags show as chips on the sidebar row.

Cmd/Ctrl+F opens an in-pane search overlay that highlights every match and shows a live match count. Enter cycles forward, Shift+Enter back, Esc closes. Searches the terminal’s full 32,000-line scrollback buffer.

Session export

Right-click a tab → Export scrollback…. The export pipeline re-runs the redaction filter on the raw bytes (so freshly-emitted secrets are stripped even if they weren’t filtered at display time) and offers age encryption with a recipient key. A leaked transcript doesn’t leak credentials.

Session logging to file

Right-click a tab → Log session to file… streams that session’s output to a file you pick, each line stamped with a UTC timestamp. A recording dot marks the tab; Stop logging ends it. Output is redacted at the write boundary — the same filter session export uses — so a log never lands a device secret in cleartext.

Capture & diff

Open it from the command palette — Cmd/Ctrl+K → “Compare captures / diff output…”. Capture a command’s output as a named snapshot, then diff two captures — the same device over time, or two devices side by side — to catch config drift. The captured output is redacted before it’s written; the diff is a plain line-by-line comparison. Walkthrough: Capture and diff configs. (This is command-output capture; packet capture is its own surface.)

Scriptable collections

Save a named set of commands — an “L3 health check”, say — and run it against a session in one sweep, with each command’s output captured for review or diffing.

Host-key handling (TOFU)

On first connect, Transit AI records the device’s SHA-256 host-key fingerprint and prompts for explicit user approval, pinning the device identity in Transit’s known_hosts.toml (in the same folder as your transit.toml inventory). If the fingerprint later changes (re-image, RMA, firmware re-key), a changed-key warning shows the pinned and new fingerprints side by side; replacing the pin requires ticking “I’ve verified this key change is legitimate” and clicking Replace & connect, and the new pin is saved only after the connection also authenticates. Declining leaves the old pin untouched and the connect fails.

Strict cipher floor with opt-in legacy

Strict modern allowlist by default — curve25519, AES-GCM, ed25519 host keys. For Cisco vIOS / CSR1000V 16.x and older Junos releases that default to SHA1 KEX or ssh-rsa host keys, a per-device opt-in dialog surfaces the offered algorithms and requires explicit “Connect anyway” — and optionally “remember for this device”.

Console-cable transport

USB-to-serial cables (FTDI / SiLabs / Prolific) auto-detect on macOS and surface in a dedicated sidebar section. The same agent driving an SSH session can drive a console session — the same tools work identically on a serial connection.

Send Break — a dedicated button on console tabs asserts a serial BREAK (interrupt a boot sequence, drop to ROMMON). BREAK isn’t a keystroke, so it gets its own control. Auto-reconnect — unplug the cable and plug it back in and Transit re-opens the dropped session on the same tab, output resuming, instead of leaving a dead one; a session you closed yourself is never reconnected.

Not every USB-to-serial cable has been tested with Transit AI, but this one has.

Local terminal

Open a real local OS shell — zsh, bash, fish, PowerShell, cmd, a WSL distro, or a Python / Node REPL — as a tab beside your remote sessions. The launcher discovers installed shells and shows their versions; the pane is a full GPU-rendered terminal with tiling, logging, and press-Enter restart-in-place. Free, and removable with [terminal] enabled = false for locked-down deployments. It’s human input — the AI is structurally blind to it, no new agent tool involved. See Local terminal.

File transfer (SFTP)

A SecureFX-style dual-pane file browser — local on the left, the device on the right — over SFTP, using the same inventory, credentials, and host-key trust as an SSH session. Browse both sides, create / rename / delete, and move files either direction by double-click, toolbar, dragging between panes, or dragging in from Finder / Explorer, with a live transfer queue (per-file progress, speed, cancel). Free; [files] enabled = false disables the whole surface (doubling as a DLP control). Human input — the AI can’t touch it. SFTP today; SCP is planned. See File transfer.

Packet capture (PCaps)

Capture traffic from a local network interface — driving the OS’s own tcpdump / pktmon, no driver, no Npcap — or open any .pcap / .pcapng / .pcap.gz. A three-pane explorer (packet list, field tree, bytes) with a validating view filter (tcp.port == 443 and dns.rcode != 0), plus computed findings — retransmit rates, zero-window stalls, refused connections, DNS failures, fatal TLS alerts — each with one-click evidence. Free, and the first surface the AI can read: it works the same analysis you see, never wire payload (there is no query for it). [pcap] agent_access = false severs the AI’s view; [pcap] enabled = false removes the surface. See Packet capture.

NetBox integration

Your NetBox becomes both AI context and an inventory source. As a controller, it ships a curated read-only collection (the circuit → terminations → devices walk, IP and prefix lookups) that the AI drives through the same gated, GET-only API calls as every controller. As an inventory source, the bulk-import pane fetches a reviewed diff — New / Changed / Stale, per-field accepts, deletes re-confirmed by name — and applies it in one atomic commit, keyed on a stable NetBox identity so re-syncs update instead of duplicating. Nothing syncs back to NetBox, nothing runs on a schedule, and the AI can’t trigger or shape a sync. See NetBox.

AI agent

Six abilities — exactly six

The AI has a fixed, six-item menu and can’t gain a seventh at runtime:

  1. List your open sessions — names only, no scrollback content.
  2. Read the recent output of a session — with known secrets redacted first, best-effort (see Redaction filter below).
  3. Propose a command for you to approve — the AI cannot run anything on its own; every proposal passes the per-vendor permit list and your explicit click.
  4. Propose a read-only API call (GET) — on an API session, the AI can only ever propose a GET; it structurally cannot request a write. Each one passes a GET-only, host-pinned gate and your explicit click.
  5. Query an open packet capture — on the PCaps surface, the AI reads dissected fields and computed summaries from a capture you opened. It structurally cannot request wire payload — no such query exists — and it reads a local file, changing nothing.
  6. Ask you a clarifying question.

Adding a seventh ability requires an actual code change we ship — a prompt-injected or jailbroken model cannot invent one at runtime.

Talk about devices by name

The AI sees your sessions under the connection names you gave them, so you can just ask: “what is R1’s loopback IP?” or “compare the BGP neighbors on core-1 and core-2.” No session ids, no host addresses — the name you picked when you added the device is the name the AI knows it by.

Per-vendor permit list

Every command the AI proposes is checked against a per-vendor permit list before you ever see an approval prompt. The list spells out which read-only commands the AI is allowed to suggest; anything not on it — configure, write, delete, shell escapes like start shell or tclsh — is rejected, and the AI is told it can’t run that command. The AI is briefed on the permit lists for the vendors you actually have sessions open to — leaner context per message, and the enforcement check always runs against the full list regardless. See Vendor coverage for the per-vendor breakdown.

Approval click

Even commands the permit list allows require your explicit click. The approval dialog cannot be dismissed by Enter, Escape, or clicking outside. You can opt into an “always allow this pattern in this chat” shortcut, but only for commands the permit list already allows — the permit check still runs on every command, and a denied command stays denied regardless of any shortcut you’ve saved.

Redaction filter

Device output passes through Transit AI’s redaction layer before the AI sees it. PEM blocks, encrypted password lines (enable secret, username password 7, BGP MD5 keys, OSPF auth keys), AWS keys, JWTs, and other secret-shaped tokens are stripped and replaced with placeholders like [REDACTED:pem#1]. The #N ordinal is per-conversation: same number = same secret bytes, so the AI can reason about credential equivalence without ever seeing the value.

This is a best-effort, pattern-based filter — it catches secret-shaped tokens and known credential patterns, not every conceivable secret. It’s defense in depth, not the security boundary: the hard guarantee is architectural — the AI is investigation-only and has no path to your credential store, so a secret the filter misses still can’t be used to change anything.

Bounded investigations

Long autonomous runs pause at a checkpoint — roughly 50 rounds of back-and-forth or an internal spend ceiling, whichever comes first — and wait for a one-click Continue instead of running unattended. A single stalled model turn times out after 90 seconds, and a Stop button is always visible while a run is active.

Identity & secrets

Sign-in through your browser

Transit AI signs you in by launching your system browser, then receiving your session back through a transit:// link. You stay signed in across restarts; sessions refresh quietly in the background.

Secrets in your OS keyring

SSH passwords live in your OS’s native keyring — macOS Keychain, Windows Credential Manager, Linux Secret Service, or your running SSH agent. The desktop binary holds no secret in process memory longer than needed to authenticate a session, and never serializes one to disk.

BYOK (all paid tiers)

Bring your own Anthropic or OpenAI key — Transit AI reads it from your OS keychain per request, passes it through to the AI provider, and forgets it. Keys are never stored or logged on our cloud. Included with every paid tier — Hobbyist, Operator, Pro, and Max — at no additional charge. (On Hobbyist, BYOK is the cloud-model path: the tier has no bundled allowance.) See Bring your own provider key for setup.

What Transit AI doesn’t do

  • No write operations on devices except through the per-vendor permit list AND your explicit click. Always both, never either.
  • No telemetry by default. If enabled, only operational metadata (token counts, latencies); never command bytes or prompt content.
  • No third-party analytics scripts. The marketing site (this site) serves no tracking scripts to its visitors.