Budgets are admin-only. Open Settings -> Project -> Budget. The page has two tabs: General, for the project-wide and per-user limits below, and Advanced, for member and group budgets.
Set a budget
- Navigate to Settings -> Project Settings & Budget.
- Pick a provider (Anthropic, OpenAI, Azure OpenAI, Google, Mistral, AWS Bedrock, OpenRouter, Ollama, or any OpenAI-compatible endpoint). Providers declared in
nao_config.yamlare listed here alongside the ones configured in the UI. - Enter a project limit in dollars, a per-user limit, or both.
- Choose a reset period: day, week, or month.
- Save.
Providers without built-in prices
nao ships token prices for the models of the major providers. For providers it cannot price on its own - OpenAI-compatible endpoints, Ollama, Azure deployments, or a custom model id - the Budgets page shows No token prices known for this provider until you declare the costs yourself:- In Models, open the model’s custom model dialog and fill in its Token cost fields (USD per million tokens), or
- In
nao_config.yaml, add acostsblock to the model underllm.providers[].models. See Model costs.
Per-user limits
A project limit caps what the whole team can spend on a provider. A per-user limit caps what any one person can spend against that same provider, in the same period. The two are independent, and both are enforced:- A user who hits their own limit is blocked while everyone else keeps working.
- When the project limit is reached, everyone is blocked regardless of individual headroom.
Per-user limits are gated by the
user-budget feature on an Enterprise license. Without it, only the project limit applies. See Enterprise overview.Setting budgets in nao_config.yaml
Budgets can also be declared next to the provider in your project config, so they are version-controlled with the rest of your context:
limit and per_user_limit is required. period defaults to month. These budgets show up on the Budgets page like any other.
Member and group budgets
The project and per-user limits above cap spend per provider. Member and group budgets instead cap how much any single member can spend over a period, regardless of provider, and let you set that cap per user group. They live on the Advanced tab of the Budget page.Member and group budgets require an Enterprise license with the
user-budget feature. Admins see the Advanced tab without the license, but the editor is locked behind an upgrade prompt. The project-wide budget on the General tab is not gated.- The All Users group sets the default budget for every member.
- Any other group replaces that default for its members.
- A member’s personal budget always wins over their group budgets, and a member in several groups gets the most generous one.
How spend is tracked
For every LLM call, nao records the cost computed from the provider’s token pricing and attributes it to the provider’s current period. The Budgets page shows, per provider:- The configured limit and reset period
- Current-period spend
- Percentage of the limit used
Alerts and cutoff
Warnings and cutoffs are evaluated against whichever limit is closest to being reached - the project one or the user’s own.- 80% to 100% used: a banner appears at the top of the chat, warning that the limit is close. It names which budget is running out (“your Anthropic budget” or “your personal Anthropic budget”) and when it resets.
- 100% reached: nao blocks new LLM calls for that provider until the next reset. Someone who hits only their personal limit is blocked on their own; when the project limit is reached, everyone is.
- On project cutoff: nao emails the organization admin(s) so they can raise the limit or wait for the reset.
Unblocking
To resume traffic before the period resets, either:- Raise the limit (project or per-user) on the Budgets page, or
- Switch the default model to another provider that still has budget available.