Gangline

Gangline connects CLI coding harnesses as one team in tmux. It launches Claude Code and Codex in named windows, delivers attributed messages only when a native submit hook verifies the prompt, and records team state as a replayable event log.

Gangline is substrate, not a supervisor. Agents keep their native terminal UI, tools, permissions, and session history; operator prose decides how they work.

Install

Gangline supports macOS and Linux. Installation requires Git, Go 1.27 or later, tmux 3.2 or later, and at least one supported harness. Run each harness directly once so it can complete its own sign-in and repository prompts.

Install the latest stable release:

curl -fsSL https://raw.githubusercontent.com/adambiggs/gangline/main/install.sh | sh

The installer checks out the newest gangline-v* tag, builds one static gang binary, and places it in ~/.local/bin by default. Confirm the installation:

gang --version
gang collars

Use gang upgrade --check to inspect the newest stable release and gang upgrade to install it.

Start a team

From the repository where the team should work:

gang up -c claude-code -m sonnet -e high

gang up creates the configured tmux session, hitches the first agent as lead, and attaches your terminal. Detach with Ctrl-b d; return with gang attach.

Common commands:

gang roster
gang status lead --why
gang capture lead
gang hitch worker -c codex -d "$PWD" -r worker -t 'Run the focused checks.'
printf '%s\n' 'Report the result.' | gang send worker --from operator
gang log

Inside a registered agent window, gang send NAME derives the sender from the tmux pane. Outside the team, --from is required and the envelope labels that identity self-declared:.

State lives under ${XDG_STATE_HOME:-~/.local/state}/gangline/v1/. Every team has an append-only events.jsonl; gang replay folds a saved log without contacting tmux or a harness.

A Gangline team working in native terminal windows

Documentation

Gangline is licensed under Apache-2.0.