ibl.ai now caps what one person can spend on AI across every agent in a workspace, from a fourth Billing tab called User Limits, and can give each member who joins later a starting budget automatically, so AI cost follows people the way a budget does rather than a per-seat price list, and the tab mounts in your own Next.js app β with ibl.ai you own all the code and the data.
The toolkit's /iblai-vibe-billing skill documents the tab in iblai/vibe v2.21.0, released on November 9, 2026, the toolkit's first release since v2.20.1 on November 3.
The platform side, the user spend-cap scope and the default for new members, first shipped in the October 30 platform update. It extends the three scopes described in Spend Limits.
How do you cap one person's AI spend across every agent?
User Limits holds one limit per person that covers everything they spend across all agents in the workspace. The per-person limits described in Spend Limits live inside one agent's settings and cover that agent alone.
Search Users autocompletes over the organization's users from two characters. It filters the table, and a person with no limit yet gets a Set Spend Limit button.
Each row shows the user, the limit as amount and period, what has been spent, what remains, and a status switch that saves at once, with Exceeded and Alert Only badges. In the frame, a demo member has spent $12.40 of a $50.00 monthly limit, leaving $37.60.
Edit and Set open the same popup as the per-agent user limits: Spend Limit (USD), Resets Every (Day, Week, Month or Year), When the Limit Is Reached (Block Requests or Alert Only), and Alert At (% of Limit), for example 80, 95. Delete asks for confirmation first.
Can every new employee start with an AI budget automatically?
Yes. Default for New Users, below the table, is the limit each person gets when they join the workspace as a member, written as their own user limit. It is off by default: a switch, the same four fields, then Save.
In the frame it is on at $25 a month, blocking requests once reached, with alerts at 80% and 95%. Each member who joins from then on starts with that limit, and an admin can change it later in the User Limits table, where those rows appear.
Three boundaries keep it predictable. Only people who join after it is turned on get it; someone who joins as an admin does not. Editing the default never changes the limits it already created. Turning it off keeps the values for later.
To limit someone already in the workspace, or an admin, set their limit in the table above.
Which spend limit applies when several overlap?
ibl.ai now enforces LLM spend limits at four scopes, set from the Billing page or an agent's own settings. The platform's REST contract states which ones apply to a given chat:
| Scope | What it covers | When it applies | Where it is set |
|---|---|---|---|
| Organization | Everything every agent and person spends | Every chat | Billing, Spend Limits |
| User (new) | One person, across every agent | Every chat of theirs | Billing, User Limits |
| Agent | One agent | When that agent is in play | Agent settings, or Billing, Agent Limits |
| User on one agent | One person, on one agent | When both are known | Agent settings, Per User, or Billing, Agent Limits, Manage |
A Block Requests limit that is exceeded refuses the next chat with HTTP 429 and the error code spend_cap_exceeded, which names the interval but deliberately leaves out dollar amounts.
When several blocking limits are exceeded at once, the most specific one is reported: user on one agent, then user, then agent, then organization.
A spend limit is a separate layer from prepaid credits: running out of credits returns HTTP 402, not 429. Spend counters are reconciled from ClickHouse on a schedule, so enforcement reads a cached figure that can trail real-time spend slightly.
What does a person see when they near their AI spend limit?
The chat reads each person's own limits as zones and percentages, never dollars. When a limit is near, a banner above the composer says "Usage is nearing its limit." Once a Block Requests limit is exceeded, a red banner appears and Send is disabled until the period resets.
A refused send tells a member to contact their administrator. An admin instead gets an Open Billing button, which in the starter app opens the Billing page.
Over the platform's REST API, a status endpoint lets any signed-in member read their own limits. It returns zones (ok, warning or exceeded) and percentages used, for example 82.5, never dollar amounts, so it is safe to show to the person being limited.
How do you add User Limits to your own app?
The whole Billing page, all four tabs, is one component, BillingTab, from @iblai/iblai-js/web-containers.
The User Limits tab needs @iblai/iblai-js 2.62.3 or later; the v2.21.0 starter pins ^2.67.3. Spend Limits, Agent Limits and User Limits each check access on their own and show their own denied panel, while Plan & Credits stays visible.
Over the platform's REST API, spend-caps/users/ lists every user limit and spend-caps/users/{username}/ reads, writes or deletes one. spend-caps/users/default/ holds the default for new users as a full-replace PUT, where enabled: false turns it off and keeps the values.
Giving every member who joins from now on $25 a month across all agents is one call:
curl -X PUT "https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/spend-caps/users/default/" \
-H "Authorization: Api-Token $IBLAI_API_KEY" -H 'Content-Type: application/json' \
-d '{"enabled": true, "interval_type": "month", "max_cost_usd": "25.00",
"enforcement": "block", "alert_thresholds": [0.8, 0.95]}'
The documentation is in the /iblai-vibe-billing and /iblai-api-spend-caps skills. The other three Billing tabs are covered in Organization Settings: Billing, and the toolkit itself in Agentic Vibe.
Want to see per-person AI budgets on your own deployment?
We'll walk through User Limits, the default for new members and the chat-side banners on a workspace shaped like yours.
Book a 30-minute demo or talk to the ibl.ai team β ibl.ai is family-owned and operated from New York, NY.
