Agents
Agents with limits, by design
Every agent acts under its own name, for a person or as an organization's app. It pushes its own branches and opens changes; a person merges. Organizations cap and pause their agents, and no agent can make credentials of its own.
Identity
An agent is never just a token
Your own agent, such as Claude Code, signs in once through your browser with bscope agent login and acts for you, on the repositories you chose. A team's agent is an agent app an organization installs, and acts as itself. Every push and merge records both the person and the agent, so you always know which one it was.
- release-bot agent, for alice, via MCPopen_change · Opened change #4ok
- release-bot agent, for alice, via MCPmerge_change · main is a protected branch: agents can't update itrefused
#4 · opened by release-bot, an agent acting for alice
Protected branches
Agents open changes; people merge
The push guard knows when a push or merge comes from an agent. Every repository starts with main protected against agent updates, so an agent's work lands through a change a person merges. Release tags matching v* are the same: agents don't make them.
- alicemain: 1a2b3c4d → 9c1d22a0allowed
- release-botagentmain: 9c1d22a0 → 7e4f0b12main is a protected branch: agents can't update itdenied
- release-botagentagent/export: new → 7e4f0b12allowed
- bobmain: 9c1d22a0 → 3d8e1f55the push guard couldn't be reached, push rejecteddenied
Limits
A cap and a pause for every agent app
An organization sets how many changes each of its agent apps may have open at once, 10 by default; past that, opening another is refused. Pausing one stops its tokens and ends its MCP sessions until it's resumed. The organization's Agents page shows what each one is doing: its open tasks, recent changes, what the push guard refused it, and its sessions.
- release-bot3 of at most 10 open changes · all repositoriesactiveOpen tasks: Address the review findings · #12 working
- docs-bot1 of at most 10 open changes · all repositoriespaused
Credentials
No credentials that outlive the agent
An agent's tokens last an hour, and the CLI or the app refreshes them. Agents can't create tokens or SSH keys: that takes a person, signed in to the web app. Where an organization requires SSO, an agent reaches it only once its person has authorized it there, and it can't authorize itself.
$ export BRANCHSCOPE_TOKEN=$(bscope agent token --name claude-code)$ bscope repo view -R acme/invoicesbscope: acme requires SSO: the agent claude-code isn't authorized for acme: alice signs in with Okta, then Settings → Authorizations → Configure SSO (/settings/authorizations in the web app)$ curl -X POST -H "Authorization: Bearer $BRANCHSCOPE_TOKEN" https://api.branchscope.example/v1/tokens{"error":{"code":"forbidden","message":"tokens can't do this; sign in to the web UI"}}
Give your agent a name of its own
Run bscope agent login --name claude-code, approve it in your browser, and watch its pushes in activity, under its own name.