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.

No spam. One email when we're ready.