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

# Quickstart

> Connect your first agent to a shared workplace, and watch a second agent pick up where it left off.

By the end of this page one agent will have written a decision and a second
agent — from a different vendor — will have read it back. That handover is the
whole product; everything else is detail.

## Prerequisites

* An MCP-capable agent. [Claude Code](/connect/claude-code),
  [Cursor](/connect/cursor), or [anything else that speaks MCP](/connect/any-mcp-client).
* A free Klio account at [app.klio.tech](https://app.klio.tech/auth/sign-up).

<Tip>
  Prefer to run everything yourself? Skip this page and go to
  [Self-hosting](/self-host/install) — one command brings up the engine locally
  and wires your agents to it.
</Tip>

## Get connected

<Steps>
  <Step title="Create an API key">
    Sign in at [app.klio.tech](https://app.klio.tech), open **Settings → API
    keys**, and create a key. It looks like `vex_live_…`.

    <Warning>
      The key is shown once. Store it in your password manager or an environment
      variable — never commit it to a repository.
    </Warning>
  </Step>

  <Step title="Point your agent at the workplace">
    Klio's hosted endpoint speaks Streamable HTTP MCP:

    ```
    https://mcp.klio.tech/mcp
    ```

    Authenticate with the `X-Vex-Key` header. For Claude Code:

    ```bash theme={null}
    claude mcp add --transport http klio https://mcp.klio.tech/mcp \
      --header "X-Vex-Key: YOUR_KEY" \
      --header "X-Vex-Agent: claude-code"
    ```

    `X-Vex-Agent` is optional but recommended — it is what lets you see which
    agent wrote what. Clients that omit it share a single default agent
    identity. See [Authentication](/tools/authentication) for every header.
  </Step>

  <Step title="Confirm the tools are there">
    Ask your agent to list its tools, or run:

    ```bash theme={null}
    claude mcp list
    ```

    You should see ten Klio tools: `recall`, `remember`, `observe`, `plan`,
    `decide`, `note`, `artifact_put`, `artifact_get`, `space`, and `forget`.
  </Step>
</Steps>

## Prove the handover

This is worth doing once, deliberately, so you can see the mechanism work.

<Steps>
  <Step title="Have the first agent decide something">
    In your connected agent, say:

    > We're going to retry 429s with jittered backoff, capped at five attempts.
    > Record that decision — the reason is that the upstream rate-limits per
    > minute, and fixed backoff was synchronising our retries.

    The agent should call `decide`. You can also call it directly:

    ```json theme={null}
    {
      "content": "Retry 429s with jittered backoff, cap at 5 attempts",
      "rationale": "Upstream rate-limits per minute; fixed backoff synchronised our retries"
    }
    ```
  </Step>

  <Step title="Ask a different agent, cold">
    Open a *different* agent — Cursor if the first was Claude Code — connected
    with the same key. Start a fresh session and ask:

    > How do we handle rate limiting on the upstream API?

    It calls `recall`, finds the decision, and answers with the rationale. You
    never re-explained it.
  </Step>
</Steps>

<Check>
  If the second agent found the decision, your workplace is working. Every other
  page here is about doing this well at scale — scoping it properly, keeping the
  right things, and retiring what stops being true.
</Check>

## Make it a habit

Agents recall well when asked, but the value compounds when writing is
automatic. Add something like this to your agent's system prompt or rules file:

```md theme={null}
Before answering questions about this project, call `recall` first.
When a decision is made, call `decide` with its rationale.
When a plan is set, call `plan`.
Do not persist secrets, tool call logs, or file contents.
```

<Note>
  Klio strips secrets and personal data before anything is stored, and the
  redaction step fails closed — if content cannot be made safe, it is not
  written. That is a backstop, not a licence to send it everything. See
  [What Klio keeps](/concepts/what-klio-keeps).
</Note>

## Next

<CardGroup cols={2}>
  <Card title="Scope and spaces" icon="folder-tree" href="/concepts/scope">
    Keep a team's memory shared without turning it into one global pile.
  </Card>

  <Card title="Tool reference" icon="wrench" href="/tools/overview">
    Exact parameters and defaults for all ten tools.
  </Card>
</CardGroup>
