Metadata-Version: 2.5
Name: kairoscope
Version: 0.1.0.dev0
Summary: Decide which frames, at what resolution, a vision model actually needs to see.
Requires-Python: >=3.12
Requires-Dist: av>=19.0
Requires-Dist: numpy>=2.5
Requires-Dist: pillow>=13.0
Provides-Extra: claude
Requires-Dist: anthropic>=1.15; extra == 'claude'
Description-Content-Type: text/markdown

# kairoscope

> Your video agent is watching every frame. It doesn't need to.

**kairoscope** makes AI video agents faster and cheaper. It decides which frames, at
what resolution, a vision model actually needs to see, and finds key moments without
watching the whole video.

> **Status: v0.1 scaffolding.** APIs are stubs and not yet implemented.

```bash
pip install kairoscope           # core (av, numpy, pillow)
pip install "kairoscope[claude]" # + Anthropic judge
```

```python
import kairoscope as ks
from kairoscope.judges.claude import ClaudeJudge

video = ks.Video("game.mp4")
judge = ClaudeJudge()  # default model: claude-sonnet-5-5
result = ks.find_event(video, judge)
print(result.seconds, result.calls, result.cost)
```

## Development

```bash
uv sync --all-extras
uv run ruff format .
uv run ruff check . --fix
uv run mypy src --strict
uv run pytest -q
```

Benchmark numbers in this README come only from `benchmarks/`.
