Stop Juggling Claude Code Sessions! Use Recon Instead
What if I told you that every hour you spend tab-switching between Claude Code agents is an hour you'll never get back? Here's the brutal truth: developers running multiple AI coding sessions are drowning in terminal chaos. You've got Claude refactoring your API in one window, debugging your pipeline in another, writing tests somewhere else—and somehow you're supposed to remember which one needs your approval right now.
Sound familiar? You're not alone. The rise of agentic coding with Claude Code has created a new category of developer pain: session sprawl. Each powerful AI agent demands its own terminal, its own context, its own slice of your attention. Without a command center, you're just a digital air traffic controller with no radar.
Enter Recon—the tmux-native dashboard that transforms this chaos into clarity. Built by gavraz, Recon doesn't just manage your Claude Code sessions; it gives you superpowers. Real-time status monitoring. Visual creature-based tracking. One-key session switching. And the kicker? You never leave your terminal.
This isn't another bloated GUI wrapper. Recon speaks fluent tmux, leverages Claude Code's native session files, and renders everything in gorgeous terminal-native interfaces. Whether you're orchestrating five agents across different repositories or just trying to remember where you left that code review, Recon is the missing piece you didn't know you needed—until now.
What is Recon?
Recon is a tmux-native terminal user interface (TUI) for managing multiple Claude Code sessions simultaneously. Created by developer gavraz and open-sourced on GitHub, it solves a deceptively simple problem that becomes excruciating at scale: how do you keep track of what multiple AI agents are doing without losing your mind?
The tool's genius lies in its architectural simplicity. Rather than inventing a new process management system, Recon piggybacks on tmux—the terminal multiplexer that serious developers already use. Each Claude Code instance runs in its own tmux session, and Recon reads directly from tmux's pane information, Claude Code's session JSON files, and live pane capture data to build a real-time dashboard.
Why is this trending now? Three converging forces: Claude Code's explosive adoption as a serious coding agent, the shift toward multi-agent workflows where developers parallelize tasks across multiple AI instances, and the terminal-native renaissance where developers reject Electron-heavy tools in favor of fast, keyboard-driven TUIs. Recon hits all three trends with surgical precision.
The project is written in Rust (installable via cargo), ensuring blazing performance and minimal resource overhead. It's MIT-licensed, though notably gavraz maintains a strict contribution policy—no pull requests accepted, with full control retained for security and auditability given the sensitive nature of session tracking.
Key Features That Separate Recon from the Pack
Recon isn't a wrapper—it's a radical reimagining of how developer-AI interaction should feel. Let's dissect what makes it special:
Dual-View Architecture: Data When You Need It, Delight When You Don't
Recon offers two fundamentally different interfaces for different cognitive modes. The Table View delivers dense, scannable information—session names, git branches, directories, real-time status, model versions, token usage, and last activity timestamps. It's your mission control for quick decisions.
The Tamagotchi View (v key) is where Recon transcends utility into experience design. Each agent becomes a pixel-art creature—happy green blobs with sparkles when working, angry orange pulsing blobs when blocked on input, sleeping blue-grey blobs when idle, cream-colored eggs for new sessions. Creatures animate. They live in rooms grouped by git repository. It's designed explicitly for that side monitor glance—peripheral awareness without cognitive load.
Zero-Config Session Detection
Recon doesn't parse ps output or guess based on working directories. It reads Claude Code's own session files at ~/.claude/sessions/{PID}.json, creating bulletproof session-to-process mapping. Status detection inspects the actual Claude Code TUI status bar—esc to interrupt means Working, Esc to cancel means Input, zero tokens means New. This is semantic understanding, not heuristic approximation.
Native tmux Integration Without Lock-In
Every session is a real tmux session. Kill it, attach to it, script around it—Recon doesn't hide anything. The included tmux.conf snippets let you pop Recon as a popup overlay with prefix keybindings. Your existing tmux muscle memory translates directly.
Session Lifecycle Management
Launch new agents with custom names, directories, models, and metadata tags. Resume past sessions from an interactive picker. Park and unpark entire session sets—think of it as hibernation for your AI workforce. Jump instantly to the next agent waiting for your input with recon next.
Scriptable JSON Output
recon json outputs machine-parseable session data, filterable by tags. Build your own automations, CI integrations, or external dashboards on top of Recon's foundation.
Use Cases: Where Recon Transforms Your Workflow
1. The Multi-Repository Microservice Developer
You're touching five services today. Each needs Claude Code context on different codebases, different dependency versions, different deployment pipelines. Without Recon: five terminal windows, constant tmux ls checks, forgotten sessions burning API tokens. With Recon: one prefix + g, instant visual inventory, hop between services in milliseconds.
2. The Code Review Parallelizer
You've assigned Claude to review three pull requests simultaneously—each in its own worktree, each with different review focus. Recon's room grouping shows myapp › feat/auth and myapp › fix/cors as separate spaces. When that orange angry blob starts pulsing, you know a review found something needing human judgment.
3. The Long-Running Agent Shepherd
Some tasks take hours: comprehensive refactors, test generation across large codebases, documentation sweeps. You start them, context-switch to other work, and need ambient awareness of completion without constant checking. The Tamagotchi view on your side monitor—creatures working, creatures sleeping, creatures demanding attention. It's the status light for knowledge work.
4. The Team Lead with Review Overhead
Your team's Claude Code sessions generate input requests scattered across Slack, email, and forgotten terminal tabs. Recon's recon next command creates a dedicated review loop: jump to next blocked agent, respond, prefix + i again. Batch-process interruptions instead of suffering death by a thousand context switches.
5. The Session Archaeologist
Three days ago, Claude was exploring that optimization idea. You killed the terminal, forgot the branch, lost the context. Recon's resume picker with session IDs and metadata tags means no session is truly lost—park your intellectual explorations, unpark when inspiration strikes again.
Step-by-Step Installation & Setup Guide
Ready to reclaim your terminal? Here's the complete setup from zero to dashboard.
Prerequisites
- tmux installed and running (any recent version)
- Claude Code installed and authenticated
- Rust toolchain with
cargo(install via rustup if needed)
Install Recon
# Clone the repository
git clone https://github.com/gavraz/recon.git
cd recon
# Build and install
cargo install --path .
This compiles the Rust binary and places recon in your ~/.cargo/bin/. Ensure this directory is in your PATH.
Configure tmux Integration
Add to your ~/.tmux.conf:
# Core dashboard popup (prefix + g)
bind g display-popup -E -w 80% -h 60% "recon"
# Quick new session (prefix + n)
bind n display-popup -E -w 80% -h 60% "recon new"
# Resume picker (prefix + r)
bind r display-popup -E -w 80% -h 60% "recon resume"
# Jump to next blocked agent (prefix + i)
bind i run-shell "recon next"
# Kill current session with confirmation (prefix + X)
bind X confirm-before -p "Kill session #S? (y/n)" kill-session
Reload tmux configuration:
tmux source-file ~/.tmux.conf
Verify Installation
recon --version # Should show version info
recon json # Should output [] or current sessions
Launch Your First Managed Session
# Quick launch in background
recon launch
# Named, targeted launch
recon launch --name api-refactor --cwd ~/repos/myapp --tag project:auth-rewrite
# Custom Claude model
recon launch --command "claude --model sonnet" --attach
REAL Code Examples from the Repository
Let's examine actual patterns from Recon's documentation, with deep technical commentary.
Example 1: The Core Dashboard Architecture
Recon's foundational insight is leveraging tmux as a process orchestrator. Here's how the architecture actually works:
# What Recon sees when you run it:
# 1. tmux list-panes → gets PID and session name
# 2. ~/.claude/sessions/{PID}.json → links to Claude session
# 3. ~/.claude/projects/…/*.jsonl → reads conversation history
# 4. tmux capture-pane → grabs status bar text for state detection
This four-source aggregation is elegant. Most tools would try to wrap Claude Code directly; Recon treats it as an observable system. The PID-to-session JSON mapping is particularly clever—Claude Code writes these files natively, so Recon gets reliable identity without fragile process parsing. The capture-pane call for status bar inspection means Recon understands Claude's display state, not just its process state. A process can be alive but idle, alive and streaming, or alive and blocked—Recon distinguishes all three.
Example 2: Session Launch with Full Customization
# Basic background launch
recon launch
# Production-grade launch with metadata
recon launch \
--name foo \
--cwd ~/repos/myapp \
--command "claude --model sonnet" \
--attach \
--tag env:staging \
--tag role:reviewer
The --tag system deserves special attention. These are key:value metadata pairs that enable dimensional filtering. Later, recon json --tag role:reviewer surfaces only review sessions. This transforms Recon from a session list into a queryable session database. The --attach flag is a tmux-native concept—after creating the session, Recon attaches your current terminal to it, creating seamless workflow continuity.
Example 3: JSON Output for Automation
# All sessions as JSON
recon json
# Filtered by tag intersection (must match ALL specified tags)
recon json --tag role:reviewer --tag env:staging
This enables powerful downstream automation. Imagine a cron job that:
# Alert if any staging reviewer has been waiting >10 minutes
recon json --tag env:staging --tag role:reviewer | \
jq '.[] | select(.status == "Input" and .last_active_minutes > 10)' | \
notify-send "Review bottleneck detected"
The tag intersection logic (must match all) is strict but correct for precision filtering. Build compound queries for operational intelligence.
Example 4: Session Persistence with Park/Unpark
# Save all live sessions to disk (before reboot, end of day)
recon park
# Restore previously parked sessions
recon unpark
This is session hibernation for Claude Code. The implementation presumably serializes session metadata to disk, then recreates tmux sessions with matching parameters on restore. For developers who treat AI agents as long-lived collaborators rather than disposable queries, this is transformative. Your "code review assistant" or "legacy refactor specialist" can survive system restarts.
Example 5: The tmux Popup Integration
# In ~/.tmux.conf — the complete popup binding
bind g display-popup -E -w 80% -h 60% "recon"
The display-popup -E flag is tmux 3.2+ magic. -E means "exit when the command exits"—so your popup closes automatically when you quit Recon. The 80% -h 60% dimensions create a centered overlay that feels like a native application launcher. This single line eliminates the friction of "open new terminal, run command, manage window" that kills dashboard adoption.
Advanced Usage & Best Practices
Optimize Your Tamagotchi View Placement
The pixel-art dashboard is designed for peripheral awareness, not active monitoring. Put it on a secondary display, run recon view in a small persistent terminal, or use tmux's display-popup with longer timeouts. The animation states—sparkles, pulsing, Zzz—are optimized for at-a-glance comprehension.
Build Input-Batching Rituals
Use recon next (or prefix + i) to create dedicated response sessions. Instead of reacting to every Claude interruption immediately, batch-process: set a 25-minute Pomodoro, then handle all waiting inputs at once. Recon makes the batch visible and navigable.
Tag for Operational Semantics
Don't just tag arbitrarily—create a controlled vocabulary. Suggestions: project:*, env:local|staging|prod, role:explore|implement|review|debug, priority:p0|p1|p2. Consistent tagging unlocks recon json for team dashboards, time tracking, and bottleneck analysis.
Handle /clear Correctly
Claude Code's /clear creates a new JSONL without updating session mapping. Recon shows stale data afterward. Best practice: instead of /clear in long sessions, kill and relaunch through Recon. This maintains clean tracking and gives you a fresh Tamagotchi egg.
Compose with tmux Plugins
Recon doesn't replace your tmux setup—it amplifies it. Combine with tmux-resurrect for broader session recovery, tmux-continuum for auto-save, or custom scripts that call recon json for team-wide visibility.
Comparison with Alternatives
| Feature | Recon | Manual tmux | Terminal Tabs | Claude Desktop |
|---|---|---|---|---|
| Multi-session visibility | ✅ Native dual-view | ❌ Manual tmux ls |
❌ Scattered windows | ❌ Single session |
| Real-time status detection | ✅ Semantic (bar parsing) | ❌ None | ❌ None | ✅ Limited |
| Visual ambient awareness | ✅ Tamagotchi view | ❌ None | ❌ None | ❌ None |
| Session persistence | ✅ Park/unpark | ⚠️ Manual save/restore | ❌ None | ✅ Cloud |
| Terminal-native speed | ✅ Rust/TUI | ✅ Native | ⚠️ Moderate | ❌ Electron |
| Git-aware grouping | ✅ Automatic | ❌ Manual | ❌ None | ❌ None |
| Custom model launching | ✅ Per-session | ⚠️ Manual | ⚠️ Manual | ❌ Global |
| Scriptable output | ✅ JSON API | ⚠️ tmux commands | ❌ None | ❌ None |
| No context switching | ✅ Stays in terminal | ✅ Stays in terminal | ❌ GUI context | ❌ App context |
The verdict: Manual tmux is powerful but invisible—you forget what you have. Terminal tabs multiply chaos. Claude Desktop is beautiful but single-threaded and GUI-bound. Recon is the only solution that combines multi-session orchestration, real-time semantic status, visual ambient awareness, and terminal-native performance.
FAQ
Is Recon only for Claude Code?
Currently yes—the status detection logic is specific to Claude Code's TUI status bar text. However, the architecture could theoretically extend to other terminal-based AI tools with similar status indicators.
Does Recon work with tmux over SSH?
Yes, if Recon and Claude Code run on the same machine where tmux server lives. For remote development, run everything on the remote host and use SSH/mosh for connection.
How does Recon handle Claude Code updates?
Recon reads stable interfaces: tmux pane data and Claude's session JSON files. Unless Claude Code radically changes its status bar text or session file format, Recon continues working. The capture-pane approach is surprisingly resilient.
Can I contribute to Recon?
No pull requests are accepted. Gavraz maintains full control for security auditability. Feature requests and bug reports via GitHub Issues are welcome—liked ideas get implemented by the maintainer.
What's the performance impact?
Negligible. Recon is Rust-native, reads local files, and doesn't maintain persistent connections. The dashboard refreshes on interaction, not via background polling. Hundreds of sessions would be impractical for other reasons before Recon itself became slow.
How do I uninstall?
cargo uninstall recon
Remove the tmux.conf bindings manually. No persistent background services or global state to clean.
Does Recon send data anywhere?
No. All data stays local—tmux socket, Claude Code session files, your terminal. The session tracking is entirely client-side, which is precisely why gavraz restricts contributions: no risk of compromised dependencies exfiltrating your code or conversations.
Conclusion: Your Terminal Deserves a Command Center
The multi-agent coding revolution is here, but our tools haven't caught up. We're running Ferrari-grade AI assistants through bicycle-lane interfaces—one session at a time, one tab at a time, one forgotten terminal at a time.
Recon changes the game.
By embracing tmux as its foundation, Recon doesn't fight your existing workflow—it elevates it. The Table View gives you mission-critical data density. The Tamagotchi View gives you something no other tool offers: delightful ambient awareness of your AI workforce. Park and unpark for persistence. Tag and filter for scale. One keybinding for access.
This is how terminal-native developer tools should feel—fast, keyboard-driven, visually informative, and architecturally respectful of the ecosystem they inhabit.
Stop juggling sessions. Start orchestrating agents.
Install Recon today: clone github.com/gavraz/recon, cargo install --path ., add those tmux bindings, and experience what organized AI-assisted development actually feels like. Your future self—glancing at that green happy blob working away while you focus on deeper problems—will thank you.
Found this breakdown valuable? Star the repository, share with your tmux-loving colleagues, and drop an issue if you've got feature ideas. The future of terminal-native AI orchestration starts here.