no proxy · tracks every tool call · receipts your agents can read
Your agent's LLM cost is the smallest part of the bill.
aledger tracks full AI agent spending across every tool call — search, scraping, browser sessions, and LLMs. Local SDK, no proxy, no data leaves your infrastructure. Structured receipts your agents can actually read.
no card · no spam · early access for agent builders
// the problem
Existing tools only see half the picture.
01
LLM-only tracking misses most of the cost.
Your agent called Firecrawl 40 times, ran 3 Browserbase sessions, and hit Perplexity on every step. None of that shows up in your LLM dashboard.
02
Proxies are a liability.
Tools that sit between you and your LLM provider add latency, create data residency risks, and become a single point of failure. You shouldn't need to trust a third party to track your own spend.
03
Dashboards are built for humans, not agents.
A pie chart doesn't help the next agent in your pipeline understand what the previous one spent. Receipts should be machine-readable by default.
// how it works
Wrap everything. Track everything.
step 01
Wrap your tools — all of them.
One line per tool. OpenAI, Anthropic, Firecrawl, Perplexity, Exa, Browserbase, Tavily. aledger tracks every call, not just the model.
ledger.wrap(tool)
step 02
Set a limit. Or a budget. Or both.
Don't know what a task should cost yet? Set a ceiling. aledger stops your agent before it crosses it. No runaway tasks. No surprise bills.
limit=2.00
step 03
Get a receipt your agents can read.
Every task ends with structured JSON — every tool called, every cost, every reason. Pass it to the next agent. Store it in memory. Use it as context. It lives in your agent's world, not a dashboard.
ledger.end_task()
// the sdk
One line per tool.
Wrap every tool your agent touches — not just the model. aledger meters each call locally and hands back a receipt your agents can read.
agent.pypython
from aledger import Ledger
ledger = Ledger(
agent_id="research-agent-01",
task_id="task-abc-123",
limit=2.00, # hard stop
budget=0.50, # soft target (optional)
)
# Wrap every tool — not just your LLM
openai_client = ledger.wrap(openai_client)
firecrawl = ledger.wrap(firecrawl)
browserbase = ledger.wrap(browserbase)
perplexity = ledger.wrap(perplexity)
# Run your agent normally — aledger tracks everything
results = firecrawl.scrape(url)
answer = perplexity.search(query)
summary = openai_client.chat.completions.create(...)
# End the task — get a machine-readable receipt
receipt = ledger.end_task()
# {
# "task_id": "task-abc-123",
# "total_cost": 0.43,
# "status": "under_budget",
# "line_items": [
# { "tool": "firecrawl", "cost": 0.08, "calls": 4 },
# { "tool": "perplexity", "cost": 0.015, "calls": 3 },
# { "tool": "openai", "cost": 0.032, "calls": 1 },
# ]
# }
→ tracks every tool call→ no proxy, runs local→ machine-readable receipts
// why aledger
The whole bill, not half of it.
feature
other tools
aledger
Tracks LLM calls
✓
✓
Tracks tool calls
✕
✓
Proxy-free
✕
✓
Machine-readable receipts
✕
✓
Hard spending limits
✓
✓
Built for agents, not dashboards.
aledger is in early development. Join the waitlist and be first to integrate.