{% extends "base.html" %} {% block title %}LLM usage · Keywright{% endblock %} {% macro number(value) %}{{ '{:,}'.format(value) }}{% endmacro %} {% macro counts(t) %}
Track model activity across providers and see which agents and gateway keys drive it.
Usage observed by the Keywright proxy, including failed upstream attempts. Denied requests and model listings are excluded. Missing usage is unknown, not zero; totals include only reported counts. Input includes cache reads and writes. Older streams, compressed responses, and streams without usage may be unreported. Direct provider calls and provider billing costs are not included.
{% if totals.requests %}Each provider is a configured gateway. The same model stays separate under each gateway.
{% for p in providers %}| {{ m.name }} | {{ counts(m.totals) }}
| {{ name }} | {{ counts(t) }}
|
{{ k.alias }} {{ k.agent }} · {{ k.provider }}
{{ k.models | sort | join(', ') }} {% if not k.key_id.startswith('legacy:') %}{{ k.key_id }} {% endif %}
| {{ counts(k.totals) }}
| {{ day }} | {{ counts(t) }}
| Time (UTC) | Provider / model | Agent / key | Tokens | Result |
|---|---|---|---|---|
| {{ event.ts.strftime('%Y-%m-%d %H:%M:%S') }} | {{ event.provider }} {{ event.model }} |
{{ event.agent }} {{ event.alias }} |
{{ number(event.total) if event.total is not none else 'Unreported' }} | {{ event.decision }} |
Try a wider date range or clear the filters. Model calls through Keywright will appear here after their responses finish.