{"id":48464133,"url":"https://github.com/alloevil/agentxray","last_synced_at":"2026-04-09T06:00:38.322Z","repository":{"id":348872977,"uuid":"1200090547","full_name":"alloevil/AgentXRay","owner":"alloevil","description":"Web dashboard for viewing AI agent session logs — supports OpenClaw, Codex, and Claude Code | 多平台 AI Agent 日志查看面板","archived":false,"fork":false,"pushed_at":"2026-04-03T12:39:45.000Z","size":5986,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-03T13:43:45.457Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alloevil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-03T02:59:54.000Z","updated_at":"2026-04-03T11:37:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alloevil/AgentXRay","commit_stats":null,"previous_names":["alloevil/agent-logs-viewer"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/alloevil/AgentXRay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloevil%2FAgentXRay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloevil%2FAgentXRay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloevil%2FAgentXRay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloevil%2FAgentXRay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alloevil","download_url":"https://codeload.github.com/alloevil/AgentXRay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloevil%2FAgentXRay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31499193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-07T04:01:10.389Z","updated_at":"2026-04-07T04:01:29.771Z","avatar_url":"https://github.com/alloevil.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AgentXRay\n\nX-ray vision into your AI agent sessions. Supports **OpenClaw**, **Codex**, and **Claude Code** — all in one interface.\n\nEnglish | [中文](README.zh-CN.md)\n\n![Main View](screenshots/main-view.png)\n\n## Features\n\n- **Multi-platform** — Unified view across OpenClaw, Codex, and Claude Code sessions\n- **Session browser** — Browse agents, filter/search sessions, view message history\n- **Tool call inspection** — Expandable tool calls with arguments and results\n- **Spawn tracking** — Detect and navigate parent/child agent relationships\n- **Message timeline** — Visual graph showing conversation flow with role indicators\n- **Auto-refresh** — Live-updating session list and messages\n- **Settings panel** — Configure platform directories from the UI, persisted in localStorage\n- **Keyboard navigation** — Arrow keys to move between sessions\n\n## Screenshots\n\n### Session Browser\n\nBrowse agents and sessions in the sidebar. Each session card shows message counts by role (👤 User, 🤖 Assistant, 🔧 Tool) and spawn indicators. The main panel displays session metadata, token usage, and top tools at a glance.\n\n![Main View](screenshots/main-view.png)\n\n### Tool Call Inspection\n\nExpand any tool call to see its arguments and result. Collapsed groups show tool type counts for quick scanning.\n\n![Tool Calls](screenshots/tool-calls.png)\n\n### Spawn Tracking\n\nSessions that spawn sub-agents are marked with a 🔗 badge. Click to navigate the parent/child relationship chain.\n\n![Spawn Tracking](screenshots/spawn-tracking.png)\n\n### Multi-Platform Support\n\nSwitch between OpenClaw, Codex, and Claude Code with one click. Each platform's sessions are parsed from their native log format.\n\n![Codex View](screenshots/codex-view.png)\n\n### Settings\n\nConfigure platform directories from the UI. Changes are saved to localStorage — no server restart needed.\n\n![Settings](screenshots/settings-panel.png)\n\n## Quick Start\n\n```bash\ngit clone https://github.com/alloevil/agent-xray.git\ncd agent-xray\nnpm install\nnpm start\n```\n\nOpen http://localhost:3800\n\n## Usage\n\n### Basic Workflow\n\n1. **Select a platform** — Click `OpenClaw`, `Codex`, or `Claude Code` in the top bar\n2. **Pick an agent** — For OpenClaw, choose an agent from the dropdown (e.g. `xiaot`, `mimo`)\n3. **Browse sessions** — Sessions are sorted by date, newest first. Each card shows:\n   - Timestamp and status (`active` / `archived`)\n   - Message counts: 👤 User, 🤖 Assistant, 🔧 Tool calls\n   - 🔗 Spawn badge if the session spawned sub-agents\n4. **View messages** — Click a session to load its full conversation\n5. **Inspect tool calls** — Click any `🔧 tool_name` button to expand arguments/results\n6. **Navigate spawns** — Click the 🔗 link to jump to the spawned child session\n\n### Keyboard Shortcuts\n\n| Key | Action |\n|-----|--------|\n| `↑` / `↓` | Move between sessions |\n| `Enter` | Select highlighted session |\n\n### Filtering \u0026 Search\n\n- **Search box** — Filter sessions by ID or content\n- **Include archived** — Toggle to show/hide archived (`.reset.*` / `.deleted.*`) sessions\n- **Auto-refresh** — Automatically poll for new sessions and messages\n- **Auto-scroll** — Scroll to the latest message when new content arrives\n\n## Configuration\n\n### Default directories\n\n| Platform    | Default path                  |\n|-------------|-------------------------------|\n| OpenClaw    | `~/.openclaw/agents`          |\n| Codex       | `~/.codex/sessions`           |\n| Claude Code | `~/.claude/projects`          |\n\n### Custom directories\n\n**Via UI:** Click the gear icon in the sidebar to set custom paths per platform. Saved to localStorage, no restart needed.\n\n**Via environment variables:**\n\n```bash\nOPENCLAW_DIR=/custom/path/openclaw \\\nCODEX_DIR=/custom/path/codex \\\nCLAUDE_CODE_DIR=/custom/path/claude \\\nnpm start\n```\n\n**Via API:** Pass `?dir=/absolute/path` query parameter to any API endpoint.\n\n## API\n\n| Endpoint | Description |\n|----------|-------------|\n| `GET /api/agents` | List OpenClaw agents |\n| `GET /api/agents/:name/sessions` | List sessions for an agent |\n| `GET /api/agents/:name/sessions/:id` | Get session messages |\n| `GET /api/codex/sessions` | List Codex sessions |\n| `GET /api/codex/sessions/:id` | Get Codex session messages |\n| `GET /api/claude-code/sessions` | List Claude Code sessions |\n| `GET /api/claude-code/sessions/:id` | Get Claude Code session messages |\n| `GET /api/spawn-map` | Build agent spawn relationship map |\n\nAll list/detail endpoints accept an optional `?dir=` parameter to override the default directory.\n\n## Tech Stack\n\n- **Backend:** Node.js + Express\n- **Frontend:** Single-file HTML/CSS/JS (~70KB, no build step, no framework)\n- **Data:** Reads JSONL session files directly from disk\n- **Zero external CDN** — Everything is self-contained, works offline\n\n## Supported Log Formats\n\n| Platform | Format | Path Pattern |\n|----------|--------|--------------|\n| OpenClaw | JSONL | `~/.openclaw/agents/{agent}/sessions/{id}.jsonl` |\n| Codex | JSONL | `~/.codex/sessions/{id}.jsonl` |\n| Claude Code | JSONL | `~/.claude/projects/*/sessions/*/session.jsonl` |\n\nArchived sessions (`.jsonl.reset.*`, `.jsonl.deleted.*`) are also supported when \"Include archived\" is enabled.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falloevil%2Fagentxray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falloevil%2Fagentxray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falloevil%2Fagentxray/lists"}