theme-aware WebP cards for your GitHub profile, powered by prosa
prosa turns scattered Claude Code, Codex, Cursor, Gemini, and
Antigravity session histories into one local, searchable work log.
prosa-webp-widgets renders that work log as small, static WebP cards you
can drop into a GitHub profile README — five same-size widgets, each in a light
and a dark theme that switches automatically with the reader's color scheme.
It is, in spirit, lastfm-webp-widgets for AI-agent usage analytics
instead of music: low information density, hierarchy carried by type and color,
no live server required to render.
Every card is a rounded, GitHub-themed panel with embedded Roboto, rendered at
2260x696 from a 1130x348 logical layout (@2x). The previews below adapt to
your GitHub theme — light cards in light mode, dark cards in dark mode.
Sessions captured in the window, the top agents by session count, and the estimated total token spend.
Total tokens across agents, split into input and output, with the leading agents ranked by usage.
Estimated model cost for the window, the number of models touched and cached tokens, with the top models by spend.
The most active project and the runners-up by session count. Use
--exclude-project to keep private repositories out of the card.
Share of sessions run as subagents, the total child agents and max fan-out, with the agents that delegate the most.
Preview with mock data — deterministic, no prosa server needed:
just run render --mock --out ./out/mockThis writes all ten files (light and -dark) under out/mock/.
export PROSA_SERVER_URL='https://prosa.example.com'
export PROSA_APP_TOKEN='prosa_app_...'
just run render --last 30d --out ./out/prodexport S3_BUCKET_NAME='your-bucket'
export AWS_REGION='us-east-1'
export AWS_ACCESS_KEY_ID='...'
export AWS_SECRET_ACCESS_KEY='...'
export S3_PREFIX='prosa-widgets'
export S3_PUBLIC_BASE_URL='https://cdn.example.com'
just run render --last 30d --out ./out/prod --uploadOptional:
--exclude-project owner/repo(repeatable or comma-separated) to hide projects fromproject-focus.PROSA_HTTP_TIMEOUTor--timeoutto control the remote fetch timeout (default30s).S3_ENDPOINT_URLfor S3-compatible storage.S3_ACLfor buckets that still require a canned ACL.CHROMIUM_BROWSER_BINARY_PATHto use an existing Chrome/Chromium binary.
Point a <picture> at the uploaded light/dark pair so the card follows the
reader's theme:
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://cdn.example.com/overview-dark.webp">
<img src="https://cdn.example.com/overview.webp" width="800" alt="Agent activity">
</picture>- Prebuilt binaries for linux/darwin × amd64/arm64 are attached to each release, alongside checksums and SBOMs.
- Docker images are published to the GitHub Container Registry as
ghcr.io/c3-oss/prosa-webp-widgets(multi-arch). - From source with devbox and just (see below).
devbox shell
just test
just buildAGENTS.md is the canonical guide — conventions, layout, recipes, hooks, and
what is intentionally not here.
To the extent possible under law, Caian Ertl has waived all copyright
and related or neighboring rights to this work. In the spirit of freedom of
information, I encourage you to fork, modify, change, share, or do whatever
you like with this project! ^C ^V