Connections
Connect an agent to outside accounts and APIs, either with your own account as the builder or with each user's own account.
A connection links an agent to an outside account or API, such as GitHub, Stripe, Slack, or your own service. Once connected, the agent can use it as a tool.
There are two kinds of connectors. The difference is whose account the agent uses.
Builder connectors
You, the builder, connect an account once. It becomes a tool that every user of the agent shares.
Use a builder connector when the agent should act through your account. For example, an agent that looks up data from an API you pay for, using your key for everyone.
User connectors
Each user connects their own account. The agent acts on that user's behalf.
Use a user connector when the work belongs to the user. For example, a website deployer where each user connects their own GitHub and Cloudflare, so the agent deploys to their account, not yours. The same pattern fits a Stripe key, a Notion login, or any account that should stay personal.
You set up both kinds while building the agent. You decide, per tool, whether it uses your account or asks each user to connect their own.
Auth methods
Connections support the auth methods real APIs use:
- OAuth2, including your own OAuth apps, so a creator registers the app once and users just sign in.
- API keys and basic auth for simple cases.
- Signed requests such as HMAC, AWS SigV4, and JWT signing.
- Remote MCP servers, connected with a per-grant token.
How credentials stay safe
This is the rule that doesn't change:
Whoever owns the account enters the secret
Credentials go into the connection panel, in the owner's own session. They never go through the chat.
It's encrypted right away
Secrets are encrypted with a key-encryption-key and stored encrypted.
It's only used on the server
OAuth tokens are refreshed and requests are signed on the server. The browser never holds a live key while a task runs.
Every request an agent makes is also checked for SSRF first, so it can't be tricked into calling internal addresses it shouldn't.
For a builder, this means you're never in the loop for your users' setup. Anyone can connect their own accounts by themselves.