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

# Built-in tools

> How a Chat turn reaches past the model: web search and reading, a Python sandbox, memory, stored results, and the tools you add yourself.

Tools are how a turn in Cortex Chat reaches past the model: searching the web, reading a page, running a snippet of Python, reading one of your own files, remembering something, drawing a chart from your metrics, or calling an app you connected. Some are built in and always there. Others appear only because of something you set up, and some exist only where the deployment supports them.

There is no tools page inside the product to switch these on. A tool shows up as a row inside the answer while it works, and disappears into the result when it finishes. This page covers what is built in, why a tool is sometimes simply absent, what happens to a tool's result before the model sees it, the Python sandbox in detail, and where the tools you add yourself come from.

## What is built in

| Tool                              | What it does                                                                                 | More                                                      |
| --------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Web search                        | Looks things up on the live web                                                              | [Deep Research](/chat/deep-research) for a full cited run |
| Reading a web page                | Opens a page and extracts its text                                                           | [Deep Research](/chat/deep-research)                      |
| Python in a sandbox               | Runs a short snippet for arithmetic, data frames, plots or checking code                     | the section below                                         |
| Current time                      | Tells the model what time it is now                                                          |                                                           |
| Loading a skill                   | Pulls in the full text of a skill it decided to use                                          | [Skills in Chat](/chat/skills)                            |
| Reading a stored result           | Reads a result that was too large for the conversation                                       | the section below                                         |
| Searching a stored result         | Searches inside that stored result instead of re-reading it                                  | the section below                                         |
| Writing and reading a canvas      | Drafts a document beside the conversation                                                    | [Chat canvases](/chat/canvases)                           |
| Saving a memory                   | Stores a standing preference or fact, when memory is on and the chat is not temporary        | [Memory](/chat/memory)                                    |
| Forgetting a memory               | Removes one                                                                                  | [Memory](/chat/memory)                                    |
| Reading one of your Library files | Reads a file you own, and only a file you own                                                | [Library](/chat/library)                                  |
| Generating an image               | Draws a picture                                                                              | [Image generation](/chat/image-generation)                |
| Checking origin                   | Checks whether an attached photo or clip is authentic                                        | [Origin check](/chat/origin-check)                        |
| Business metrics                  | Queries a metric, investigates it, or writes a dashboard, once a metrics source is connected | [Cortex Data](/chat/data)                                 |

Searching your past chats exists as a capability behind an explicit consent, but that consent is not exposed anywhere in the product yet, so no chat can use it today.

<Note>
  Tools and reasoning are not metered. There is no tool quota and no tool meter on any plan, so a turn that needs six searches and two Python runs costs you nothing extra in allowances.
</Note>

## When a tool is not offered

A tool is only offered when it can actually run. Web search appears only where a search stack is configured. Python appears only where an executor exists. Business metrics appear only once a metrics source is connected.

Where one of those is missing, the tool is not registered at all. You do not get a broken tool or an error row, you simply never see it offered. If you expected a capability and the model says it cannot do it, the honest answer is usually that the tool is not available on your deployment rather than that the model refused.

## What happens to a tool result

Every result is handled the same way, whichever tool produced it, and in this order.

<Steps>
  <Step title="Anything that looks like a secret is removed">
    Before the model reads it.
  </Step>

  <Step title="A long result is shortened">
    It is truncated from the middle, keeping the beginning and the end, at around 24,000 characters.
  </Step>

  <Step title="A very long result is stored instead">
    Past roughly 64,000 characters the result never enters the conversation. It is stored as an **artifact**, the model is handed a short stub and an id, and it gets two tools for working with it: it can read the artifact and search it. That is how a huge page or a huge query result stays usable without flooding the thread.
  </Step>

  <Step title="Everything from outside is wrapped as untrusted content">
    Text inside a web page or a document cannot act as an instruction to the model.
  </Step>
</Steps>

A tool call ends in one of five ways: it succeeded, it errored, it timed out, it was refused, or it was interrupted. A row that produced nothing at all reads **No output.**

## The Python sandbox

Chat's Python tool is a snippet sandbox, not a build machine. It has **256 MiB** of memory, **no network**, and a few minutes of wall clock. It is the right tool for arithmetic, a data frame, a plot or checking a piece of code, and the wrong one for installing packages or building a project.

Two practical rules:

* **Print what you want to see.** The last value is discarded, so a bare expression on the final line gets you nothing.
* **Files the run writes to its `outputs/` folder are collected into your Library** when the run finishes. Direct files only, at most 10 files and 10 MiB in total. A run that failed collects nothing.

If you need a shell, a repository and a real workspace, that is [Cortex Code](/code/index), not a chat.

## Skills are loaded, not always on

Skills are recipes the model can pull in. It does not carry them all at once: it sees a one-line index of the skills available to it, and fetches the full body of one only when it decides to use it. That is why a skill can change how an answer is written without you naming it in the prompt. Typing `/` in the composer lists the skills turned on for Chat.

## Tools you add yourself

Everything above is built in. Three more sources of tools are yours to set up, and each has its own page.

<CardGroup cols={2}>
  <Card title="Connectors" icon="plug" href="/chat/plugins">
    Connect an app and choose whether its tools reach Chat, Bot, or both.
  </Card>

  <Card title="MCP servers" icon="server" href="/chat/mcp-servers">
    Attach a remote server and its tools join the turn alongside the built-in ones.
  </Card>

  <Card title="Page tools" icon="window-maximize" href="/chat/page-tools">
    Tools a web page declares, each one granted or denied by you.
  </Card>

  <Card title="Skills in Chat" icon="book-sparkles" href="/chat/skills">
    The bundled recipes, turning one on, and writing your own.
  </Card>
</CardGroup>

## Related

* [How Chat works](/chat/how-it-works) - how a turn is assembled and how tools enter it.
* [Library](/chat/library) - where stored results and sandbox outputs end up.
* [Deep Research](/chat/deep-research) - a research run, which replaces the ordinary tool loop.
* [Scheduled tasks](/chat/scheduled-tasks) - runs that get no tools at all.
* [Models and thinking](/chat/models) - the chip where thinking and Deep Research are switched.
