See the complete route index at https://crusible.dev/llms.txt before following links.

# Every surface has a provider

Behind every surface is a provider that holds its data, and connecting a tool you already use changes one surface and nothing else in your workspace.

<!-- https://crusible.dev/docs/concepts/every-surface-has-a-provider/ · doctype: explanation · role: both · reviewed: 2026-09-05 -->


Behind every <a class="docs-term" href="/docs/reference/glossary/#surface">surface</a> in Crusible is a
<a class="docs-term" href="/docs/reference/glossary/#provider">provider</a>: the thing that holds the data
and does the work the surface shows. Docs shows documents, and something holds
those documents. Review shows a pull request, and something hosts that pull
request. The surface is the view; the provider is what it is a view of.

## Two provider modes, and one thing that is not a provider

A provider runs in one of two modes, and there is a third arrangement that looks
like a provider from a distance and is not one. The question that separates all
three is the same: who holds <a class="docs-term" href="/docs/reference/glossary/#record">the record</a>,
meaning whose store is the authoritative copy of what the surface shows.

**<a class="docs-term" href="/docs/reference/glossary/#first-party">First-party</a>.** Crusible provides
the surface and the service behind it, and Crusible holds the record. The
Terminal on a worktree channel is first-party: the shell is a live shell on a
machine Crusible provisioned, and there is no other tool involved.

**<a class="docs-term" href="/docs/reference/glossary/#connected">Connected</a>.** A tool you already use
provides the data, and that tool holds the record. With Notion connected as the
provider behind Docs, Notion keeps the pages. The Docs surface renders them, and
<a class="docs-term" href="/docs/reference/glossary/#agent">agents</a> operate them through Notion, so an
edit an agent proposes is a Notion edit, and Notion shows it. The same holds for GitHub behind Review or Sentry behind Dashboards: the surface
is Crusible's, the data is the tool's, and it stays the tool's.

**<a class="docs-term" href="/docs/reference/glossary/#bridged">Bridged</a>, which is not a provider.**
A bridge carries conversation, not a surface. A channel bridged from Slack or
Teams relays messages both ways, every relayed message wears an
<a class="docs-term" href="/docs/reference/glossary/#origin-badge">origin badge</a>, and the record stays
in Crusible. A bridged channel says so in its description, in the product's own
words: *"Mirrored from Slack #oncall — pages land here too"*. The conversation
is the one thing in Crusible that is never swappable, so nothing stands behind
it the way a provider stands behind a surface. Keep the two words apart: a
connected tool holds its record, and a bridged one does not.

## What connecting means for a tool you already use

Many tools speak the Model Context Protocol
(<a class="docs-term" href="/docs/reference/glossary/#mcp">MCP</a>). For a tool that does, MCP is the
route by which the surface reads it and agents act in it. Tools that do not
speak it connect over their own API. Either way, what it means for you is the
same three things.

The tool keeps working the way it works today. Your team's issues, pages and
alerts stay where they are, with the permissions, the search and the workflows
the tool already gives you.

Agents in your channels can now do their work in that tool. Forge can read the
issue it is fixing, and Scribe can propose the doc change. What each does there
is recorded there, because the tool holds the record of what the surface
shows.

And the surface shows it to you in the channel, beside the conversation about it,
so the "go look at this" gesture works for a page in Notion the same way it works
for a diff on a worktree.

> **Note.** 
Connecting a provider does not change your workspace, and neither does switching
or disconnecting one. Each changes one surface. Your channels, your
conversations, your agent roster and your permissions are identical before and
after, and the tool still holds everything it held, connected or not. Nothing
moves.



That is the whole of the invariant, and it is worth reading twice, because the
usual words for this act suggest the opposite. Crusible connects to a tool. It
does not take a copy of the tool's data and it does not take the tool's place.
If the product ever copies something, the page for that provider says exactly
what and why; otherwise the verb is connect.

The word has one collision worth knowing. A
<a class="docs-term" href="/docs/reference/glossary/#compute-provider">compute provider</a> is the
machines your workspace runs on, and it is a different thing from the provider
behind a surface. This page is about the second.

## The graduation path

A surface's provider can be switched, in either direction, and the switch is
called the <a class="docs-term" href="/docs/reference/glossary/#graduation-path">graduation path</a>.
Neither direction is up.

A small team often starts on first-party surfaces, because they are already
there, and connects a specialist tool when the work outgrows them. An established
team usually starts the other way round: it connects the tools it has, and adopts
a first-party surface one at a time, where having the surface tightly coupled to
the channel is worth more than the depth the specialist offers. Both are ordinary.
Both are reversible.

A first-party surface is cohesive with the channel, the
agents and the conversation, because it was built for them. It is not deeper than
the specialist in the specialist's own domain, and where that depth is what your
work needs, the specialist is the right provider. Switching the provider changes
one surface and leaves everything else where it was, so the choice is never a
commitment you cannot walk back.

**Planned.** Not every surface has a first-party provider yet. Where one does
not exist, the connected provider is how that surface runs today.


## What this means for you

A surface's provider is worth knowing before you trust what it shows.
**Planned.** The surface does not yet show which provider is behind
it.
 If the provider is connected, the tool holds the record, and the surface is a
faithful view of it. If the provider is first-party, Crusible holds it.

The tools your team already uses can connect with the invariant intact: nothing
about the workspace changes, and nothing about the tool changes either. When the
balance shifts, the provider switches. That is one surface, and it is the same
act in either direction.

- [Surfaces answer to the conversation](https://crusible.dev/docs/concepts/surfaces-answer-to-the-conversation/) — A surface opens because the conversation pointed at something, steps aside when you are done, and that is why the header shows chips and not tabs.- [Channels are units of work](https://crusible.dev/docs/concepts/channels-are-units-of-work/) — A channel is a feature, an incident, a research question or a machine, with a state, a branch, agents and surfaces of its own.- [Connect a provider](https://crusible.dev/docs/admin/connect-a-provider/) — Where an outside tool is connected to the surface it backs, how it is authorised, and what settles the writes agents may make to it.

