A terminal session manager for Linux and MacOS using tmux to aid in management and monitoring of AI coding agents, written in Rust.
Quick install (Linux & macOS):
curl -fsSL \
https://raw.githubusercontent.com/njbrake/agent-of-empires/main/scripts/install.sh \
| bashHomebrew:
brew install njbrake/aoe/aoeUpdate via brew update && brew upgrade aoe.
Build from source:
git clone https://github.com/njbrake/agent-of-empires
cd agent-of-empires
cargo build --releaseAgent of Empires (aoe) is a wrapper around tmux, the terminal multiplexer. Each AI coding session you create is actually a tmux session under the hood.
Once you attach to a session, you're working directly in tmux. Basic tmux knowledge helps:
| tmux Command | What It Does |
|---|---|
Ctrl+b d |
Detach from session (return to Agent of Empires) |
Ctrl+b [ |
Enter scroll/copy mode |
Ctrl+b n / Ctrl+b p |
Next/previous window |
If you're new to tmux, the key thing to remember is Ctrl+b d to detach and return to the TUI, and that with Claude Code you'll need to enter scroll mode in order to scroll up in the Claude Code window (this isn't necessary when using opencode).
- TUI Dashboard - Visual interface to manage all your AI coding sessions
- Session Management - Create, attach, detach, and delete sessions
- Group Organization - Organize sessions into hierarchical folders
- Status Detection - Automatic status detection for Claude Code and OpenCode
- tmux Integration - Sessions persist in tmux for reliability
- Multi-profile Support - Separate workspaces for different projects
# Launch the TUI
aoe
# Or add a session directly from CLI
aoe add /path/to/projectProfiles let you maintain separate workspaces with their own sessions and groups. This is useful when you want to keep different contexts isolated—for example, work projects vs personal projects, or different client engagements.
aoe # Uses "default" profile
aoe -p work # Uses "work" profile
aoe -p client-xyz # Uses "client-xyz" profileEach profile stores its own sessions.json and groups.json, so switching profiles gives you a completely different set of sessions.
Configuration is stored in ~/.agent-of-empires/:
~/.agent-of-empires/
├── config.toml # Global configuration
├── profiles/
│ └── default/
│ ├── sessions.json # Session data
│ └── groups.json # Group structure
└── logs/ # Session logs
| Variable | Description |
|---|---|
AGENT_OF_EMPIRES_PROFILE |
Default profile to use |
AGENT_OF_EMPIRES_DEBUG |
Enable debug logging |
# Check code
cargo check
# Run tests
cargo test
# Format code
cargo fmt
# Lint
cargo clippy
# Run in debug mode
AGENT_OF_EMPIRES_DEBUG=1 cargo run
# Build release binary
cargo build --releaseIf you're connecting via SSH from a mobile app like Termius, you may encounter issues when attaching to sessions. The recommended approach is to run aoe inside a tmux session:
# Start a tmux session first
tmux new-session -s main
# Then run aoe inside it
aoeWhen you attach to an agent session, tmux will switch to that session. To navigate back to aoe use the tmux command Ctrl+b L to switch to last session (toggle back to aoe)
This is not an issue with aoe: it's a known problem with Claude Code: anthropics/claude-code#1913
Inspired by agent-deck (Go + Bubble Tea).
MIT License - see LICENSE for details.
