> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Apps

> Connect the services your team works in, and choose what each teammate may do in them.

Apps are the services your teammates work in: Gmail, GitHub, Stripe, Notion and more. You connect an account once,
then choose which teammates get it, read-only or read-write.

An account's key stays encrypted in Brigade and never reaches a computer. Every call goes through Brigade, which
checks the teammate's access, asks a person first when its policy says so, and logs the call.

## Connect an App

1. Open **Settings → Apps**, or **Connect apps** in the sidebar.
2. Pick an App and choose **Add**. Its sign-in opens in a new tab: sign in there and come back.
3. Choose who it is for. A personal App (Gmail, Notion, Linear…) starts as **Only in my threads**: teammates use it
   only in threads you start. Switch it to **In every thread** to share it with the workspace.
4. Give it to teammates: in the account's **Teammates** panel, or on a teammate's **Access** tab, pick **No access**,
   **Read only** or **Read and write** for each.

You can add several accounts of the same App, for example two Gmail inboxes, and give each to different teammates. In
the App's **Tools** section, an owner or admin can turn individual tools off.

## Built-in Apps

| App | What teammates do with it | Can start threads on |
| - | - | - |
| **Gmail** | Read, sort, draft and send email | An email received |
| **Google Calendar** | Read and manage events | An event created, changed or canceled; an invitation |
| **Google Drive, Docs, Sheets** | Find, read and edit files | |
| **Google Search Console, Google Analytics** | Read search and site traffic | |
| **GitHub** | Clone repositories, push branches, open and review pull requests | An issue or pull request opened, a review requested, a comment, a push |
| **Stripe** | Look up customers, payments and subscriptions | A payment received or failed, a subscription started or canceled, a dispute, a refund |
| **RevenueCat** | Manage in-app products, offerings and paywalls; read customers and revenue | |
| **Notion, Linear, Atlassian (Jira, Confluence)** | Read and update pages and issues | |
| **PostHog, Mixpanel** | Query product analytics | |
| **Ahrefs, DataForSEO** | Keyword and backlink research | |
| **Cloudflare, Google Cloud, Neon, Supabase** | Manage infrastructure and databases | |
| **Expo** | Build, submit and update mobile apps with EAS; search Expo's docs | |
| **Vercel** | Check projects, deployments and their logs; search Vercel's docs | |
| **Resend** | Send email from your product's domains | |
| **Replicate, OpenRouter** | Run image and language models | |
| **Email** | An email address for each teammate | |

Most Apps connect through the vendor's own sign-in and its official MCP server. A few things to know:

* **Stripe**: one connection reaches one Stripe account in one mode, live or sandbox. Connect a sandbox to try things
  out.
* **RevenueCat**: sign in with RevenueCat, or paste a secret API v2 key made in a
  project's settings, which reaches that one project with the permissions you gave it.
* **Replicate, OpenRouter, DataForSEO**: running a model or a request spends your balance with that vendor, so it
  counts as a write. OpenRouter's key lasts 7 days, with a spending cap you set.

## Read, write and approvals

Each call is a read or a write. A teammate with **Read only** access doesn't see the write tools, and its write calls
are refused.

For writes, each teammate has a policy, **Acts without approval (sending, editing, deleting)**, on its **Access**
tab:

* **Allow** (the default): it writes on its own.
* **Ask a person first**: each write waits in the thread, and under **Needs you**, until someone chooses **Allow** or
  **Deny**.
* **Never**: it can't write, even with read-write access.

This policy covers calls to Apps. On its own computer, a teammate runs commands, edits files and uses its browser
without asking, the way Claude Code or Codex does with its permissions set to run freely. Keep what it must not touch
off that computer, and give it Apps for actions that should wait for you.

> [!NOTE]
>
> With the [Email App](#the-email-app), a mailbox set to **Approve every email** holds each email a
> teammate sends from it for your yes, whatever its policy (by default, teammates reply on their
> own: see [Sending and approvals](/docs/email.md#sending-and-approvals)). You can edit the draft before
> it goes, or schedule it.

The member who started the thread, or an owner or admin, decides. Every call, allowed or not, is in the account's
**Call log**, with a link to its thread. On the teammate's **Limits** tab, **Write calls per connection** caps the
writes it makes each day: past it, the next write waits for an approval.

## GitHub

Connecting GitHub installs Brigade's GitHub App on your account or organization, on the repositories you pick. If you
aren't an owner of the organization, GitHub sends the request to its owners.

* Teammates push only to their own branches, named `brigade/…`, and propose changes to your other branches with a
  pull request. With **Read only**, they can clone but not push.
* Work a teammate hasn't pushed yet is backed up to `brigade/wip/…` when the thread goes quiet.
* They merge a pull request only when someone asks them to.

More in [Code, pull requests and previews](/docs/code-and-previews.md).

## Any MCP server

Choose **MCP server** in the catalog and paste its address (`https://…`). Brigade checks how it signs in:

* with the provider's own sign-in (OAuth),
* with an OAuth client you register (client ID and secret),
* with an API key, sent as a bearer token or in a header you name,
* or with no sign-in.

The server must be on a public HTTPS address. Unless a tool says it only reads, Brigade counts it as a write.

## Custom apps and webhooks

To start work when something happens in a service Brigade doesn't integrate, add a **Custom app**. Each webhook gets
its own address; every event posted to it starts a thread with the teammate and instructions you choose. To check
that events come from your sender, have Brigade generate a signing secret: the sender signs the body with
HMAC-SHA256 in an `X-Brigade-Signature: sha256=<hex>` header.

Custom apps only receive events: teammates can't call them back through Brigade. More in [Triggers](/docs/triggers.md).

## Triggers and routines

* A **trigger** starts a thread when something happens in an App (a failed payment, a new issue, an email) or a
  webhook arrives. See [Triggers](/docs/triggers.md).
* A **routine** starts a thread on a schedule. See [Routines](/docs/routines.md).

## The Email App

Turn on **Email** and each teammate gets an address of its own. Replies come back to the teammate that started the
conversation, not to your inbox. See [Email](/docs/email.md).

## When a teammate lacks access

A teammate that needs an App, a repository or a secret it can't reach doesn't stop to explain. It opens a ticket
under **Needs you** saying what it needs, and you give the access, connect the account or save the secret right in
the ticket (see [Needs you and tickets](/docs/needs-you.md)). When an account's sign-in expires, it shows **Reconnect** and the teammate asks its owner to reconnect
it.

A teammate also knows which Apps it could use. Ask it for something none of its accounts does ("track my Google
rankings", "check my Gmail") and it looks at the list: the accounts it has, the workspace's accounts it hasn't been
given, and the Apps nobody has connected for it yet. Then it suggests the one that fits, in a ticket where you give it
that account or connect the App. It sees their names only, not their tools, and only the accounts shared with the
workspace and those of the person it works for: never another member's own account, and no one's own account in a
thread several people write in.

## Secrets

For websites and services that aren't Apps, keep logins, API keys and database URLs in **Settings → Secrets**.

* **Website logins**: when a teammate signs in to the site in its browser, Brigade types the username and password,
  only on that site's own domain. The teammate never sees the password, and it never ends up in a thread. This works
  on cloud computers, where teammates have a browser of their own; not yet on your own computer.
* **API keys, databases, other secrets**: given to the teammate's commands in a private file, removed when the thread
  goes idle. The teammate can read them, so a command that prints one puts it in the thread. See
  [Security and your data](/docs/security.md#how-secrets-reach-a-teammate).

Share a secret with all teammates, or give it per teammate: **Can use, asks first** (someone mentions it in the
thread, or approves) or **Without asking**. Each use is recorded.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.