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

# Built-in tools

> Every tool an agent gets without registering a toolset.

Built-in tools ship with the platform. They are not granted by default;
[roles](/model/roles) select them like any other tool:

* `tool:builtin:<namespace>.*` grants a whole namespace, including tools added later.
* `tool:builtin:<namespace>.<name>` grants exactly one tool.
* `tool:*` grants everything the agent is eligible for.

Almost every namespace below mirrors a public API resource, so an agent can do
the same things your application can, within whatever its roles allow.

## Discovery

The model doesn't get every tool schema up front. It starts with a small
always-loaded set plus one catalog tool:

| Tool | Does |
| - | - |
| `tool_search` | Searches the tool catalog for a goal. The tools it returns become callable by name for the rest of the thread. |

`tool_search` is always available and can't add access: it only ever returns
tools the turn already allows.

## Agents — `tool:builtin:agents.*`

| Tool | Does |
| - | - |
| `agents.create` | Create an agent under the caller's identity and authority. |
| `agents.list` | Discover workspace agents. |
| `agents.get` | Read one workspace agent. |
| `agents.update` | Update one agent's metadata, profile, or budget. |
| `agents.delete` | Delete one agent. |
| `agents.ask` | Ask another workspace agent a question and wait for its answer. |
| `agents.models.list` | List the concrete models one agent may use. |
| `agents.permissions.get` | Read one agent's effective permission snapshot. |

## Profiles — `tool:builtin:profiles.*`

| Tool | Does |
| - | - |
| `profiles.list` | List workspace profiles. |
| `profiles.create` | Create a profile, narrowed to the caller's own access. |
| `profiles.get` | Read one profile. |
| `profiles.update` | Update one profile's configuration. |
| `profiles.delete` | Delete one profile. |

## Roles — `tool:builtin:roles.*`

| Tool | Does |
| - | - |
| `roles.list` | Discover workspace roles. |
| `roles.create` | Create a role, covered by the caller's own authority. |
| `roles.get` | Read one role. |
| `roles.update` | Update one role. Denies may be added, never removed. |
| `roles.delete` | Delete one role. |

## Identities — `tool:builtin:identities.*`

| Tool | Does |
| - | - |
| `identities.list` | Browse the workspace identity directory. |
| `identities.disable` | Stop new work for every agent under one identity. |
| `identities.enable` | Undo a disable. |

## Toolsets — `tool:builtin:toolsets.*`

| Tool | Does |
| - | - |
| `toolsets.list` | List workspace toolsets. |
| `toolsets.create` | Register an MCP or client toolset. |
| `toolsets.get` | Read one toolset. |
| `toolsets.update` | Update one toolset. |
| `toolsets.delete` | Delete one toolset. |
| `toolsets.probe` | Recheck one MCP toolset's authentication surface. |
| `toolsets.oauth.get` | Read one toolset's safe OAuth client configuration. |
| `toolsets.oauth.delete` | Delete one toolset's OAuth client configuration. |

## Connections — `tool:builtin:connections.*`

| Tool | Does |
| - | - |
| `connections.list` | List ready connections for the toolsets in scope. |
| `connections.connect` | Start an authorization flow for a toolset namespace and wait for a person to approve it. |
| `connections.select` | Pin which connection a namespace uses for the rest of the thread. |
| `connections.get` | Read one connection's safe metadata. |
| `connections.revoke` | Revoke one connection. |

## Threads — `tool:builtin:thread.*`

The namespace is singular.

| Tool | Does |
| - | - |
| `thread.list` | List the caller agent's recent threads. |
| `thread.get` | Read one caller-owned thread and its paginated transcript. |
| `thread.create` | Spawn a non-blocking sibling thread on the caller's own agent. |
| `thread.wait` | Wait for caller-owned threads to finish. |

## Memory — `tool:builtin:memory.*`

| Tool | Does |
| - | - |
| `memory.read` | Read one entry from the agent or workspace namespace. |
| `memory.write` | Write an entry with `expectedVersion` compare-and-set. |
| `memory.list` | List keys under an optional prefix. |
| `memory.delete` | Delete one entry. |

## Artifacts — `tool:builtin:artifacts.*`

| Tool | Does |
| - | - |
| `artifacts.write` | Store a durable agent-scoped file. |
| `artifacts.read` | Read one artifact. |
| `artifacts.list` | List artifacts. |
| `artifacts.delete` | Delete one artifact. |
| `artifacts.publish` | Publish an artifact to a public URL. |
| `artifacts.unpublish` | Revoke that URL. |

## Sites — `tool:builtin:sites.*`

| Tool | Does |
| - | - |
| `sites.publish` | Publish a static site. |
| `sites.get` | Read one published site. |
| `sites.unpublish` | Take a site down. |

## One-tool namespaces

Each of these is its own namespace, so `tool:builtin:web.*` does not include
`http.request`.

| Tool | Grant with | Does |
| - | - | - |
| `web.search` | `tool:builtin:web.*` | Search the live web. |
| `web.fetch` | `tool:builtin:web.*` | Fetch and read one page. |
| `http.request` | `tool:builtin:http.*` | Make one direct HTTP request. |
| `image.generate` | `tool:builtin:image.*` | Generate one private image. |
| `results.read` | `tool:builtin:results.*` | Read a bounded byte range out of a stored tool result. |
| `models.list` | `tool:builtin:models.list` | List the model catalog. |

## Schedules — `tool:builtin:schedules.*`

| Tool | Does |
| - | - |
| `schedules.create` | Create a one-off or recurring schedule on the caller agent. |
| `schedules.list` | List the caller agent's schedules. |
| `schedules.get` | Read one schedule. |
| `schedules.update` | Update or pause one schedule. |
| `schedules.delete` | Delete one schedule. |

## Feeds — `tool:builtin:feeds.*`

| Tool | Does |
| - | - |
| `feeds.create` | Create a workspace feed. |
| `feeds.list` | Discover feeds. |
| `feeds.get` | Read one feed's metadata. |
| `feeds.write` | Append messages. |
| `feeds.read` | Read a sequence range. |
| `feeds.archive` | Close a feed for writing. |

## Subscriptions — `tool:builtin:subscriptions.*`

| Tool | Does |
| - | - |
| `subscriptions.create` | Subscribe the caller agent to a feed. |
| `subscriptions.list` | List the caller agent's subscriptions. |
| `subscriptions.get` | Read one subscription. |
| `subscriptions.update` | Update or pause one subscription. |
| `subscriptions.delete` | Delete one subscription. |
| `subscriptions.evaluations` | Read one subscription's evaluation history. |

## Sandbox — `tool:builtin:sandbox.*`

<Note>
  **Coming soon.** This capability is part of where Matrices is heading, but its
  public API is not generally available yet. The shapes shown here describe the
  intended contract and may change before release.
</Note>

| Tool | Does |
| - | - |
| `sandbox.exec` | Run a command in the agent's persistent sandbox. |
| `sandbox.process` | Interact with a running sandbox process. |
| `sandbox.read_file` | Read a file from the sandbox. |
| `sandbox.write_file` | Write a file in the sandbox. |
| `sandbox.edit_file` | Edit a file in the sandbox. |
| `sandbox.expose_port` | Expose a listening sandbox port. |

## Provider toolsets

Managed toolsets (Gmail, Calendar, Drive, Slack, GitHub, Linear, Notion,
PostHog, and friends) take a namespace of their own and are granted exactly the
same way, with `tool:managed:gmail.*` or `tool:managed:gmail.send_email`. Their tool lists change
as providers change, so they are not enumerated here. They are code-owned, so
they do not appear in `GET /v1/toolsets`, which lists only the toolsets your
workspace registered. To see what one agent actually has, call
`GET /v1/agents/{agentId}/effective-permissions`; inside a thread, the model
finds them with `tool_search`. Each one needs a
[connection](/model/connections) as well as a role.


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