briqbriq
Concepts

Agents, keys and policy

What an agent can do, how it signs in, and who sets its policy.

An agent is anything that calls briq for a team. The dashboard's Agents page lists them, and each has a policy, checked before any machine is created. Two kinds, treated the same:

Connected clientAPI key
ForA client on a machine with a browser: Claude Code, Cursor, VS Code, Codex, Claude…CI, containers, scripts, the REST API
HowAdd the MCP URL; the client signs in through your browser and you approve itCreate it on the Agents page, send Authorization: Bearer bq_live_…
SecretTokens the client keeps and refreshes; never shown to the modelThe key, shown once
PolicySet on the approval pageSet at creation

Both are editable and revocable on the Agents page; revoking takes effect immediately. A connected client lasts as long as the person who approved it stays in the team.

Each agent shows the client that last used it (Claude Code 2.1.278, Cursor, curl 8.7.1), and the audit log records it on every row.

The policy

FieldDefaultEffect
maxConcurrentBriqs5Live briqs the agent may have at once
dailySpendCapCents1000Daily spend. Checked before create; the agent's briqs stop when it is crossed, and sleep again from the next UTC day
allowedSizesnano, smallThe team's plan must allow them too
allowedRegistriesdocker.io, ghcr.io, quay.ioImage hosts allowed (docker.io covers unqualified images)
maxSleep"never"The longest sleep the agent may give a briq, as a string ("1d"). "never" sets no bound of its own: the environment's longest window and the plan (always on is Pro and above) still apply
expiresAtnoneThe agent is rejected after this time

A key is the team's: it sees and acts on everything in the team, every briq, stack, endpoint, the audit log, the list of keys and agents, under the budget its policy sets. The policy bounds what the key spends, not what it reaches; for a narrower reach, make a separate team. The one thing a key never does is manage credentials: only a person signed in to the dashboard creates, edits or revokes keys and connected clients, and an API key calling those routes gets 403 forbidden. So an agent cannot raise its own budget, mint itself a wider key, or cut off the team's other agents. A policy is also bounded by the plan of the person setting it (402 policy_violation past it), and it applies to a start as to a create: a key capped at one briq cannot keep restarting others. Keys outlive the person who created them: removing a member keeps the team's keys and lists the ones they created, for the team to rotate if it wants to. See Budgets.

Each key and each connected client is one of the team's agents; the plan sets how many a team may have.

Errors

CodeHTTPWhen
policy_violation402Size, registry or sleep not allowed. The message says the longest sleep to send
quota_exceeded402Concurrency limit or daily cap reached
payment_required402The team is out of credits
plan_limit403The team's plan does not allow it: a size, more disk, an always-on briq, another agent, another member

Over MCP the same message comes back as a tool error. briq_quota (or GET /v1/quota) reports what is left, so a model can plan instead of retrying.

On this page

Free to try

Let your agent try it, on us.

Every new account starts with €10 of credits. No card.

Connect your agent

How can we help?

Message to the briq team
hello@briq.cloud