Copy as Markdown

Open esc Close

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.

Reviewed

Behind every surface in Crusible is a provider: 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 the record, meaning whose store is the authoritative copy of what the surface shows.

First-party. 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.

Connected. 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 agents 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.

Bridged, 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 origin badge, 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 (MCP). 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.

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 compute provider 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 graduation path. 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.