Metadata-Version: 2.4
Name: capsule-trace
Version: 0.1.1
Summary: Deterministic replay & time-travel debugger for AI agents
Author-email: Capsule <sdk@capsule.dev>
Project-URL: Homepage, https://capsule.dev
Project-URL: Documentation, https://docs.capsule.dev
Project-URL: Repository, https://github.com/capsule-dev/capsule
Project-URL: Issues, https://github.com/capsule-dev/capsule/issues
Keywords: ai,agents,debugging,replay,llm,observability
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Debuggers
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: sqlalchemy<3.0.0,>=2.0.0
Requires-Dist: pydantic<3.0.0,>=2.0.0
Requires-Dist: click<9.0.0,>=8.1.0
Requires-Dist: httpx<1.0.0,>=0.27.0
Requires-Dist: zstandard>=0.22.0
Requires-Dist: rich>=13.0.0
Requires-Dist: ulid-py>=1.1.0
Provides-Extra: openai
Requires-Dist: openai>=1.30.0; extra == "openai"
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.28.0; extra == "anthropic"
Provides-Extra: google
Requires-Dist: google-generativeai>=0.7.0; extra == "google"
Provides-Extra: langchain
Requires-Dist: langchain>=0.2.0; extra == "langchain"
Requires-Dist: langchain-core>=0.2.0; extra == "langchain"
Provides-Extra: langgraph
Requires-Dist: langgraph>=0.1.0; extra == "langgraph"
Provides-Extra: all
Requires-Dist: openai>=1.30.0; extra == "all"
Requires-Dist: anthropic>=0.28.0; extra == "all"
Requires-Dist: google-generativeai>=0.7.0; extra == "all"
Requires-Dist: langchain>=0.2.0; extra == "all"
Requires-Dist: langchain-core>=0.2.0; extra == "all"
Requires-Dist: langgraph>=0.1.0; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
Requires-Dist: hypothesis>=6.100.0; extra == "dev"
Requires-Dist: mypy>=1.10.0; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"

# capsule-trace

**Deterministic replay & time-travel debugger for AI agents.**

```bash
pip install capsule-trace
```

---

## Quick Start

```python
import capsule_trace

@capsule.trace(agent_name="my-agent")
def run_agent(query: str) -> str:
    from openai import OpenAI
    client = OpenAI()
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": query}],
    )
    return response.choices[0].message.content
```

That's it. Every LLM call is now captured automatically.

## CLI

```bash
# List captured sessions
capsule-trace list

# Inspect a session step by step
capsule-trace show ses_01HXYZ123

# Export to shareable file
capsule-trace export ses_01HXYZ123 --output bug.capsule

# Replay deterministically
capsule-trace replay ses_01HXYZ123

# Branch from step 7 with different temperature
capsule-trace branch ses_01HXYZ123 --from-step 7 --modify temperature=0.0

# Diff two sessions
capsule-trace diff ses_01HXYZ ses_01HABC
```

## Supported Providers

| Provider | Status |
|----------|--------|
| OpenAI (sync + async) | ✅ Sprint 2 |
| Anthropic (sync + async) | ✅ Sprint 2 |
| Google Generative AI | ✅ Sprint 2 |
| LangChain | Sprint 4 |
| LangGraph | Sprint 4 |

## Disable at Runtime

```bash
CAPSULE_DISABLE=1 python my_agent.py
```

Zero overhead when disabled — checked once at function entry.

## License

Apache 2.0 — see [LICENSE](LICENSE).
