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

# Connect external tools and integrations

> Connect GitHub, Gmail, Stripe, Linear, Slack, Notion, and Calendar to Dench, then run brokered tool calls with policy, logs, and approvals.

Dench brokers external tools through `dench tool`. Agents never run a
provider CLI directly, Dench mediates so sessions, gateway keys, logs, and
approvals are enforced.

<CardGroup cols={4}>
  <Card title="GitHub" icon="github" />

  <Card title="Gmail" icon="envelope" />

  <Card title="Stripe" icon="stripe" />

  <Card title="Linear" icon="list-check" />

  <Card title="Slack" icon="slack" />

  <Card title="Notion" icon="book" />

  <Card title="Calendar" icon="calendar" />

  <Card title="…and more" icon="plug" />
</CardGroup>

## Connect a tool

<Steps>
  <Step title="Check status">
    ```bash theme={null}
    dench apps --json
    dench tool status github --json
    ```
  </Step>

  <Step title="Start the connection">
    ```bash theme={null}
    dench tool connect github --json
    ```

    Share the returned link as Markdown, e.g. `[Connect GitHub](<url>)`, and ask
    the human to approve it.
  </Step>

  <Step title="Find the right tool">
    ```bash theme={null}
    dench tool search "create an issue" --toolkit github
    ```
  </Step>

  <Step title="Run it">
    ```bash theme={null}
    dench tool run GITHUB_LIST_REPOSITORIES --args '{"per_page":10}' --json
    ```
  </Step>
</Steps>

## Read-only vs gated

<Columns cols={2}>
  <Card title="Run directly" icon="bolt">
    Slugs containing `FETCH`, `GET`, `LIST`, `SEARCH`, `READ`, or `FIND` are
    read-only and run without a separate approval.
  </Card>

  <Card title="Needs approval" icon="shield-halved">
    Anything else returns `requiresApproval` with an `approvalId`. Get a human
    yes/no, then rerun with `--approval <id>`. See [Approvals](/docs/approvals).
  </Card>
</Columns>

<Warning>
  For email tools, never repeat OTP codes, passwords, tokens, or secrets from
  message bodies. Prefer sender, subject, date, and short snippets.
</Warning>

<Note>
  The same operations are available over the API under `/tools` and
  `/crm/people/search` and `/crm/companies/search`. Try them in the
  [API playground](/docs/api/overview).
</Note>
