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

# Overview

> Build, run, and deploy software that brings an app, agents, and MCP tools together in one Git repository.

ContextLayer is a platform for building software around the way you work. You write TypeScript, React Router, and SQL in your editor, with your coding agent.

Your software lives in a **slate**: an app, agents, MCP tools, and declarations of the resources they need, kept together in one Git repository. Develop the slate locally, then push to deploy it. The repository holds code and resource declarations; connected-account credentials, secret values, and database contents live outside Git.

## What is in a slate

A slate brings together several ways to use the same software:

* The [**app**](https://docs.usecontextlayer.com/core-concepts/slate/app.md) is the browser interface people use to view information and take actions. It is built with React Router.
* [**Agents**](https://docs.usecontextlayer.com/core-concepts/slate/agents.md) are named sets of standing instructions that run as hosted jobs, on demand or on a schedule.
* [**MCPs**](https://docs.usecontextlayer.com/core-concepts/slate/mcp.md) expose tools and views to clients that support the Model Context Protocol.
* [**Resources**](https://docs.usecontextlayer.com/core-concepts/resources) are the connections, databases, and secrets the app and agents use. Each app or agent declares its requirements in a `slate.json` file.

For example, a customer-support slate might have a browser app for reviewing requests, an agent that prepares a daily summary, and an MCP tool that formats request details supplied by another assistant.

## Connections, accounts, and assignments

These three terms describe different parts of connecting a slate to an external service:

* A **connection** declares what the slate needs, such as a Gmail connection named `inbox`.
* An **account** is a connected account, such as your Gmail account. It belongs to a person or organization independently of any slate.
* An **assignment** selects the account that satisfies a connection.

Declaring `inbox` says that the slate needs Gmail access. Assigning your connected Gmail account to `inbox` tells ContextLayer which account to use. See [Connections and assignments](https://docs.usecontextlayer.com/core-concepts/resources/connections-and-assignments.md) for how this works locally and after deployment.

## Owners and viewers

An **Owner** is the personal or organization identity that owns a slate or resource. A **viewer** is a person using the slate. Ownership and viewing access answer different questions: who manages the slate, and who can use it.

A declared resource's **mode** selects whose resource the hosted slate uses:

| Mode | Resource Owner | Example |
| - | - | - |
| `owner` | The slate's Owner | A shared database of customer requests. |
| `viewer` | The person using the slate | Each person's own Gmail account. |

One slate can combine both modes. Everyone can work with the same request database while each person uses their own inbox. See [Owners and viewers](https://docs.usecontextlayer.com/core-concepts/owners-and-viewers.md) for access rules and resource ownership.

## Where to go

> **[Quickstart](https://docs.usecontextlayer.com/quickstart.md)**
>
> Create a slate, run it locally, push it, open the deployed result.

> **[Core concepts](https://docs.usecontextlayer.com/core-concepts/slate)**
>
> Slates, Owners and viewers, accounts, and resources.

> **[Build an agent](https://docs.usecontextlayer.com/how-to/build-an-agent.md)**
>
> Write standing instructions, declare resources, and run a hosted job.

> **[API reference](https://docs.usecontextlayer.com/api-reference/slates/update-who-can-view-a-slate.md)**
>
> Inspect platform requests and responses, starting with slate visibility.

## Working with a coding agent

The same documentation is available to you and your coding agent:

* **Read a page as Markdown.** Add `.md` to its URL, as in [the quickstart's Markdown view](https://docs.usecontextlayer.com/quickstart.md).
* **Find relevant pages.** The [documentation index](https://docs.usecontextlayer.com/llms.txt) lists pages and descriptions.
* **Install the ContextLayer skill.** Give your agent the product's capabilities and workflows with the skills CLI:

```sh theme={null}
npx skills add https://docs.usecontextlayer.com
```


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