Integrations
Every package below is published from one repository, github.com/marketinglior-pixel/agentbill. The rows marked Guide are not packages: each is the plain Python SDK placed in a hook that framework already has. Any code that can make one HTTP call before its provider call can use the API directly.
| Name | Kind | Install | Registry | Our page |
|---|---|---|---|---|
| @agentbill/openclaw 0.1.0 | Plugin | openclaw plugins install clawhub:@agentbill/openclaw | ClawHub | OpenClaw |
| agentbill-mcp 0.2.2 | Package, MCP server | uvx agentbill-mcp | PyPI | MCP server |
| agentbill-sdk 0.6.5 | Package, Python SDK | pip install agentbill-sdk | PyPI | Quick start |
| agentbill 0.4.1 | Package, Node SDK | npm install agentbill | npm | Node.js |
| HTTP API | API | POST /preflight with a Bearer key | none | API reference |
| LangChain | Guide | pip install agentbill-sdk "langchain==1.4.2" | uses agentbill-sdk | LangChain |
| OpenAI Agents SDK | Guide | pip install agentbill-sdk "openai-agents==0.22.3" | uses agentbill-sdk | OpenAI Agents SDK |
| CrewAI | Guide | pip install agentbill-sdk "crewai==1.15.22" | uses agentbill-sdk | CrewAI |
Each version is what its registry serves, not what the repository holds.
Which one fits
Your agent runs inside OpenClaw. Install the plugin. It asks one ceiling before every tool call in a session, and before every model turn on OpenClaw's embedded and CLI runners. OpenClaw does not run a tool or send a turn the ceiling refused. On the Codex and Copilot harnesses only tool calls are asked; the OpenClaw page says why.
Your agent is code you own. Put preflight and record where your code, or your framework, calls the model. The guides show where that is in LangChain, the OpenAI Agents SDK and CrewAI, with samples that were run against the framework versions in the table.
Your agent host speaks MCP. The MCP server gives the model a preflight tool it can consult. The model decides whether to call it, and it does not limit the host's own model calls.
Anything else. POST /preflight with a Bearer key, before the call; POST /events after it. The whole contract is in the API reference.
What every row has in common
The ceiling is bound to a task_ref, the name you give a job, and every call that passes it draws on the same number, whichever process, agent or provider made it. Before a call, preflight answers, and when the call would pass the ceiling it answers approved: false. Task budgets explains the mechanism.
What reaches you then depends on the row. With the Python and Node SDKs, and the guides built on them, the SDK raises TaskCeilingExceededError and your code decides what the job does next. The OpenClaw plugin hands the refusal to OpenClaw, and the MCP server returns it to the model as a value. Over the HTTP API, the answer is the JSON body.
Units are integers you assign to each call, except in the OpenClaw plugin's tokens mode, which counts the token totals OpenClaw reports. AgentBill never reads your provider bill.