Why the App instead of a PAT?
Every axis: the App is strictly better.
What the App can and cannot access
Requested permissions (only these):
Everything else — No access. The App cannot:
- Read or modify Issues.
- Read or trigger GitHub Actions workflows.
- Read Actions secrets, environment secrets, or Dependabot secrets.
- Modify repo settings, branch protection, or team access.
- Read deploy keys, webhooks configuration, or repository OAuth apps.
- Access any repo you did not grant during install.
- Access any account or org that has not installed the App.
Installing
1
Open Connect a repo
Dashboard → Connect a repo.
2
Click Connect with GitHub
You’ll be redirected to
github.com/apps/agentbees/installations/new with a signed state
parameter that binds the round-trip back to your session.3
Pick the org or account
You can install on any org you administer, or on your personal account.
4
Grant repos
Pick Only select repositories (recommended) and grant specifically the repos you want
AgentBees to work on. Or grant All repositories for one org — including any repos you add in
the future.
5
Complete installation on GitHub
Click Install (or Save if updating an existing install).
6
Pick a repo in AgentBees
GitHub redirects you back. AgentBees fetches the list of repos you granted (using the
newly-minted installation), you click Pick on one, and the project is created bound to that
repo.
What happens at task dispatch time
When you start a task on a project connected via the App:- AgentBees signs a 10-minute App JWT (RS256) with the App’s private key held on the server.
- It exchanges that JWT for an installation access token scoped to
repositories: [owner/name](the one repo the task is for) with the four permissions above. - That token — TTL ≈ 1 hour — is handed to the ephemeral workspace pod as the git credential.
- The token is never persisted on our side. Every dispatch mints a fresh one; nothing is written back to the DB.
Managing the installation
You can adjust the App from either side. On AgentBees: Connect a repo → Existing connections section → click Disconnect on the AgentBees GitHub App row. This:- Revokes the connection on our side immediately (
revoked_atset; dispatch stops minting tokens for it). - Opens
github.com/settings/installationsin a new tab so you can also uninstall on GitHub.
github.com/settings/installations → click the AgentBees
row. From there you can:
- Configure — add or remove specific repos from the grant.
- Suspend — pause the App without uninstalling. Our webhook flips the connection to revoked; unsuspending revives it.
- Uninstall — remove the App entirely. Our webhook marks every connection under that installation revoked.
What happens when you disconnect
Immediately, on the AgentBees side:- Any project connected via that installation shows a “This project’s GitHub repo is disconnected” banner.
- The New task, Merge, and Run pipeline buttons disable (visually greyed out; hover shows an explainer tooltip).
- API endpoints — task create, send prompt, merge, push, pipeline create —
return 409
repo_disconnected. Nothing silently fails in the pod. - Existing task history stays fully visible in read-only mode. Cancel, discard, and share still work (they don’t need git).
Multi-org installs
You can install the App on more than one GitHub org — each install is a separate row in the Existing connections list, with its own installation ID. Each project is linked to exactly one installation. To connect a repo owned by a different org, just click Connect with GitHub again from Connect a repo — you’ll pick the new org from GitHub’s installer list.Rotation
If you (or we) rotate the App’s private key, existing installations continue to work — the key material lives on our server and rotates independently of what’s stored on GitHub or on your side. There is no action required on your end for a rotation.Enterprise / self-hosted GitHub
If you’re on an isolated tenant with a self-hosted GitHub Enterprise Server, the App can be registered against your GHES instance instead ofgithub.com. See
the enterprise-tenant runbook for the
GITHUB_APP_BASE_URL override.
Enterprise customers may also register their own App under their own
GitHub org and hand us the App ID + private key — that model gives your
security team full control over the key material, and lets you revoke
AgentBees at any time by uninstalling on GitHub. See the same runbook
under “Custody models”.