Show HN: Llmtee – Lightweight LLM Proxy
github.com
I built llmtee because I wanted a simple mechanism to log llm calls, and existing options require running Postgres, ClickHouse, Redis and a worker, or change my code to use an SDK.
llmtee is just a simple proxy. You change the base URL, and every request is logged with tokens, cost, latency and time-to-first-token. Streams are passed through chunk by chunk and a copy goes to a usage parser, like tee. Database writes happen in batches off the request path, so if SQLite is slow or gone, requests still go through.
It also does hard per-key budgets (daily/monthly). A key over its limit gets a 429 in the provider's error format. I use this as an emergency brake for agents that loop.
What it does not do: evals, prompt management, routing, fallbacks, caching. If a feature needs a second service, the answer is no. LiteLLM and Langfuse are better if you need those.
Some details: - Works with OpenAI, Anthropic, OpenRouter, and anything OpenAI-compatible (Ollama, vLLM, Groq). - Prices come from LiteLLM's price table, embedded at build time. - Reads Helicone headers, so it can replace a self-hosted Helicone (now in maintenance mode) without client changes. - Adds about 0.2 ms p99 in my load test. - Apache-2.0.
I would like feedback on the budget semantics (the request that crosses the limit still completes) and on which providers to support natively next (Gemini, Bedrock, Azure).