Skip to content

agentplay · open source

Session replay for coding agents.

Turn the agent transcripts already on your machine into interactive maps and timelines. Inspect what happened without digging through logs.

$ uvx agentplay
  • Python 3.11+
  • No account or API key
  • Serves on 127.0.0.1
  • Claude Code
  • Codex
  • Cursor
  • GitHub Copilot
  • OpenCode
  • Kiro
Demo: Add rate limiting to the orders APIclaude-code✓ PR openedsynthetic demo · 3 tasks · 26 calls · $1.9251
acme/apiREADME.md, jump to next touchREADME.mdindex.ts, jump to next touchindex.tsauth.ts, jump to next touchauth.tsrateLimit.ts, jump to next touchrateLimit.ts +server.ts, jump to next touchserver.tsenv.ts, jump to next touchenv.tsorders.ts, jump to next touchorders.tspackage.json, jump to next touchpackage.jsonrateLimit.test.ts, jump to next touchrateLimit.test.ts +rate-limits.md, jump to next touchrate-limits.md +shellnpm test, jump to next touchnpm testtsc, jump to next touchtscgit, jump to next touchgitMCPsearch_docs, jump to next touchsearch_docsmodelsopus-4-5, jump to next touchopus-4-5haiku-4-5, jump to next touchhaiku-4-5sonnet-4-5, jump to next touchsonnet-4-5outputscommit 9d41c07, jump to next touchcommit 9d41c07PR #142, jump to next touchPR #142subagentsExplore, jump to next touchExploreerrorsnon-zero exit, jump to next touchnon-zero exitoverloaded, jump to next touchoverloaded
Step #0 · 0m00s of 4m10sUser turnPrompt · 212 chars
Agent
Main agent
Task
1 · Explore the request pipeline
Context
22,000 tokens
files read
0
edits
0
errors
0
outputs
0
1/56 · 0m00s / 4m10s
TasksEventsTokensContext1 · Explore the request pipeline2 · Add a token-bucket rate limiter3 · Commit and open a PRcompaction

The map

See everything involved in an agent session.

Explore repositories, commands, MCP tools, models, subagents, and outputs in one interactive map.

Step #0 · 0m00s of 4m10sUser turnPrompt · 212 chars
acme/apiREADME.md, jump to next touchREADME.mdindex.ts, jump to next touchindex.tsauth.ts, jump to next touchauth.tsrateLimit.ts, jump to next touchrateLimit.ts +server.ts, jump to next touchserver.tsenv.ts, jump to next touchenv.tsorders.ts, jump to next touchorders.tspackage.json, jump to next touchpackage.jsonrateLimit.test.ts, jump to next touchrateLimit.test.ts +rate-limits.md, jump to next touchrate-limits.md +shellnpm test, jump to next touchnpm testtsc, jump to next touchtscgit, jump to next touchgitMCPsearch_docs, jump to next touchsearch_docsmodelsopus-4-5, jump to next touchopus-4-5haiku-4-5, jump to next touchhaiku-4-5sonnet-4-5, jump to next touchsonnet-4-5outputscommit 9d41c07, jump to next touchcommit 9d41c07PR #142, jump to next touchPR #142subagentsExplore, jump to next touchExploreerrorsnon-zero exit, jump to next touchnon-zero exitoverloaded, jump to next touchoverloaded
  • Read
  • Edited
  • Searched
  • Shell
  • MCP
  • Model
  • Subagent
  • Error
  • Current step

Signals

Find where your agent got stuck, changed course, or shipped.

Jump straight to retries, delays, errors, context compactions, model switches, and PRs marked on the replay timeline.

Retry

See when your agent repeats a failed command.

Delay

Find slow tool calls, model responses, and periods of inactivity.

Compaction

See when context was compressed, with token counts before and after.

Pull request

Jump to where a PR was opened during the session.

Model switch

See when your agent switched models during execution.

Error class

Inspect failures by type, from shell commands to MCP and model errors.

Install

One command on the sessions you already have.

Python 3.11 or newer. No runtime dependencies, no account, no API key. Later runs rebuild only sessions whose transcript changed.

Run itpick one

uv$ uvx agentplay
pipx$ pipx run agentplay
pip$ pip install agentplay

Commands

  • agentplayBuild new or changed sessions, start the local server and open the replay.
  • agentplay buildBuild maps only and print the summary.
  • agentplay listList built sessions, newest first.
  • agentplay exportWrite one session map to .json or .json.gz.
  • agentplay importAdd map files from a teammate or another machine.
  • agentplay agentsShow which supported agents were found.
[ open source ]

A local-first, open-source session explorer.

Apache 2.0 licensed, with support for multiple coding agents and no hosted infrastructure required.

Apache-2.0
licence
0
runtime dependencies
< 1 MB
wheel, viewer included
800+
automated tests
3 × 3
CI: macOS, Linux, Windows · Py 3.11–3.13
7
agent sources read

Details before you run it.

  • No. Maps are built on your machine and served on 127.0.0.1. There is no telemetry, update check or upload, and the replay page loads no remote fonts or scripts.

  • No. agentplay reads the transcripts your agents already write to disk. It never calls an agent vendor’s API.

  • Cursor does not write billed usage to disk, and Kiro bills in credits. Every event, file and error from those sessions is still replayed.

  • From public list prices, with cache reads at 0.1× and cache writes at 1.25× the input rate. Plan, enterprise and batch pricing are not modelled.

  • agentplay export writes one map to .json or .json.gz and reports which repo names and how many paths it holds. The recipient runs agentplay import or drops the file onto the replay page.

  • A map stops at its first 20,000 events and is flagged truncated. Transcripts over 512 MB are skipped.

  • macOS and Linux. Windows is supported by the parsers and less tested. On WSL, point AGENTPLAY_CLAUDE_HOMES at both homes.

  • Entelligence maintains agentplay under the Apache License 2.0. The hosted team edition is separate; the open-source tool does not depend on it.

Your coding-agent sessions are ready to explore.

Turn transcripts already stored on your machine into interactive replays with uvx agentplay.

$ uvx agentplay
  • Apache-2.0
  • Python 3.11+
  • No account or API key