Skip to main content
Sessions are isolated workspaces where agents work on issues. Each session has its own git worktree, tmux session, and metadata.

Listing Sessions

View all active sessions:
Output:
Each session shows:
  • Session ID (fe-1)
  • Last activity (2m ago)
  • Branch name (feat/add-login)
  • Status (working, pr_open, review_pending)
  • PR URL (if created)

Filter by Project

List sessions for a specific project:

Session Status Codes

Comprehensive Status View

Get detailed status with PR, CI, and review info:
Output:
Columns:
  • PR: PR number or - if not created
  • CI: ✓ passing, ✗ failing, ⋯ pending, - no checks
  • Rev: ✓ approved, ✗ changes requested, △ pending
  • Thr: Number of unresolved comment threads
  • Activity: active, ready, idle, waiting_input, blocked, exited
  • Age: Time since last activity

Activity States

JSON Output

Get machine-readable output for scripting:

Attaching to Sessions

Attach to a session’s terminal to watch the agent work:
Or use the open command:
Detach without killing: Press Ctrl+B, then D

Open Multiple Sessions

Open all sessions for a project:
Open all sessions across all projects:

Open in New Window

This uses the Terminal plugin (default: iterm2) to create terminal tabs/windows.

Sending Messages

Send instructions to a running agent:

How It Works

1

Wait for idle

The command waits for the agent to become idle before sending (default: 600s timeout)
2

Clear partial input

Sends Ctrl+U to clear any partial command
3

Send message

Injects the message into the tmux session
4

Press Enter

Automatically submits the message
5

Verify delivery

Checks that the agent received and is processing the message

Send Without Waiting

Skip the idle wait:
Sending while the agent is active may interrupt its current task. Use --no-wait only when necessary.

Send from File

Send long instructions from a file:
Example instructions.txt:

Custom Timeout

Change the idle wait timeout:

Delivery Confirmation

The command verifies delivery:
Or:
If delivery can’t be confirmed:

Killing Sessions

Terminate a session and remove its worktree:
This:
  1. Kills the tmux session
  2. Removes the git worktree
  3. Updates session status to killed
  4. Preserves metadata for audit trail
Killing a session does NOT close or delete the PR. The PR remains open on GitHub/GitLab.

When to Kill Sessions

✅ Good reasons to kill:
  • PR merged, work is complete
  • Agent is stuck and unrecoverable
  • Duplicate session for the same issue
  • Issue was closed/canceled
❌ Don’t kill if:
  • Agent is just slow (give it time)
  • CI is failing (let auto-reactions handle it)
  • You just want to pause (detach instead)

Automatic Cleanup

Remove completed sessions automatically:
This kills sessions where:
  • PR is merged
  • Issue is closed (in tracker)
  • Runtime is no longer alive
Dry run to preview:
Output:
Cleanup specific project:

Cleanup Criteria

A session is cleaned if:
The PR associated with the session has been merged to the default branch.Detected via SCM plugin:

Restoring Sessions

Restore a crashed or terminated session in-place:
This:
  1. Verifies the worktree still exists
  2. Checks that the session is restorable (not merged)
  3. Creates a new tmux session
  4. Relaunches the agent in the same workspace
  5. Updates metadata with restore timestamp
When to restore:
  • tmux session crashed but worktree is intact
  • Agent exited unexpectedly
  • You manually killed tmux but want to resume
Cannot restore if:
  • Session status is merged (work is complete)
  • Worktree was deleted
  • Branch was deleted from the repo
Restore output:

Session Metadata

Each session stores metadata in flat files:
Metadata is:
  • Flat key=value format (backwards compatible)
  • Human-readable (edit with any text editor)
  • Tracked in event log (full audit trail)

Scripting Examples

Kill all merged sessions

Send message to all sessions

Monitor session status

Next Steps

Auto-Reactions

Automate CI failure handling and review responses

Multi-Project Setup

Manage multiple repositories simultaneously