Hosted LLM observability starts at $29–79 per month. Free proxies exist, but they want a server to babysit. This kit is different: a metadata-only logging proxy that runs on your own Cloudflare account — the free tier is enough to start — tags every call with a project name, and renders a cost dashboard with budget alerts. One payment of ฿1,490, then nothing.
Get the kit — ฿1,490One zip, zero npm dependencies, no database server to rent, no vendor login — a single-file Worker you deploy to your own Cloudflare account in about fifteen minutes.
Change your SDK base URL and you're done: OpenAI, Anthropic, Google Gemini, Groq and OpenRouter are wired in, plus any OpenAI-compatible host. Requests stream straight through — answers are never read.
Add x-gk-project: chatbot to any request and its tokens are attributed to that project. Your month stops being one scary number and becomes a table you can act on.
Set a monthly dollar budget per project. The dashboard turns yellow at 80% and red at 100%, and /api/summary.json feeds your own Slack or email alerts — recipe included.
A server-rendered page on the same Worker: month-to-date spend, per-project table with budget bars, per-model share, recent events with latency and failed calls flagged.
Not "we handle it carefully" — the database schema has no column that could hold a prompt or an answer. Only model, tokens, cost, project, status. That is the whole privacy story, enforced at the storage layer.
A day-by-day plan: deploy on day 1, one real app behind the proxy by day 2, budgets and alerts by day 6, one cost-saving decision shipped by day 7. Thirty minutes a day.
The logs live in your own Cloudflare D1, not in someone's SaaS. No third party sees a token count tied to your user IDs, and no monthly fee decides whether your history stays online. Deploy it once, own it forever.
Sized for indie volume. The Workers free plan allows 100,000 requests a day — one per LLM call — and D1's free allowance holds months of metadata rows. Nothing to rent, nothing to babysit, nothing that bills you while you sleep.
The kit ships with no API keys and makes no model calls. Your existing provider keys keep working — passed through per request, never logged. Want the opposite? Store per-project keys once as a Worker secret and your apps hold no keys at all.
Three steps from zip to a dashboard with real numbers on it.
Run the offline selftest, create one D1 database, paste two values into the config, deploy with wrangler. About fifteen minutes, all commands provided in the README.
Change the SDK base URL and add x-gk-project: myapp. Official Python and Node snippets for OpenAI, Anthropic and Gemini are in the recipes file — copy, paste, ship.
Every call shows up as a priced row: project, model, tokens, latency, status. Set budgets, wire the JSON summary to Slack, and let the 14-day playbook turn the numbers into decisions.
It is a measurement proxy: no rate limiting, no multi-provider failover, no response caching, no team seats or SSO. Those are enterprise-gateway features and this kit does not pretend to have them.
It needs your own provider API keys — OpenAI, Anthropic, Google, Groq or OpenRouter. The kit ships with none and makes no LLM calls of its own; your tokens are billed by your provider exactly as today.
Streaming cost capture works when usage metadata is on the wire: OpenAI streams need stream_options.include_usage; Anthropic and Gemini report usage on every stream. Streams without usage log 0 tokens and show as unpriced — the dashboard never invents numbers.
No monthly plan, no per-seat fee, no usage markup on your tokens.
Secure payment by Stripe · cards · taxes calculated at checkout
A free Cloudflare account, Node 18+ with the wrangler CLI, and the provider API key you already use. That's the whole list. The README walks you through ~15 minutes of copy-paste commands, starting with an offline selftest that proves the shipped code before anything touches your account.
Neither. Request and answer text streams through the proxy untouched. The only thing parsed is the usage metadata the provider already returns — model name and token counts. The D1 schema has no column that could hold your text, so "not stored" is enforced by the storage layer, not by a policy document.
Yes — LiteLLM's proxy is excellent if you want to run and patch a Python service, and your provider's own usage page shows one big monthly number. This kit exists for the gap between those: per-project cost attribution, budgets with alert hooks, and a dashboard that lives in your own account with zero servers to babysit. If plain cost-only logs are enough for you, use the free tools — this kit will still be here when your bill gets complicated.
The kit prices every call from an editable table (USD per 1M tokens, with prefix matching so dated model snapshots price correctly). The shipped table is a September 2026 snapshot of popular list prices — the README tells you to check your provider's current pricing and adjust, and unpriced models are flagged rather than silently counted as zero.
One developer, unlimited own projects — including client work. Deploy it on as many Cloudflare accounts as your projects need. Redistributing or reselling the kit's files is not permitted; each developer needs their own license. All v1.x updates are free.
If the kit doesn't fit how you work, email zicula06@gmail.com within 14 days of purchase and you get a full refund — keep or delete the files, your choice. One refund per purchase; we only ask for optional feedback.
฿1,490 one-time · ≈ US$42 · free v1.x updates · instant download
Get the LLM Gateway Kit — ฿1,490