Metadata-Version: 2.4
Name: roomy-observability
Version: 0.1.2
Summary: Local-first LangChain agent observability: traces, context segments, tokens, CLI & web UI
Project-URL: Homepage, https://github.com/Sarang-Pramode/Roomy
Project-URL: Repository, https://github.com/Sarang-Pramode/Roomy
Project-URL: Documentation, https://github.com/Sarang-Pramode/Roomy#readme
Project-URL: Changelog, https://github.com/Sarang-Pramode/Roomy/blob/main/CHANGELOG.md
Author: Sarang Pramode
License-Expression: MIT
License-File: LICENSE
Keywords: agents,langchain,llm,observability,tracing
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Requires-Dist: langchain-core>=0.3
Requires-Dist: pydantic>=2.6
Requires-Dist: pyyaml>=6.0
Requires-Dist: typer>=0.12
Provides-Extra: all
Requires-Dist: build>=1.2; extra == 'all'
Requires-Dist: fastapi>=0.115; extra == 'all'
Requires-Dist: httpx>=0.27; extra == 'all'
Requires-Dist: mypy>=1.11; extra == 'all'
Requires-Dist: pytest>=8.0; extra == 'all'
Requires-Dist: ruff>=0.6; extra == 'all'
Requires-Dist: tiktoken>=0.7; extra == 'all'
Requires-Dist: twine>=5.0; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.30; extra == 'all'
Provides-Extra: api
Requires-Dist: fastapi>=0.115; extra == 'api'
Requires-Dist: uvicorn[standard]>=0.30; extra == 'api'
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Requires-Dist: twine>=5.0; extra == 'dev'
Provides-Extra: examples
Requires-Dist: httpx>=0.27.0; extra == 'examples'
Requires-Dist: langchain-openai>=0.2.0; extra == 'examples'
Requires-Dist: langgraph>=0.2.0; extra == 'examples'
Requires-Dist: python-dotenv>=1.0.0; extra == 'examples'
Provides-Extra: openai
Requires-Dist: tiktoken>=0.7; extra == 'openai'
Description-Content-Type: text/markdown

# Roomy

**Roomy** is a local-first observability toolkit for **LangChain** agents. It records what entered the model (messages, tools, retrievers), **token usage**, **latency**, and **structured traces** in **SQLite**, with a **CLI** and an optional **web UI** for inspection.

## Install

```bash
pip install roomy-observability
```

- **PyPI package:** `roomy-observability`
- **Python import:** `import roomy`
- **CLI:** `roomy` (e.g. `roomy serve`, `roomy sessions list`, `roomy dashboard` to open the web UI in a browser)

Requires **Python 3.11+**.

## Quick start

```python
from roomy import end_session, instrument_langchain

bindings = instrument_langchain(app_name="my-agent", db_path="./traces.db")
result = chain.invoke(
    {"topic": "Hello"},
    config={"callbacks": bindings.callbacks},
)
end_session(bindings.manager)
```

Use `wrap_agent(chain, bindings.manager)` if you prefer binding callbacks on a Runnable.

## Optional extras

| Extra | Purpose |
| ----- | ------- |
| `api` | FastAPI + Uvicorn (`roomy serve` for the inspector API) |
| `openai` | `tiktoken` for better token estimates |
| `examples` | LangGraph + OpenAI + dotenv + httpx (for repo examples under `examples/`) |
| `dev` | Tests, ruff, mypy, build, twine |

```bash
pip install "roomy-observability[api,openai]"
pip install "roomy-observability[api,openai,examples]"   # LangGraph example deps
```

## Documentation & source

Full monorepo (sample agents, web app, architecture docs): **[github.com/Sarang-Pramode/Roomy](https://github.com/Sarang-Pramode/Roomy)**

**Author:** [Sarang Pramode](https://pramode.dev) · **License:** MIT
