One dashboard for every AI coding tool you use. Discover and manage skills, agents, MCP servers, and rules across Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, GitHub Copilot, and Continue.dev. Browse past sessions across all agents in one place. Track live subscription usage and rate-limit windows so you never get blocked mid-flow.
You use multiple AI coding assistants. Each has its own config format, its own credentials directory, its own way of defining skills and agents. You wrote a great prompt for Claude — now you want it in Codex and Gemini too. You added an MCP server somewhere — where else is it configured? Yesterday's session disappeared into one of seven different log formats. You're about to hit Claude's 5-hour window and Copilot's monthly chat cap and you have no idea.
Agent Ecosystem Map answers all of that. It auto-discovers everything, shows you the full picture, lets you connect assets between tools, browse every past session, and watch live usage across all your subscriptions.
| macOS App | CLI / Web UI | Raycast Extension | |
|---|---|---|---|
| Install | Download DMG | npx agent-ecosystem-map |
Install from Raycast Store |
| Best for | Local daily use | VPS, remote, headless | Keyboard-first search and quick actions |
| UI | Native SwiftUI | React SPA in browser | Raycast command palette |
| Agent | Auto-launches on start | Manual aem command |
Reads local Agent Ecosystem Map data/config |
| Tool | What AEM scans |
|---|---|
| Claude Code | ~/.claude/commands/, ~/.claude/agents/, ~/.claude/rules/, ~/.claude/projects/, .mcp.json, CLAUDE.md |
| Codex CLI | ~/.codex/skills/, ~/.codex/agents/, ~/.codex/sessions/, auth.json, AGENTS.md |
| Gemini CLI | ~/.gemini/skills/, oauth_creds.json, GEMINI.md |
| Cursor | ~/.cursor/rules/, ~/.cursor/projects/*/agent-transcripts/, state.vscdb |
| Windsurf | ~/.windsurf/rules/, .windsurfrules |
| GitHub Copilot | gh keychain, .github/copilot-instructions.md |
| Continue.dev | ~/.continue/config.json |
| Plus 11 more for usage tracking | Amp, JetBrains AI, Grok, Kimi, Perplexity, OpenCode, Antigravity, Z.ai, MiniMax, Factory, Synthetic |
- Auto-discovery across 7 AI coding tools, local and remote
- Provider copies — each tool owns an independent copy, while matching assets are still grouped with multi-provider badges
- Command Center dashboard — jump between the map, sessions, usage, projects, running agents, servers, bundles, and policies
- Library Workbench — Chops-style collections, registry import, diagnostics, and install-to-provider flow
- Filterable sidebar — by type, provider, category. Hide what you don't need, settings persist
- Smart search — find any asset by name, description, or tags (fully client-side, instant)
- Auto-categorization — Development, DevOps, Security, Content, SEO, UX, and more
- All agents in one place — Claude, Codex, Cursor, OpenCode, Qwen, Pi, Kiro, Kilo, and Copilot logs unified
- Replay any session — timeline/replay mode with token usage per turn
- Live process tracking — PID, cwd, uptime, CPU, and RAM where available
- Cost analytics — per-session and aggregate spend, broken down by model
- Activity heatmap — GitHub-style contributions across 17 weeks + current/max streak
- Search across messages — indexed deep text search through all your conversations
- Advanced filters — date range, model, cost, and token thresholds
- Star, label, export — pin important sessions, tag them, export markdown handoffs
- 18 providers — live rate-limit windows, weekly caps, credit balances
- Provider-native APIs — calls Anthropic, OpenAI, Cursor, GitHub directly using local OAuth tokens
- Brand-coloured cards with progress bars that turn amber at 80% and red at 95%
- Aggregate hero stats — average utilisation, peak limit, near-cap count
- Provider controls — enable/disable providers, reorder cards, configure refresh interval
- OpenUsage-compatible API —
/v1/usage,/v1/usage/:provider,/v1/providers - Plugin runtime — load trusted local OpenUsage-style
plugin.json+plugin.jsproviders - Stale fallback cache — keeps the last successful snapshot when a live probe fails
- Proxy metadata — persisted proxy settings exposed to usage plugins
- Menu-bar summary + shortcut — compact macOS usage summary and
⌘⇧UUsage panel shortcut
- One-click connect — copy a Claude skill into Codex, Gemini, and other providers instantly
- Copy-based by default — connecting creates an independent provider-owned copy, not a symlink
- Scoped disconnect/delete — removing a copy from one provider does not delete it from the others
- Legacy symlink conversion — reconnecting an older symlinked asset converts it to an owned copy
- Copy protection — provider copies are protected from accidental cross-provider deletes
- Remote sidecar flow — preview or apply an optional
aem --headlessinstall on a VPS - SSH tunnel manager — build/start local tunnels to remote sidecars and MCP endpoints
- Remote session scan — Claude, Codex, Cursor, OpenCode, Qwen, and Kiro logs over SSH
- Remote process monitor — live agent/runtime processes, including OpenClaw, Hermes, and Germias profiles
- Remote usage probe — reads sidecar OpenUsage snapshots when available and falls back to credential hints
- Remote MCP runtime view — checks configured remote MCP commands/HTTP endpoints and shows tool-view readiness
- Safe remote sync — dry-run/apply/rollback copy sync is exposed as a first-class server capability
- Topology overview — local machine, VPS, projects, providers, assets, and running agents in one graph
- Create new skills, agents, MCP servers, and rules from the UI
- Collections — group skills, agents, MCP servers, and rules without moving or changing source files
- Registry import — scan a local folder or GitHub repo for installable skills, agents, rules, and MCP servers
- Provider-targeted install — copy an imported asset into a specific provider so every tool owns its copy
- Editor upgrade — frontmatter fields, markdown preview/syntax view, and diff-before-save
- Diagnostic export — redacted JSON bundle for debugging support without leaking SSH keys or provider paths
- Import from file — drag in an existing
.md,.json, or.yaml— type auto-detected - Edit inline — modify file content with save/revert directly in the app
- Delete with downstream impact warnings (shows what will break)
- Full audit trail — every create, connect, disconnect, delete is logged
- One-click undo — revert the last change
- Rollback any entry — restore a specific historical state
- File watcher — config changes detected instantly
- WebSocket sync — UI updates live across web and macOS
- SQLite persistence — state survives restarts
- Dark / Light / System themes, cycle with one click in the header
Download from GitHub Releases, open the DMG, drag to Applications. Requires Node.js (brew install node).
Install from the Raycast Store to search skills, agents, MCP servers, and rules directly from Raycast.
npx agent-ecosystem-mapOpens the web UI at http://localhost:3000.
npm install -g agent-ecosystem-map
aem # Start web UI# Web UI (default)
aem # Start on port 3000, open browser
aem -p 8080 # Custom port
aem --headless # API only, bound to localhost
aem --host 0.0.0.0 # Network bind; bearer auth is required
aem --no-open # Don't auto-open browser
# Static HTML (one-shot)
aem scan # Print summary to stdout
aem scan -o map.html # Generate self-contained HTML file
# Sessions CLI
aem sessions search auth
aem sessions show <id>
aem sessions export <id>
aem sessions handoff <id>
aem sessions convert <id> codexaem is the short alias. The full name agent-ecosystem-map also works.
# On your VPS:
aem --headless -p 3000
# Access from local machine:
ssh -L 3000:localhost:3000 user@your-vps
open http://localhost:3000By default the HTTP API binds to 127.0.0.1 and rejects cross-origin
browser requests. Prefer the SSH tunnel flow above for remote access. If you
explicitly bind to a public interface with --host 0.0.0.0, the CLI requires
Bearer-token authentication and prints the generated token at startup.
In the Servers view, use Inspect Remote to scan VPS sessions, live processes, usage, MCP runtimes, sidecar status, tunnel commands, and remote sync safety.
| Shortcut | Action |
|---|---|
Cmd+F |
Focus search |
Cmd+N |
Create new asset |
Cmd+R |
Rescan ecosystem |
Cmd+Z |
Undo last change |
Cmd+1…9, Cmd+0 |
Switch view (Command Center, Library, Map, Sessions, Usage, …) |
Escape |
Close panel / clear search |
agent-ecosystem-map/
├── bin/cli.js # CLI entry (aem / agent-ecosystem-map command)
├── agent/
│ ├── server.js # HTTP + WebSocket server
│ ├── router.js # REST API (60+ endpoints)
│ ├── scanner/ # Multi-tool asset discovery (provider-copy grouping, folder-as-asset)
│ ├── connector/ # Connect/disconnect via provider-owned copies
│ ├── sessions/ # Session browser (claude, codex, cursor, opencode parsers)
│ │ ├── parsers/ # Per-agent .jsonl parsers
│ │ ├── pricing.js # Per-model cost calculation
│ │ ├── live.js # Live process detection
│ │ └── analytics.js # Heatmap, streaks, daily totals
│ ├── usage/ # Live subscription usage tracking
│ │ ├── host.js # Plugin host: keychain, sqlite, http, fs, env, log
│ │ └── providers/ # 18 providers (claude, codex, cursor, copilot, …)
│ ├── library.js # Collections/registry import helpers
│ ├── diagnostics.js # Redacted diagnostic export
│ ├── remote-command-center.js # VPS sidecar, tunnel, sessions, usage, process, MCP probes
│ ├── sync.js # Cross-provider sync engine
│ ├── health.js # Asset health checks
│ ├── drift.js # Drift detection across copies
│ ├── snapshots.js # Rollback snapshots
│ └── store/ # SQLite persistent state
├── desktop/ # macOS SwiftUI app (Xcode)
├── ui/ # React + TypeScript + Tailwind
└── template/ # Static HTML fallback
All endpoints under /api/. Highlights:
| Endpoint | Method | Description |
|---|---|---|
/api/assets |
GET | List assets (filters: type, provider, category, q) |
/api/assets/:id/diff |
POST | Diff-before-save preview for asset edits |
/api/connect / /api/disconnect |
POST | Connect / disconnect asset to a tool |
/api/rescan |
POST | Full ecosystem rescan |
/api/collections |
GET/POST | Non-destructive asset collections |
/api/collections/:id/items |
POST | Add asset to collection without changing source files |
/api/registry/scan |
POST | Scan a local folder registry |
/api/registry/github/scan |
POST | Clone/fetch and scan a GitHub registry |
/api/registry/install |
POST | Provider-targeted copy install from registry candidate |
/api/diagnostics/export |
GET | Redacted support/debug export |
/api/sessions |
GET | All sessions across agents + heatmap + totals |
/api/sessions/detail?path=…&agent=… |
GET | Full session with messages |
/api/sessions/search?q=… |
GET | Deep full-text search across session messages |
/api/sessions/timeline?path=…&agent=… |
GET | Replay timeline + launch/resume command metadata |
/api/sessions/live |
GET | Currently-running agent processes |
/api/sessions/star / /api/sessions/label |
POST | Pin and tag sessions |
/api/usage |
GET | Probe all 18 providers in parallel |
/api/usage/:provider |
GET | Single provider probe |
/api/usage/settings |
GET/PUT | Provider enabled/order settings and proxy (plugin dirs are file/env only) |
/api/usage-providers |
GET | Usage provider manifests |
/api/servers/:id |
PUT | Update remote server SSH/display settings |
/api/servers/:id/sidecar |
GET/POST | Remote AEM sidecar status, install preview/apply |
/api/servers/:id/sessions |
GET | Scan remote agent sessions over SSH |
/api/servers/:id/processes |
GET | Remote agent/runtime process monitor |
/api/servers/:id/usage |
GET | Remote sidecar usage probe with credential hints fallback |
/api/servers/:id/mcp-runtimes |
GET | Remote MCP runtime/config health and tool-view seed |
/api/servers/:id/sync/status |
GET | Remote copy-sync preview/apply/rollback capabilities |
/api/servers/:id/tunnels/preview |
POST | Preview SSH tunnel command |
/api/servers/:id/tunnels |
POST | Start SSH tunnel for sidecar/tools |
/api/tunnels |
GET | List SSH tunnels managed by this AEM process |
/v1/usage |
GET | OpenUsage-compatible cached snapshots |
/v1/usage/:provider |
GET | OpenUsage-compatible single cached snapshot |
/v1/providers |
GET | OpenUsage-compatible provider list |
/api/history |
GET | Audit trail |
/api/undo |
POST | Undo last change |
WebSocket at /ws pushes assets:updated events on any file change.
This is a beta release (v0.2.0). Core functionality is stable, but expect rough edges. Advanced views (Projects, Running Agents, Servers, Bundles, Policies) are now available from the Command Center and main navigation while they continue to mature. If you encounter bugs, please open an issue.
Contributions welcome:
- Bug reports — open an issue with repro steps
- Feature requests — describe your use case, we'll discuss
- Pull requests — fork, branch, open a PR
- New provider support — want Aider, Roo Code, or another tool? PRs welcome
- Documentation — improvements to README, API docs, or inline comments
git clone https://github.com/spyrae/agent-ecosystem-map.git
cd agent-ecosystem-map
npm install
npm run dev # Start agent without opening browser
npm run dev:ui # Start Vite dev server for UI hot-reloadmacOS app: open desktop/AEM.xcodeproj in Xcode, build & run.
- macOS App: macOS 14+, Node.js >= 18
- CLI: Node.js >= 18, any OS
- At least one AI coding tool configured
BSL 2.0 — free to use, modify, and self-host. Cannot be sold as a competing product. Converts to MIT on 2030-04-06.
Built by @spyrae. If you find this useful, star the repo.

