{"id":48678061,"url":"https://github.com/agentoptics/rewind","last_synced_at":"2026-05-25T11:02:14.974Z","repository":{"id":350143890,"uuid":"1205048824","full_name":"agentoptics/rewind","owner":"agentoptics","description":"Fix broken AI agents without re-running them. Fork at any step, replay from failure, prove the fix works. Works alongside Langfuse/LangSmith or standalone.","archived":false,"fork":false,"pushed_at":"2026-05-18T06:06:10.000Z","size":16790,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-18T08:18:21.672Z","etag":null,"topics":["ai-agents","anthropic","cli","debugger","developer-tools","llm","observability","open-","openai","opentelemetry","python","rust"],"latest_commit_sha":null,"homepage":"https://rewind-lac.vercel.app","language":"Rust","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/agentoptics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security-audit.md","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-08T15:28:39.000Z","updated_at":"2026-05-18T06:06:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/agentoptics/rewind","commit_stats":null,"previous_names":["risjai/rewind","agentoptics/rewind"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/agentoptics/rewind","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentoptics%2Frewind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentoptics%2Frewind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentoptics%2Frewind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentoptics%2Frewind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agentoptics","download_url":"https://codeload.github.com/agentoptics/rewind/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentoptics%2Frewind/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33471530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T06:32:55.349Z","status":"ssl_error","status_checked_at":"2026-05-25T06:32:35.322Z","response_time":57,"last_error":"SSL_read: 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":["ai-agents","anthropic","cli","debugger","developer-tools","llm","observability","open-","openai","opentelemetry","python","rust"],"created_at":"2026-04-10T20:02:14.342Z","updated_at":"2026-05-25T11:02:14.957Z","avatar_url":"https://github.com/agentoptics.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cbr/\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/agentoptics/rewind/master/assets/banner-dark.svg\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/agentoptics/rewind/master/assets/banner-light.svg\"\u003e\n    \u003cimg alt=\"Rewind\" src=\"https://raw.githubusercontent.com/agentoptics/rewind/master/assets/banner-light.svg\" width=\"500\"\u003e\n  \u003c/picture\u003e\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n  \u003cstrong\u003eOther tools show what happened. Rewind lets you fix it - without re-running.\u003c/strong\u003e\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"#the-problem\"\u003eWhy\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"#see-it-in-action\"\u003eDemo\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"#install\"\u003eInstall\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"#quickstart\"\u003eQuickstart\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"#feature-guides\"\u003eGuides\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n\n  [![CI](https://github.com/agentoptics/rewind/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/agentoptics/rewind/actions)\n  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n  [![GitHub Release](https://img.shields.io/github/v/release/agentoptics/rewind?label=release)](https://github.com/agentoptics/rewind/releases)\n  [![PyPI](https://img.shields.io/pypi/v/rewind-agent?style=flat)](https://pypi.org/project/rewind-agent/)\n  \u003cbr/\u003e\n  \u003csub\u003eSingle binary \u0026middot; zero dependencies \u0026middot; MIT licensed\u003c/sub\u003e\n\u003c/p\u003e\n\n---\n\n\u003e **Rewind is an open-source time-travel debugger for LLM-powered AI agents.** Every observability tool - Langfuse, LangSmith, Helicone - shows you what happened. None of them let you **change the past and observe a different future**. Rewind does.\n\n## The Problem\n\nAI agents are shipping to production - tool-calling chains with 10, 30, 50 LLM steps. When they fail, debugging is brutal:\n\n- **You can't see what the model saw.** What was in the context window at step 41? What got truncated?\n- **You can't reproduce it.** Re-run the agent and you get a different result. The LLM is non-deterministic.\n- **You can't isolate the failure.** Was it step 5 or step 2? You have to re-run all 50 steps ($$$, minutes) just to test a theory.\n- **You can't prove your fix works.** You changed the prompt - did it actually improve things, or just shift the problem?\n\nAgent broke at step 30? Fix step 30 - not steps 1 through 29 again. Each re-run costs tokens, time, and a different answer.\n\n## The Solution\n\n**Rewind is Chrome DevTools for AI agents - fork at any failure, replay with the fix, prove it works.**\n\n| Capability | What it means |\n|:---|:---|\n| **`rewind fix`** | Agent broke? `rewind fix latest` — an LLM diagnoses the failure, suggests a fix (model swap, system prompt, temperature, retry), and optionally forks + replays with the patch to verify it works. One command from \"broken\" to \"proven fix.\" Diagnosis works on all sessions; `--apply` requires proxy-recorded sessions. **No other tool does this.** |\n| **Fork \u0026 Replay** | Branch the execution timeline at any step. Fix your code, run `rewind replay --from 4`. Steps 1-4 served from cache (0 tokens, 0ms). Only the fixed step re-runs live. |\n| **Prove the Fix** | Score original vs. forked timelines with LLM-as-judge: `rewind replay → rewind eval score → proof the fix works`. Correctness, coherence, safety, relevance  scored automatically. |\n| **Import \u0026 Debug** | Import production traces from Langfuse, Datadog, or any OTel backend (`rewind import otel`). Fork at the failure, replay locally, export the fix back. Debug production failures without re-running in production. |\n| **Record** | A transparent proxy captures every LLM call. Streaming works in real-time - zero added latency. Or one-line Python SDK: `rewind_agent.init()`. |\n| **Inspect** | See the *exact* context window at each step. Every message, system prompt, and tool response the model saw. |\n| **Diff** | Compare original and forked timelines. See exactly where they diverge and why. |\n| **Langfuse Import** | See a broken trace in Langfuse? `rewind import from-langfuse --trace \u003cid\u003e` - import it, fork at the failure, replay with the fix. One command from \"broken production trace\" to \"forked, fixed, verified.\" |\n| **Replay Savings** | Every replay shows concrete ROI: tokens saved, estimated cost saved, time saved. CLI, Python SDK, and Web API. Know exactly how much each debug cycle is worth. |\n| **Session Sharing** | `rewind share latest` - generate a self-contained HTML file. Open in any browser, share via Slack or email. No install, no login, works offline. Like a Jupyter notebook export for debug sessions. |\n| **Instant Replay** | Identical requests are served from cache at **0 tokens, 0ms latency**. Run the same agent 10 times - only the first run hits the LLM. |\n| **Evaluation** | Create datasets, run your agent against them, score with 7 evaluator types (exact match, contains, regex, JSON schema, tool use, custom, **LLM-as-judge**). CI-ready with `--fail-below` thresholds. |\n| **Regression Testing** | Turn any session into a baseline. After code changes, check step types, models, tool calls, token counts. 3-line GitHub Action. |\n| **Multi-Agent Tracing** | Span tree visualization groups LLM calls, tool invocations, and handoffs under their parent agent. Thread view for multi-turn conversations. |\n| **Snapshots** | Capture your entire workspace. Restore in one command if your agent breaks something. No git dependency. |\n\n**The only tool where debugging, tracing, and evals share the same data model.** Fork a session, replay it, diff it, score it - all on the same timeline.\n\n## See It in Action\n\n### Debug your agent — without re-running it\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/agentoptics/rewind/master/assets/demo-agent-builder.gif\" alt=\"Rewind CLI demo - trace, fork, diff, assert, share\" width=\"800\"\u003e\n\u003c/p\u003e\n\n```bash\n# try it now - no API keys needed\nrewind demo \u0026\u0026 rewind inspect latest\n```\n\n\u003e If Rewind is useful to you, a ⭐ helps others find it.\n\n### See what the model saw - find the bug in 5 seconds\n\n```\n⏪ Rewind - Session Trace\n\n  Session: customer-service   Steps: 12   Tokens: 3,450\n  Agents: supervisor, researcher, writer\n\n  ▼ ✓ 🤖 supervisor (agent)                          1.2s\n    ├ ✓ 🧠  gpt-4o  \"Route to researcher\"           320ms  156↓ 28↑\n    ▼ ✓ 🤖 researcher (agent)                        2.1s\n    │ ├ ✓ 🧠  gpt-4o  \"Search for information\"      890ms  312↓ 35↑\n    │ ├ ✓ 🔧  web_search(\"Tokyo population\")          45ms\n    │ └ ✓ 🧠  gpt-4o  \"Synthesize results\"          650ms  280↓ 95↑\n    ├ ✓ 🔀 handoff: researcher → writer\n    ▼ ✗ 🤖 writer (agent)                            1.8s\n    │ ├ ✓ 🧠  gpt-4o  \"Draft article\"              1200ms  450↓ 180↑\n    │ └ ✗ 🧠  gpt-4o  \"Polish final draft\"          600ms  320↓ 120↑\n    │     ERROR: Hallucination - used stale data\n    └ ✓ 🧠  gpt-4o  \"Final review\"                   400ms  200↓ 45↑\n```\n\nThe writer agent hallucinated at step 8 because the researcher used stale data. Without the span tree, you'd see a flat list of 12 steps with no agent boundaries.\n\n### Fix and replay - only re-run what changed\n\n```bash\n# fix your code, then replay from the fork point:\nrewind replay latest --from 4\n# Steps 1-3: cached instantly (0ms, 0 tokens)\n# Steps 4-5: re-run live with corrected context\nrewind diff latest main fixed\n```\n\n```\n⏪ Rewind - Timeline Diff (main vs fixed, diverge at step 4)\n\n  ═ Step  1  identical\n  ═ Step  2  identical\n  ═ Step  3  identical\n  ≠ Step  4  [stale data]  →  [fresh data]\n  ≠ Step  5  [error] 700tok   →  [success] 715tok\n```\n\n### AI diagnosis - let the debugger debug\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/agentoptics/rewind/master/assets/fix-demo.gif\" alt=\"rewind fix demo - diagnose, fork, replay\" width=\"800\"\u003e\n\u003c/p\u003e\n\n```bash\nrewind fix latest\n```\n\n```\n⏪ Diagnosing session \"research-agent-demo\" (5 steps)...\n\n  Failure: Step 5 — llmcall (gpt-4o) — error\n  Error: HALLUCINATION: Agent used stale 2019 projection as current fact\n  Root cause: The agent relied on outdated data due to a search API rate\n              limit, leading to incorrect population figures.\n\n  Suggested fix: retry_step\n  Confidence:    high\n\n  To apply this fix automatically:\n    rewind fix latest --apply\n```\n\nOne command: diagnose the failure, suggest a fix, and optionally verify it. `--apply --command` automates the entire loop:\n\n```bash\nrewind fix latest --apply --yes --command \"python agent.py\"\n# Fork at step 4, replay with fix...\n# Steps 1-4: cached (0 tokens, 0ms)\n# ✓ Agent finished — 531 tokens saved, 1.2s saved\n```\n\nSkip the AI entirely and test your own theory:\n\n```bash\nrewind fix latest --hypothesis \"swap_model:gpt-4o\" --apply --yes --command \"python agent.py\"\n```\n\n### Web dashboard — see everything your AI does\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/agentoptics/rewind/master/assets/demo-web-ui.gif\" alt=\"Rewind web dashboard - activity timeline, context window, diff view\" width=\"800\"\u003e\n\u003c/p\u003e\n\n```bash\n# Install hooks for Claude Code / Cursor, then open the dashboard\nrewind hooks install\nrewind web\n```\n\nActivity timeline with swim lanes, context window viewer, visual diff, regression baselines — all in the browser. Plus in-browser **fork/replay/diff/delete**: branch any timeline from a step, copy a `rewind replay --fork-id …` command, diff a fork against its parent in one click, or hard-delete a fork with invariant checks. Works with Claude Code sessions, Cursor, or any agent recorded via the SDK. See [docs/web-ui.md](docs/web-ui.md#fork--replay).\n\n### Evaluate before shipping - catch regressions in CI\n\n```python\nresult = rewind_agent.evaluate(\n    dataset=\"booking-tests\",\n    target_fn=my_agent,\n    evaluators=[\n        exact_match,\n        rewind_agent.llm_judge_evaluator(criteria=\"correctness\"),\n    ],\n    fail_below=0.9,   # CI fails if score drops below 90%\n)\n# Score: 95.0%, Pass rate: 100% - ship it\n```\n\n## Install\n\n**pip** (recommended - installs Python SDK + CLI):\n\n```bash\npip install rewind-agent\n```\n\n**Binary only** (macOS / Linux):\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/agentoptics/rewind/master/install.sh | sh\n```\n\n**From source** (requires Rust):\n\n```bash\ncargo install --git https://github.com/agentoptics/rewind rewind-cli\n```\n\n## Quickstart\n\n**Direct mode** - one line, no proxy:\n\n```python\nimport rewind_agent\nimport openai\n\nrewind_agent.init()  # that's it - all LLM calls are now recorded\n\nclient = openai.OpenAI()\nclient.chat.completions.create(model=\"gpt-4o\", messages=[...])\n# rewind show latest → see the trace\n```\n\n**Proxy mode** - works with any language:\n\n```bash\n# Terminal 1: Start the recording proxy\nrewind record --name \"my-agent\" --upstream https://api.openai.com --replay\n\n# Terminal 2: Point your agent at the proxy\nexport OPENAI_BASE_URL=http://127.0.0.1:8443/v1\npython3 my_agent.py   # or node, go, rust - anything\n\n# See what happened (trace view / interactive TUI)\nrewind show latest\nrewind inspect latest\n```\n\n\u003e If the proxy is unreachable, the SDK automatically falls back to direct recording mode. Your agent never stops working. See [proxy-resilience.md](docs/proxy-resilience.md).\n\n**Claude Code** - observe sessions via plugin:\n\n```bash\n# Install the plugin (one-time)\nclaude marketplace add agentoptics --source github --repo agentoptics/rewind-plugin\nclaude plugin install agentoptics/rewind\n\n# Start the dashboard\nrewind web --port 4800\n# Open http://127.0.0.1:4800 - sessions appear automatically\n```\n\nOr manually with the CLI: `rewind hooks install`\n\nSee the [Getting Started guide](docs/getting-started.md) for more options.\n\n## Feature Guides\n\n| Feature | Description | Guide | Example |\n|:---|:---|:---|:---|\n| **Recording** | One line to start (`init()`), or a transparent HTTP proxy for any language. Monkey-patches OpenAI + Anthropic SDKs in-process. Streaming pass-through with zero added latency. | [recording.md](docs/recording.md) | [05_direct_mode.py](examples/05_direct_mode.py) |\n| **`rewind fix`** | Agent broke? `rewind fix latest` diagnoses the failure with an LLM, suggests a fix (model swap, system prompt, temperature, retry), and optionally forks + replays with the patch applied. `--hypothesis` lets you skip diagnosis and test your own theory. | [fix.md](docs/fix.md) | - |\n| **Replay from Failure** | Agent fails at step 5? Fix your code, replay from step 4. Steps 1-4 served from cache (0 tokens, 0ms). Only the fixed step re-runs live. Diff the original vs replayed timeline. | [replay-and-forking.md](docs/replay-and-forking.md) | [06_replay_from_failure.py](examples/06_replay_from_failure.py) |\n| **Regression Testing** | Turn any recorded session into a baseline. After code changes, check step types, models, tool calls, token counts, and error status. 3-line GitHub Action for CI. | [regression-testing.md](docs/regression-testing.md) | [07_regression_testing.py](examples/07_regression_testing.py) |\n| **Evaluation** | Create datasets of test cases, run your agent against them, score with built-in evaluators (exact match, contains, regex, JSON schema, tool use, LLM-as-judge), compare experiments side-by-side. CI-ready with `--fail-below` thresholds. | [evaluation.md](docs/evaluation.md) | [08_evaluation.py](examples/08_evaluation.py) |\n| **LLM-as-Judge** | Score agent outputs with an LLM on correctness, coherence, safety, relevance, and task completion. Score timelines, compare original vs. forks, prove fixes work. | [evaluation.md](docs/evaluation.md) | [13_llm_judge.py](examples/13_llm_judge.py), [14_fork_and_score.py](examples/14_fork_and_score.py) |\n| **Custom Evaluators** | Define domain-specific scoring with `@evaluator()` - check keyword coverage, format compliance, or any custom logic. Plug into the same experiment/comparison pipeline. | [evaluation.md](docs/evaluation.md) | [12_custom_evaluator.py](examples/12_custom_evaluator.py) |\n| **Snapshots** | Checkpoint your entire workspace before an agent runs. If it breaks something, restore in one command. Compressed tar+gz in the blob store - no git required. | [snapshots.md](docs/snapshots.md) | [11_snapshots.sh](examples/11_snapshots.sh) |\n| **Web Dashboard** | Browser-based session explorer with activity timeline (swim-lane visualization), step list, context window viewer, visual timeline diff, multi-metric axis (duration/tokens/cost), and live recording via WebSocket. Everything embedded in the single binary. | [web-ui.md](docs/web-ui.md) | - |\n| **Multi-Agent Tracing** | Hierarchical span tree and activity timeline for multi-agent workflows. Each agent gets its own swim lane with duration bars. Auto-captures agent boundaries, tool calls, and handoffs from OpenAI Agents SDK. Manual `@span()` decorator for custom grouping. Thread view for multi-turn conversations. | [multi-agent-tracing.md](docs/multi-agent-tracing.md) | - |\n| **Framework Integrations** | Native support for OpenAI Agents SDK and Pydantic AI (auto-detected on `init()`). Wrapper support for LangGraph and CrewAI. Any other framework works via the HTTP proxy. | [framework-integrations.md](docs/framework-integrations.md) | [09_pydantic_ai.py](examples/09_pydantic_ai.py), [10_openai_agents_sdk.py](examples/10_openai_agents_sdk.py) |\n| **Bring your own framework** | One-call `rewind_agent.connector.setup()` for any agent on httpx/requests/aiohttp — wraps a session and HTTP intercept in a single `with` block. Custom transport (gRPC, in-process)? Use `ExplicitClient` directly. Three-tier guide covers all paths. | [hdk.md](docs/hdk.md) | - |\n| **Claude Code Observation** | Observe Claude Code sessions in real-time via hooks. See every tool call (Read, Edit, Bash, Grep, Agent), user prompts, and session lifecycle. Token usage extracted from transcripts. One-command setup: `rewind hooks install`. | - | - |\n| **MCP Server** | 26 tools for AI assistants (Claude Code, Cursor, Windsurf) to query recordings, view span trees, browse threads, diff timelines, create baselines, run evals - all from your IDE. | [mcp-server.md](docs/mcp-server.md) | - |\n| **OpenTelemetry Export** | Export recorded sessions as OTel traces via OTLP to Langfuse, Datadog, Grafana Tempo, Jaeger, or any OTel-compatible backend. CLI, Python SDK, and Web API. Uses `gen_ai.*` semantic conventions. Privacy-first: message content requires explicit opt-in. | [otel-export.md](docs/otel-export.md) | - |\n| **OpenTelemetry Import** | Import OTLP traces from any source into Rewind for time-travel debugging. Accepts protobuf or JSON via HTTP API (`POST /v1/traces`), CLI (`rewind import otel`), or Python SDK. Imported sessions with content blobs are forkable and replayable - debug production failures locally. | [otel-import.md](docs/otel-import.md) | - |\n| **Langfuse Import** | Fetch a trace from Langfuse by ID, convert to OTLP, import into Rewind. CLI: `rewind import from-langfuse --trace \u003cid\u003e`. Python: `rewind_agent.import_from_langfuse(trace_id=\"...\")`. Supports Cloud and self-hosted. Zero dependencies (`urllib` only). | [langfuse-import.md](docs/langfuse-import.md) | - |\n| **Replay Savings** | After fork-and-execute replays, shows tokens saved, estimated cost (model-aware price table), and time saved. Displayed in `rewind show`, Python SDK (stderr), and Web API (`GET /api/sessions/{id}/savings`). | [replay-and-forking.md](docs/replay-and-forking.md) | - |\n| **Session Sharing** | Export a session as a self-contained HTML file that works offline. Step tree, span tree, timeline diffs, scores - all in one portable file. `rewind share latest` for metadata-only, `--include-content` for full LLM content. | - | - |\n| **SQL Query Explorer** | Run ad-hoc SQL against the Rewind database. Token usage by model, average step duration, sessions with errors, cost estimation - read-only, safe to explore. | [sql-queries.md](docs/sql-queries.md) | - |\n| **CLI Reference** | Full command reference for all 29 CLI commands. | [cli-reference.md](docs/cli-reference.md) | - |\n| **CLI Walkthrough** | Every command run with real output — install, demo, fork, replay, diff, assert, eval, share, query, and more. Copy-paste examples with actual terminal output. | [cli-walkthrough.md](docs/cli-walkthrough.md) | - |\n\n## Compatibility\n\n| Provider | Non-streaming | Streaming (SSE) |\n|:---------|:---:|:---:|\n| OpenAI (GPT-4o, o1, etc.) | ✅ | ✅ |\n| Anthropic (Claude) | ✅ | ✅ |\n| AWS Bedrock | ✅ | - |\n| Any OpenAI-compatible (Ollama, vLLM, LiteLLM) | ✅ | ✅ |\n\n**Agent frameworks:**\n\n| Level | Frameworks | What it means |\n|:------|:-----------|:--------------|\n| **Native** - auto-detected on `init()` | [OpenAI Agents SDK](https://github.com/openai/openai-agents-python), [Pydantic AI](https://ai.pydantic.dev/) | Zero config. Agent boundaries, tool calls, and handoffs captured automatically. |\n| **Wrapper** - manual setup | LangGraph, CrewAI | Thin integration via `wrap_langgraph()` / `wrap_crew()`. CrewAI requires proxy mode. |\n| **Bring your own** | Custom agent / framework / org connector | One-liner `rewind_agent.connector.setup(name=...)` for HTTP-shaped LLM clients; `ExplicitClient` for custom transports. See [hdk.md](docs/hdk.md). |\n| **Works via proxy** | Any framework using OpenAI/Anthropic APIs | Point `OPENAI_BASE_URL` at the proxy. Works with Autogen, smolagents, custom code, any language. |\n\n## Works With Your Observability Stack\n\nAlready using Langfuse, LangSmith, or Datadog? **You don't have to choose.** Rewind works alongside them:\n\n| Direction | How | Use Case |\n|:---|:---|:---|\n| **Import** traces into Rewind | `rewind import otel --file trace.pb`, `POST /v1/traces`, or `rewind import from-langfuse --trace \u003cid\u003e` | Debug a production failure locally - fork, replay, fix |\n| **Export** sessions to your backend | `rewind export otel latest --endpoint \u003clangfuse\u003e` | Send debugging sessions to the team dashboard |\n| **Dual-ship** traces to both | Configure your agent's OTel exporter to send to both endpoints | Record locally + observe in production simultaneously |\n\nUse your existing tool for production dashboards and alerting. Use Rewind when something breaks and you need to **fix it**, not just **see it**.\n\n## Roadmap\n\n| Phase | Features | Status |\n|:------|:---------|:-------|\n| **v0.1** | Record, inspect, fork, diff, TUI, streaming, Instant Replay, Snapshots, Python SDK, LangGraph + CrewAI | ✅ Shipped |\n| **v0.2** | Direct recording, fork-and-execute replay, regression testing, MCP server | ✅ Shipped |\n| **v0.3** | Web UI (flight recorder + live dashboard) | ✅ Shipped |\n| **v0.4** | Evaluation system - datasets, evaluators, experiments, comparison, CI | ✅ Shipped |\n| **v0.5** | Multi-agent tracing (spans, threads, span tree UI) | ✅ Shipped |\n| **v0.6** | Claude Code hooks integration, transcript token parsing, session observation | ✅ Shipped |\n| **v0.7** | OpenTelemetry export (CLI, Python SDK, Web API, Dashboard) | ✅ Shipped |\n| **v0.8** | LLM-as-judge evaluators, timeline scoring, `rewind eval score` command | ✅ Shipped |\n| **v0.9** | OTel trace ingestion - import OTLP traces, debug production failures locally | ✅ Shipped |\n| **v0.10** | Langfuse import, replay cost savings calculator, session sharing (HTML export) | ✅ Shipped |\n| **v0.11** | `rewind fix` - AI-powered diagnosis, proxy request rewriting, hypothesis testing | ✅ Shipped |\n| **v1.0** | Enterprise readiness | Planned |\n\n## Why \"Rewind\"?\n\nAgent debugging today is where web debugging was before Chrome DevTools. You had `alert()` and `console.log()`. Then DevTools gave you breakpoints, time-travel debugging, and network inspection - and everything changed.\n\nRewind brings that same leap to AI agents.\n\n## Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n```bash\ngit clone https://github.com/agentoptics/rewind.git\ncd rewind\ncargo build          # build all crates\ncargo run -- demo    # seed demo data\ncargo run -- inspect latest   # open TUI\n```\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentoptics%2Frewind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagentoptics%2Frewind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentoptics%2Frewind/lists"}