{# Cassette table fragment. Rendered standalone on /partials/index_table for HTMX-driven live refresh. Also included in index.html on first paint. #} {% if cassettes %}
| path | providers | interactions | size | modified |
|---|---|---|---|---|
| {{ c.rel }} | {% for p in c.providers %}{{ p }}{% endfor %} {% if not c.providers %}-{% endif %} | {{ c.interactions }} | {{ c.size | bytes_human }} | {{ c.modified | since }} |
{% if search %}
No cassettes match "{{ search }}"
Try a shorter query, or clear the search.
{% else %}No cassettes recorded yet under {{ root or "this directory" }}
Record one by wrapping your LLM-calling code with @cuesheet.cassette(...).
# tests/test_summarizer.py
import cuesheet
@cuesheet.cassette("tests/cassettes/test_summarizer.yaml")
def test_summarizer():
from anthropic import Anthropic
client = Anthropic()
r = client.messages.create(
model="claude-sonnet-4-5",
messages=[{"role": "user", "content": "..."}],
)
assert "key point" in r.content[0].text
First run hits the real API; every run after replays from the YAML. This page updates live as files appear.
{% endif %}