Go TUI for parallel AI coding sessions

Manage every
Claude session
from one dashboard

parkranger gives you a single terminal dashboard across all your repos, worktrees, and tmux sessions. See which AI agents need attention, preview streaming output, and jump into any session instantly.

See it in action

Navigate repos, browse sessions, preview Claude output — all without leaving the terminal.

parkranger

Everything you need, nothing you don't

Not another agent. Not a git client. Just a workspace manager that gives you visibility.

!

Agent Status Dashboard

See at a glance which Claude agents are waiting for input, busy working, or idle. Waiting sessions float to the top.

+

One-Action Worktrees

Create a worktree + tmux session + editor + Claude pane with a single keypress. Both panes cd'd into the right directory.

~

Multi-Repo by Default

Manage sessions across all your repositories from one dashboard. No switching contexts, no lost sessions.

>

Streaming Preview

See Claude's response streaming live in the dashboard. Monitor progress without switching tmux windows.

#

Session Persistence

Close parkranger, reopen it later. Your sessions, conversation history, and agent state are all still there.

$

Session History & Resume

Browse past Claude conversations per worktree. Resume any session with one keypress. Deep scan finds orphaned sessions too.

How it works

parkranger orchestrates tmux and git worktrees. It doesn't replace either.

# Each repo gets a tmux session. Each worktree gets a window.

tmux session: pr-myrepo

├── window: dashboard # parkranger TUI

├── window: feat-auth # worktree window

│   ├── pane 0: nvim # editor

│   └── pane 1: claude # Claude Code

└── window: fix-login

    ├── pane 0: nvim

    └── pane 1: claude

Detect

Polls tmux capture-pane to classify agent state from visible output. No subshells spawned.

Classify

Pattern matching on pane content: permission prompts, interrupt hints, output hash diffs. Debounced 200ms.

Surface

Waiting sessions bubble up. Most actionable state wins when multiple Claude panes exist in a session.

Documentation

$ Installation

Go install
go install github.com/JollyGrin/parkranger/cmd/parkranger@latest
Build from source
git clone https://github.com/JollyGrin/parkranger
cd parkranger
go build -o parkranger ./cmd/parkranger
./parkranger

$ Prerequisites

*

tmux

Session management

*

git 2.15+

Worktree support

*

Go 1.24+

Build from source

*

Claude Code CLI

claude on PATH

$ Configuration

~/.config/parkranger/config.yaml
repos:
  - path: /path/to/your/repo
    default_branch: main

poll_interval: 2s
editor: nvim
session_prefix: "pr-"

$ Keyboard shortcuts

Key Action
j / k Navigate tasks
Enter Open / focus session
n New worktree + session
m Merge worktree branch
d Delete worktree
h Session history
s Deep search sessions
q Quit (sessions keep running)

$ CLI commands

parkranger                     # interactive dashboard (default)
parkranger open <name>         # skip picker, open directly
parkranger new <name>          # create worktree + open
parkranger ls                  # list worktrees (non-interactive)
parkranger merge <name>        # merge flow
parkranger delete <name>       # delete flow

Replace five tools with one

What used to take tmux + ccmanager + workmux + ccfind + manual resume.

Task Before parkranger
Create worktree ccmanager menu n
Open tmux session tmux new -s <name> automatic
List tasks workmux ls dashboard IS the list
Check agent status ctrl-b w + squint status icons, real-time
Find old session ccfind <kw> h or s
Survive restart start over automatic