- New openai-proxy.ts: POST /v1/chat/completions forwards client's API key
to OpenAI, creates tracking ticket with full cost calculation for all
gpt-4o, gpt-4o-mini, o1, o3-mini, gpt-4-turbo, gpt-3.5-turbo models
- GET /v1/models unified in openai-proxy (removed duplicate from anthropic-proxy)
- Dashboard: POST /v1/chat/completions forwarded to core (OPENAI_BASE_URL works)
- Overview 'Savings per AI' panel: shows emoji label, request count, cost,
tokens in/out, and savings per provider (🟣 Claude 🟢 ChatGPT 🟡 Ollama)
- Old pipeline-based proxy.ts replaced by direct API passthroughs
- Add POST /v1/messages (Anthropic-format passthrough) to core with full
ticket tracking — every Claude Code request creates a TokenVault ticket
- Add GET /v1/models passthrough so Anthropic SDK model listing works
- Proxy /v1/messages + /v1/models in dashboard so public URL forwards to core
- Add /health endpoint to dashboard for infra monitoring
- Overview tab now shows RTK savings banner (3.5M tokens, 753 commands)
alongside LLM ticket stats — Overview no longer looks empty
- Provider split bar chart rendered when request data is available
ANTHROPIC_BASE_URL=https://tokenvault.fichtmueller.org now set globally
in ~/.zshrc — every new Claude Code session is tracked automatically.
- @tokenvault/rtk-bridge: Reads ~/Library/Application Support/rtk/history.db
and syncs new commands to /v1/rtk/stats (stateful, batched, idempotent)
- Core: rtk_commands table + 4 endpoints (/v1/rtk/stats, /rtk/commands, /rtk/hosts)
- Dashboard: new RTK Savings tab with 6 KPI cards + top commands + host breakdown
- Multi-host aggregation: sync from Mac Studio, Mac Mini, MacBooks etc.
- First sync: 753 commands, 3.5M tokens saved aggregated
RTK is MIT-licensed (github.com/rtk-ai/rtk) — we use it as the compression
engine and add the missing pieces: central tracking, team attribution,
cross-machine dashboards, long-term trend analysis.