io.github.smigolsmigol/llmkit
AI 与智能体by smigolsmigol
跟踪11家LLM provider的AI API成本,可按model、session或时间范围查询支出。
什么是 io.github.smigolsmigol/llmkit?
跟踪11家LLM provider的AI API成本,可按model、session或时间范围查询支出。
README
$ npx @f3d1/llmkit-cli -- python my_agent.py
$0.0215 total 3 requests 4.2s ~$18.43/hr
claude-sonnet-4-20250514 1 req $0.0156 ████████████████████
gpt-4o 2 reqs $0.0059 ███████░░░░░░░░░░░░░
Works with Python, Ruby, Go, Rust - anything that calls the OpenAI or Anthropic API. One command, no code changes.
Get started
- Create an account at llmkit.sh (free while in beta)
- Create an API key in the Keys tab
- Pick a method below
CLI
Wrap any command. The CLI intercepts API calls, forwards them through the proxy, and prints a cost summary when the process exits.
npx @f3d1/llmkit-cli -- python my_agent.py
Use -v for per-request costs as they happen, --json for machine-readable output.
Python
pip install llmkit-sdk
With the proxy (budget enforcement, logging, dashboard):
from openai import OpenAI
client = OpenAI(
base_url="https://api.llmkit.sh/v1",
api_key="llmk_your_key_here",
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "hello"}],
)
Without the proxy (local cost estimation, zero setup):
from llmkit import tracked
from openai import OpenAI
client = OpenAI(http_client=tracked())
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "hello"}],
)
# costs estimated locally from bundled pricing table
tracked() wraps your HTTP client and estimates costs from token usage. No proxy needed. Works with any SDK that accepts http_client.
Framework integrations (LangChain, LlamaIndex, Pydantic AI):
from llmkit.integrations.langchain import LLMKitCallbackHandler
handler = LLMKitCallbackHandler()
chain.invoke("...", config={"callbacks": [handler]})
print(f"${handler.total_cost:.4f}")
TypeScript
npm install @f3d1/llmkit-sdk
import { LLMKit } from '@f3d1/llmkit-sdk'
const kit = new LLMKit({ apiKey: process.env.LLMKIT_KEY })
const agent = kit.session()
const res = await agent.chat({
provider: 'anthropic',
model: 'claude-sonnet-4-20250514',
messages: [{ role: 'user', content: 'summarize this document' }],
})
console.log(res.content)
console.log(res.cost) // { inputCost: 0.003, outputCost: 0.015, totalCost: 0.018, currency: 'USD' }
Streaming, CostTracker, and Vercel AI SDK provider also available.
MCP Server
<a href="https://glama.ai/mcp/servers/smigolsmigol/llmkit-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/smigolsmigol/llmkit-mcp-server/badge" alt="llmkit-mcp-server MCP server" /> </a>Query AI costs from Claude Code, Cline, or Cursor:
{
"mcpServers": {
"llmkit": {
"command": "npx",
"args": ["@f3d1/llmkit-mcp-server"],
"env": { "LLMKIT_API_KEY": "llmk_your_key_here" }
}
}
}
11 tools - 6 proxy (need API key), 5 local (no key, auto-detect Claude Code + Cline + Cursor):
llmkit_usage_stats llmkit_cost_query llmkit_budget_status llmkit_session_summary llmkit_list_keys llmkit_health llmkit_local_session llmkit_local_projects llmkit_local_cache llmkit_local_forecast llmkit_local_agents
SessionEnd hook - auto-log session costs when Claude Code exits. Add to settings.json:
{
"hooks": {
"SessionEnd": [
{
"type": "command",
"command": "npx @f3d1/llmkit-mcp-server --hook"
}
]
}
}
Parses the session transcript and prints cost summary. No API key needed.
GitHub Action
Cap AI spend in CI. The action runs your command through the CLI, tracks cost, and fails the job if it exceeds the budget.
- uses: smigolsmigol/llmkit/.github/actions/llmkit-budget@main
with:
command: python agent.py
budget-usd: '5.00'
post-comment: 'true'
Posts a cost report as a PR comment. Outputs total-cost, total-requests, budget-exceeded, and summary-json for downstream steps.
Why LLMKit
Most cost tracking tools give you "soft limits" that agents blow past in the first hour. LLMKit runs cost estimation before every request. If it would exceed the budget, the request gets rejected before reaching the provider. Per-key or per-session scope.
Tag requests with a session ID or end-user ID to track costs per agent, per conversation, per user. The dashboard and MCP server surface this data in real time. Cost anomaly detection alerts when a single request costs 3x the recent median.
11 providers through one interface: Anthropic, OpenAI, Google Gemini, Groq, Together, Fireworks, DeepSeek, Mistral, xAI, Ollama, OpenRouter. Fallback chains with one header (x-llmkit-fallback: anthropic,openai,gemini).
Runs on Cloudflare Workers at the edge. Cache-aware pricing across 7 providers with prompt caching. 730+ models priced across all providers.
Automatic prompt caching for Anthropic: the proxy injects cache breakpoints on system prompts and conversation history. Second request with the same system prompt costs 90% less. Zero config, zero code changes.
Framework integrations: drop-in cost tracking for LangChain, LlamaIndex, and Pydantic AI via callback handlers. Works alongside the httpx transport for direct SDK use.
470+ tests, ClusterFuzzLite fuzzing, 6-stage security pipeline (gitleaks, semgrep, CodeQL, bandit, pip-audit, pnpm audit). OpenSSF Scorecard 8.3 - higher than React, Django, Kubernetes, and every AI gateway competitor.
Public API endpoints (no auth required):
/v1/pricing/compare- compare cost across all 730+ models for a given token count
Security
LLMKit handles your API keys. We take that seriously.
| Layer | What |
|---|---|
| Encryption | Provider keys: AES-256-GCM, random IV, context-bound AAD |
| Hashing | User API keys: SHA-256, never stored in plaintext |
| Runtime | Cloudflare Workers: no filesystem, no .env, nothing to exfiltrate |
| Supply chain | All CI actions pinned to commit SHAs, explicit least-privilege permissions |
| Provenance | npm packages published with Sigstore provenance via GitHub Actions OIDC |
| Pre-commit | 19 secret patterns + credential file blocking + gitleaks |
| CI pipeline | gitleaks, semgrep, pnpm audit, pip-audit, bandit, KeyGuard |
| AI exclusion | .cursorignore + .claudeignore block AI tools from reading secrets |
Full details in SECURITY.md.
<details> <summary><strong>Packages</strong></summary>| Package | Description |
|---|---|
| llmkit-sdk (PyPI) | Python SDK: tracked() transport, cost estimation, streaming, sessions |
| @f3d1/llmkit-sdk (npm) | TypeScript client, CostTracker, streaming |
| @f3d1/llmkit-cli | npx @f3d1/llmkit-cli -- <cmd>: zero-code cost tracking for any language |
| @f3d1/llmkit-proxy | Hono-based CF Workers proxy: auth, budgets, routing, logging |
| @f3d1/llmkit-ai-sdk-provider | Vercel AI SDK v6 custom provider |
| @f3d1/llmkit-mcp-server | 11 tools: proxy analytics, local costs (Claude Code + Cline + Cursor) |
| @f3d1/llmkit-shared | Types, pricing table (11 providers, 730+ models), cost calculation |
git clone https://github.com/smigolsmigol/llmkit
cd llmkit && pnpm install && pnpm build
cd packages/proxy
echo 'DEV_MODE=true' > .dev.vars
pnpm dev
# proxy running at http://localhost:8787
Deploy to Cloudflare Workers:
npx wrangler login
npx wrangler secret put SUPABASE_URL
npx wrangler secret put SUPABASE_KEY
npx wrangler secret put ENCRYPTION_KEY
npx wrangler deploy
470+ tests across TypeScript and Python: cost calculation, budget enforcement, crypto, reservations, pricing accuracy, streaming, transport hooks, contract tests, and integration tests. CI runs on every push with a 6-stage security pipeline.
</details> <details> <summary><strong>Audit logging</strong></summary>Per-request logging with timestamps, model attribution, cost tracking, per-end-user attribution (x-llmkit-user-id), tool invocation logging, CSV export with sha256 integrity hash. This data can support record-keeping requirements but does not constitute regulatory compliance.
- LobeHub
- Glama
- MCP Registry - official
- Smithery
- AgentHotspot
- TensorBlock awesome-mcp-servers
- awesome-cloudflare
- Pricing comparison - 730+ models
- Cost calculator
常见问题
io.github.smigolsmigol/llmkit 是什么?
跟踪11家LLM provider的AI API成本,可按model、session或时间范围查询支出。
相关 Skills
Claude接口
by anthropics
面向接入 Claude API、Anthropic SDK 或 Agent SDK 的开发场景,自动识别项目语言并给出对应示例与默认配置,快速搭建 LLM 应用。
✎ 想把Claude能力接进应用或智能体,用claude-api上手快、兼容Anthropic与Agent SDK,集成路径清晰又省心
RAG架构师
by alirezarezvani
聚焦生产级RAG系统设计与优化,覆盖文档切块、检索链路、索引构建、召回评估等关键环节,适合搭建可扩展、高准确率的知识库问答与检索增强应用。
✎ 面向RAG落地,把知识库、向量检索和生成链路系统串联起来,做架构设计时更清晰,也更少踩坑。
多智能体架构
by alirezarezvani
聚焦多智能体系统架构设计,梳理 Supervisor、Swarm、分层和 Pipeline 等模式,覆盖角色定义、通信协作与性能评估,适合规划稳健可扩展的 AI agent 编排方案。
✎ 帮你系统解决多智能体应用的架构设计与协同编排难题,适合构建复杂 AI 工作流,成熟度高、社区认可也很亮眼。
相关 MCP Server
知识图谱记忆
编辑精选by Anthropic
Memory 是一个基于本地知识图谱的持久化记忆系统,让 AI 记住长期上下文。
✎ 帮 AI 和智能体补上“记不住”的短板,用本地知识图谱沉淀长期上下文,连续对话更聪明,数据也更可控。
顺序思维
编辑精选by Anthropic
Sequential Thinking 是让 AI 通过动态思维链解决复杂问题的参考服务器。
✎ 这个服务器展示了如何让 Claude 像人类一样逐步推理,适合开发者学习 MCP 的思维链实现。但注意它只是个参考示例,别指望直接用在生产环境里。
by deusdata
持久化的代码库知识图谱,可跨会话保留上下文,在 session 重启或上下文压缩后仍能继续使用。
✎ 专治 AI 编程助手“会话失忆”,把代码库沉淀为持久知识图谱,重启或压缩上下文后也能无缝续上开发状态。