---
title: jackin console
description: "Interactive operator console"
---
import { Aside } from '@astrojs/starlight/components'

<Aside type="tip">
The operator console is the **simplest and most convenient way to use jackin'** day-to-day, and the surface most operators stay on. The CLI is for the **advanced and very specific cases**: scripted one-liners, niche flags, automation, and behaviours the console deliberately does not expose.

Today the console covers launching agents (the `load` flow), managing workspaces (`workspace`), editing per-workspace auth and env tables (`config` for those scopes), managing operator-level config through Settings, and common recovery actions for visible instances including shell access and new-session actions via `x` and `a`. The remaining CLI subcommands — `eject`, `exile`, and niche flags — are **not in the console yet** and live on the CLI for now; they will land in the console as the TUI grows feature by feature. There is no feature parity by design: niche flags continue to land on the CLI first.

The expectation is **most people use the TUI, and reach for the CLI only when they need it.**
</Aside>

## Synopsis

```bash
jackin console [--debug]
```

Opens the operator console — an interactive terminal UI for picking a workspace and an agent, managing saved workspaces, editing per-workspace settings, and launching agents into isolated containers.

Running `jackin` with no subcommand opens the same console when stdout is attached to an interactive terminal. On non-interactive shells (piped output, CI, very small terminals) bare `jackin` silently prints top-level help instead. `jackin console` makes the intent explicit and errors out when the terminal cannot host the TUI.

## What the console gives you

The console opens directly to a workspace manager list — no separate workspace-picker stage. From there you can:

- **Launch an agent into a workspace.** Each workspace row opens the role picker in the sidebar, even when there is only one eligible role. Confirm the highlighted role to launch. If the selected role supports multiple agent runtimes, the console asks for that runtime next.
- **Use your current directory as a workspace.** A synthetic row at the top of the manager list mounts your `cwd` at the same path inside the container. Useful for quick one-off launches without saving a workspace definition.
- **Navigate running instances in the workspace tree.** Workspace rows show a `*` indicator when containers are active. Press `→` to expand the tree and reveal instance child rows — each shows the instance ID, role, agent runtime, and status. Navigate to an instance row and the right panel switches to a session pane listing recorded tmux sessions. From an instance row, `Enter` reconnects, `N` opens an agent picker to start a new session, `X` opens an ephemeral zsh shell, and `P` purges local recovery state. Press `←` from an instance row to collapse the tree and return to the workspace row. The workspace detail pane shows a compact running-instances badge when the tree is collapsed. From any workspace row, `r` reconnects or recovers, `a` starts another agent session, `x` opens a shell, `i` prints a read-only state report, and `p` purges.
- **Open the workspace editor.** Edit the workspace's roles, environment variables, and authentication settings. Each editor surface lives on its own tab inside the editor.
- **Open Settings.** Manage operator-level `jackin config` surfaces from the `Mounts`, `Environments`, `Auth`, and `Trust` tabs.

For the per-axis details — what each tab manages, what defaults apply, where the launch summary surfaces what's effective — see the per-axis guide pages linked below.

## Workspace editor — what each tab is for

- **General** — workspace name and working directory.
- **Roles** — which roles may launch in this workspace, and which one (if any) is the default. See [Workspaces](/guides/workspaces/).
- **Mounts** — host directories made available inside the container, with read-only / read-write and per-mount isolation modes. See [Mounts](/guides/mounts/).
- **Environments** — workspace-wide and per-role environment variables, sourced from literal values, host env, or `1Password`. See [Environment Variables](/guides/environment-variables/).
- **Auth** — `Claude Code`, `Codex`, `Amp`, `Kimi`, `OpenCode`, and `GitHub CLI` authentication forwarding modes at workspace and per-role scope. See [Authentication](/guides/authentication/) for the shared pattern across every auth axis.

Every editor surface is reachable from the workspace manager list — you don't need to know which keystroke opens which panel; the in-app footer shows the available actions for whatever you have focused.

## When to reach for the CLI instead

`jackin console` is the simplified, intuitive TUI for everyday workspace launches. [`jackin load`](/commands/load/) is the full-surface CLI — together with its neighbours (`hardline`, `eject`, `exile`, `purge`, `workspace`, `config`) it exposes every flag and capability jackin' offers.

The console intentionally stays narrower. **New niche flags and detail-level options land on the CLI first, and sometimes exclusively.** The console surfaces only what fits into an intuitive flow — treat it as a fast path for the common cases, not as a visual alias for the CLI.

| | `jackin console` | `jackin load` |
|---|---|---|
| **Interface** | Visual TUI | Command-line arguments |
| **Best for** | Exploring options, first-time setup, day-to-day launches | Scripting, repeatable workflows, feature-specific flags |
| **Workspace selection** | Interactive picker | Explicit argument |
| **Agent selection** | Interactive picker | Explicit argument |
| **Feature surface** | Simplified — common flows only | Complete — every flag jackin exposes |
| **Where new niche flags land** | Rarely | First, and sometimes exclusively |

For a deeper operator workflow around fresh instances versus multiple agent sessions inside one running instance, see [Parallel Agents](/guides/parallel-agents/).

## Running inside tmux

If you run `jackin console` from within a tmux session, your host tmux needs a small amount of configuration for agents to receive the correct keyboard and terminal experience — specifically `extended-keys always` so that Shift+Enter is not collapsed to plain Enter before it reaches the agent. See [Running inside tmux](/guides/tmux/) for the required settings and an explanation of each one.
