Skip to content

What an extension is

An extension adds pages, background work and agent routines to a space. Its data lives in the space’s tables, so people see and edit the same records in Matter, and agents work on them with Matter’s own tools.

Several examples on these pages come from Prospector, an extension that finds prospects and drafts outreach for a sales team.

  • Pages: web pages that Matter shows in its window. They’re listed in the sidebar under the space’s Extensions, and a page can show a live count beside its name.
  • A worker: a Node process that runs on a member’s computer once they’ve opened the extension there.
  • Tools: an MCP server that the extension’s routine runs get, so its agents can work through the extension’s own operations.
  • Routines: agent runs on a schedule or on demand. Each one is a prompt, written for a model you choose.
  • A run server (optional): a local HTTP server behind the pages, for extensions that need server-side code.

Each part is optional. Many extensions are only pages.

Everything runs on the member’s own computer, as that member. Matter serves each extension from a local proxy, on an origin of its own, and gives it the member’s identity.

Pages read and write through the data API, which works on the computer’s own synced copy of the workspace, the same way Matter’s own screens do:

  • Reads are local and live: they answer at once, and again whenever what they read changes.
  • Writes show at once on this computer and go to the server as Matter commands. Offline, they wait and land when the computer reconnects.
  • Tables over 10,000 rows aren’t kept on every computer. Reads of them go to the server through the same API, so the same code works for both.

The worker, tools and run server use the same API through the SDK, with a token Matter gives them.

An extension acts as the member using it. It can:

  • read and write the tables of its space;
  • run its routines and read their runs;
  • start agent threads for the member, and send messages in them;
  • send the member OS notifications.

Tasks, boards and docs aren’t in the data API. Routines and threads manage them with Matter’s own tools, the same ones every Matter agent has.

Because an extension acts as the member, Matter asks them once about each publisher (the member who made the extension) before opening their extensions. See Trust and security.

You build an extension as an ordinary web project: Vite and TypeScript are the default, but any build that produces static files works. The matter command that comes with Matter creates the extension, applies the tables it needs, generates types for them, shows your dev server inside Matter, and deploys.