README
¶
Agent Session Manager (ASMGR)
A powerful terminal UI (TUI) application for managing multiple AI coding assistant CLI sessions using tmux. Inspired by Claude Squad.
Supported AI Agents
- Claude Code - Anthropic's CLI coding assistant
- Gemini CLI - Google's AI assistant
- Aider - AI pair programming in your terminal
- OpenAI Codex - OpenAI's coding assistant
- Amazon Q - AWS AI coding companion
- OpenCode - Open-source AI coding assistant
- Custom - Any CLI command you want to manage
Features
- Multi-Agent Support - Run Claude, Gemini, Aider, Codex, Amazon Q, OpenCode, or custom commands
- Multi-Session Management - Run and manage multiple AI sessions simultaneously
- Live Preview - Real-time preview of agent output with ANSI color support
- Session Resume - Resume previous Claude conversations from any project (Claude-specific)
- Activity Indicators - Visual indicators showing active vs idle sessions
- Custom Colors - Personalize sessions with foreground colors, background colors, and gradients
- Prompt Sending - Send messages to running sessions without attaching
- Session Reordering - Organize sessions with keyboard shortcuts
- Compact Mode - Toggle spacing between sessions for denser view
- Smart Resize - Terminal resize follows when attached, preview size preserved when detached
- Overlay Dialogs - Modal dialogs rendered over the main view with proper Unicode character width handling
- Fancy Status Bar - Styled bottom bar with highlighted keys, toggle indicators, and separators
- Rich Help View - Comprehensive help page with keyboard shortcuts and detailed descriptions (F1 or ?)
- Session Groups - Organize sessions into collapsible groups for better organization
Installation
Prerequisites
- Go 1.24 or later
- tmux
- At least one AI CLI tool installed:
Build from Source
git clone https://github.com/izll/agent-session-manager.git
cd agent-session-manager
go build -o asmgr .
Install to PATH
# Linux/macOS
cp asmgr ~/.local/bin/
# or
sudo cp asmgr /usr/local/bin/
Usage
Simply run:
asmgr
Keyboard Shortcuts
Navigation
| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
J / Shift+↓ |
Move session down (reorder) |
K / Shift+↑ |
Move session up (reorder) |
Session Actions
| Key | Action |
|---|---|
Enter |
Start (if stopped) and attach to session |
s |
Start session without attaching |
x |
Stop session |
n |
Create new session |
e |
Rename session |
r |
Resume previous Claude conversation |
p |
Send prompt/message to running session |
d |
Delete session |
Groups
| Key | Action |
|---|---|
g |
Create new group |
G |
Assign session to group |
→ |
Expand group (when group selected) |
← |
Collapse group (when group selected) |
Tab |
Toggle group collapse (when group selected) |
e |
Rename group (when group selected) |
d |
Delete group (when group selected) |
Customization
| Key | Action |
|---|---|
c |
Change session color |
l |
Toggle compact mode |
t |
Toggle status lines (last output under sessions) |
y |
Toggle auto-yes mode (--dangerously-skip-permissions) |
Other
| Key | Action |
|---|---|
R |
Force resize preview pane |
F1 / ? |
Show help |
q |
Quit |
Inside Attached Session
| Key | Action |
|---|---|
Ctrl+q |
Detach from session (quick, works in any tmux session) |
Ctrl+b d |
Detach from session (tmux default) |
Note:
Ctrl+qis set as a universal quick-detach for all tmux sessions. ASM sessions get automatic resize before detach to maintain proper preview dimensions.
Color Customization
Press c to open the color picker for the selected session:
- Foreground Colors - 22 solid colors + 15 gradients
- Background Colors - 22 solid colors
- Auto Mode - Automatically picks contrasting text color
- Full Row Mode - Extend background color to full row width (press
fto toggle) - Gradients - Rainbow, Sunset, Ocean, Forest, Fire, Ice, Neon, Galaxy, Pastel, and more!
Use Tab to switch between foreground and background color selection.
Session Resume
ASM can resume previous Claude Code conversations:
- Press
ron any session - Browse through previous conversations (shows last message and timestamp)
- Select a conversation to resume or start fresh
Session Groups
Organize your sessions into collapsible groups:
📁 Backend ▼ [3]
● api-server
● database-worker
○ cache-service
📁 Frontend ▶ [2] (collapsed)
● misc-session
- Press
gto create a new group - Press
Gto assign the selected session to a group - Press
→to expand a group,←to collapse it - Press
Tabto toggle collapse/expand - Press
eon a group to rename it - Press
con a group to change its color - Press
don a group to delete it (sessions become ungrouped)
Sessions without a group appear at the bottom of the list.
Activity Indicators
Sessions show different status indicators:
●Orange - Active (agent is working)●Gray - Idle (waiting for input)○Red outline - Stopped
Configuration
Configuration files are stored in ~/.config/agent-session-manager/:
sessions.json
Stores sessions and groups:
- Session: name, path, color settings, resume ID, auto-yes, group, agent type
- Group: name, collapsed state, color settings
filters.json (optional)
Customize status line filtering for each agent. Default filters are built-in, but you can override them:
{
"claude": {
"skip_contains": ["? for", "Context left"],
"skip_prefixes": ["╭", "╰"],
"min_separators": 20
},
"opencode": {
"skip_contains": ["ctrl+?", "Context:"],
"content_prefix": "┃",
"show_contains": ["Generating"],
"show_as": ["Generating..."]
}
}
Architecture
agent-session-manager/
├── main.go # Entry point
├── session/ # Session management & tmux integration
│ ├── instance.go # Instance lifecycle & PTY handling
│ ├── storage.go # Persistence
│ └── claude_sessions.go # Claude session discovery
└── ui/ # Bubbletea TUI
├── model.go # Core model, constants, Init, Update
├── handlers.go # Keyboard input handlers
├── views.go # View rendering functions
├── colors.go # Color definitions & gradients
├── styles.go # Lipgloss style definitions
└── helpers.go # ANSI utilities & overlay dialog rendering
Dependencies
- Bubble Tea - TUI framework
- Lip Gloss - Style definitions
- Bubbles - TUI components
- go-runewidth - Unicode character width calculation for overlay dialogs
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE for details.
Acknowledgments
- Inspired by Claude Squad
- Built with Charm libraries
- Powered by Claude Code
Documentation
¶
There is no documentation for this package.