Multi-session Claude/Codex/GitHub CLI orchestrator with graph visualization.
Download for Windows | Build from source
- Claude CLI installed and authenticated
Download AgentPlex.exe from the latest release and run it. That's it.
macOS / Linux: Pre-built binaries coming soon. For now, build from source.
If you prefer to build from source instead of using the installer:
git clone https://github.com/AlexPeppas/agentplex.git
cd agentplex
pnpm install
pnpm startTo build a distributable installer:
pnpm makepnpm link --global # one-time setup
agentplex # launch from anywhereTo remove: pnpm unlink --global agentplex
Building from source requires Node.js 18+, pnpm (npm install -g pnpm), and native build tools for node-pty:
- Windows: Visual Studio Build Tools with "Desktop development with C++"
- macOS:
xcode-select --install - Linux:
sudo apt install build-essential python3
- Multi-session management — run multiple Claude/Codex/GH CLI sessions side by side
- Graph canvas — drag, arrange, and connect session nodes on a visual canvas
- HITL notifications — get notified when a CLI session requires human input
- Cross-session messaging — send messages between sessions with optional Haiku-powered summarization
- Sub-agent tracking — visualize spawned sub-agents via JSONL transcript tailing
- Plan & task visualization — see plans and task lists rendered in the graph
- Session resume — resume previous Claude sessions with
claude --resume - Dark / light mode — warm terracotta palette with theme toggle
- Inline rename — double-click any node to rename it
Three concurrent sessions on the graph canvas: Autonomous Driving spawned 3 sub-agents comparing Tesla, Waymo, and Cruise. Fine Tuning is in plan mode working through a structured research plan — it's currently waiting for human input (indicated by the ? badge). Mortgage crawls and looks for the best interest rates. Each node reflects real-time session status at a glance. Hover any session and click the send icon to share context with another session.
To enable AI-powered context summarization when sending messages between sessions, set your Anthropic API key using AGENTPLEX_API_KEY (not ANTHROPIC_API_KEY, which would conflict with Claude CLI's auth).
Set it persistently (recommended):
export AGENTPLEX_API_KEY=sk-ant-... # macOS/Linux (~/.bashrc or ~/.zshrc)
set AGENTPLEX_API_KEY=sk-ant-... # Windows (cmd)
$env:AGENTPLEX_API_KEY="sk-ant-..." # Windows (PowerShell)Or inline when launching from source:
AGENTPLEX_API_KEY=sk-ant-... pnpm start # macOS/Linux
$env:AGENTPLEX_API_KEY="sk-ant-..."; pnpm start # Windows (PowerShell)Without this, cross-session messaging still works — it sends raw context instead of a summary.
- Create sessions — click "+ New Session" and pick a working directory
- Arrange nodes — drag session nodes freely on the canvas
- Rename — double-click a node label to rename it
- Send messages — hover a node, click the send icon to share context with another session
- Resume — use "Claude Resume" from the menu to continue a previous session
agentplex/
├── src/
│ ├── main/ # Electron main process
│ │ ├── main.ts # App entry point & window management
│ │ ├── session-manager.ts # PTY session lifecycle
│ │ ├── ipc-handlers.ts # IPC bridge between main & renderer
│ │ ├── jsonl-session-watcher.ts # JSONL transcript tailing for sub-agent detection
│ │ └── plan-task-detector.ts # Plan & task list parsing
│ ├── preload/
│ │ └── preload.ts # Context bridge for renderer
│ ├── renderer/
│ │ ├── App.tsx # Root React component
│ │ ├── store.ts # Zustand state management
│ │ ├── components/ # UI components
│ │ │ ├── GraphCanvas.tsx # React Flow canvas
│ │ │ ├── SessionNode.tsx # Session graph node
│ │ │ ├── SubAgentNode.tsx # Sub-agent graph node
│ │ │ ├── GroupNode.tsx # Group container node
│ │ │ ├── SendDialog.tsx # Cross-session messaging
│ │ │ ├── TerminalPanel.tsx # xterm.js terminal
│ │ │ ├── Toolbar.tsx # Top toolbar
│ │ │ └── StatusIndicator.tsx
│ │ └── hooks/
│ │ └── useTerminal.ts # Terminal lifecycle hook
│ └── shared/ # Shared utilities
│ ├── ansi-strip.ts
│ └── ipc-channels.ts
├── styles/
│ └── index.css # Global styles
├── bin/
│ └── agentplex.js # CLI entry point
└── package.json
| Layer | Technology |
|---|---|
| Desktop shell | Electron |
| UI framework | React |
| Graph canvas | React Flow |
| Terminal | xterm.js |
| State | Zustand |
| PTY backend | node-pty |
| Summarization | Anthropic SDK (optional) |
See CONTRIBUTING.md for guidelines.
