docsterminals & rigs

Save your whole workspace. Launch it in one click.

A rig captures your project path, shell count, grid layout, and every named, role-tagged slot with its startup command. Define the setup once, launch the entire grid from the sidebar.

overview

A rig is a saved, reusable terminal workspace: a project path, a shell count, a grid layout, and a list of named, role-tagged slots, each with an optional startup command and an auto-start flag. Instead of re-opening shells, cd-ing into your project, and re-typing npm run dev / claude / git status every session, you define it once and launch the whole grid. Rigs are the backbone of 13x — Resume, Relay, Map context, and Broadcast all attach to rig slots by their stable slot ids.

  • Local-only files in the app config dir — no account, no sync, no network call
  • Works fully offline — zero telemetry
  • Startup commands stored verbatim and visible; never run hidden, only when auto is set
  • Versioned rigs.json envelope { "version": 1, "rigs": [...] }
  • Corrupt rigs file moved aside, not deleted — nothing silently destroyed
  • Lazy launch: only auto-start slots spawn eagerly
why it matters

One named rig = a whole workspace

A rig stores project path, terminal count, layout, and per-slot name, role, startup command, and auto-start. Load it to set the path and rebuild the slots; launch it to start the entire grid in that folder.

Visible, local-only startup commands

Startup commands are stored verbatim in the rig and only run when a slot's auto flag is set — typed into the shell as if you entered them. 13x never runs hidden commands.

Lazy launch — start slots on demand

At launch only auto-start slots come up eagerly. Every other slot renders empty with a TERMINAL / RELAY activity picker, so you start it when you need it instead of spawning every shell up front.

Role-tagged, agent-aware slots

Slots carry a role — SHELL, DEV, TEST, GIT, AGENT, LOG, or SCRATCH. AGENT slots can attach 13x Map code-context on launch, and the role drives the empty-slot picker and downstream agent selectors.

Crash-safe, self-healing storage

rigs.json is a versioned envelope. A corrupt file is moved aside to rigs.corrupt.<timestamp>.json with a readable error instead of crashing, and a legacy presets.json is migrated automatically on first load.

Local-first, no telemetry

Rigs live entirely on disk in the app config dir. No account, no sync, no network call — the whole feature works fully offline.

how it works
01

Define the rig

Open the RIG editor, name it, pick a project path and a layout, then set a shell count of 2 to 12. For each slot, set a name, a kind (Terminal or Relay), a role, an optional startup command, and the auto-start flag.

02

Save it

Click SAVE (or Ctrl+S) to persist the draft to rigs.json. An unsaved setup prompts for a name; an existing rig updates in place. Backend normalization fills slot ids, reindexes 1..N, and clamps Map limits.

03

Launch the grid

Click LAUNCH (or Ctrl+L from idle) and 13x validates the path, then starts a PowerShell session per eager slot in that folder and auto-runs each auto-start command. Lazy slots come up empty.

04

Start slots on demand

Click TERMINAL on an empty slot to lazily launch just that one PTY without tearing down the rest of the grid, or click RELAY to define a headless relay chain on that slot.

05

Load any saved rig

Click a rig in the sidebar RIGS list to load it back into the draft — it sets the path and count, rebuilds and reconciles slots, marks the rig active, and clears the dirty marker.

faq

Where are my rigs stored?

In a single versioned JSON file at <app config dir>/com.thirteenx.desktop/rigs.json (on Windows: %APPDATA%\com.thirteenx.desktop\rigs.json). Per-slot task-title overrides live in <project root>/.13x/slot-titles.json. All local, never uploaded.

Does 13x ever run hidden commands?

No. Startup commands are stored verbatim and visible in the rig editor, and a command only runs when its slot's auto flag is set — typed into the shell as if you entered it, only in the selected project path.

What happens if rigs.json gets corrupted?

13x moves the bad file aside to rigs.corrupt.<timestamp>.json, surfaces a readable error, and starts from an empty list rather than crashing. The corrupt file is preserved, not deleted, so nothing is silently destroyed.

Can I choose a shell other than PowerShell?

Not yet. Slots are PowerShell-only — the shell is hardcoded across the type, defaults, and editor, with no per-slot shell choice in the UI. On Windows pwsh falls back to powershell.exe; on macOS/Linux pwsh must be installed.

get started

one project. many shells. zero noise.

13x is local-first and free of telemetry — your code, commands and shells never leave the machine. Join the waitlist for the next build.