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

# Introduction

> What Peeve exposes to developers, and which surface to reach for.

Peeve is an in-product agent. It lives inside your web app, and when a user asks
for something it moves a real cursor to show them — navigating, filling, and
stopping at the point of any write so the person takes the committing action
themselves.

This documentation covers what Peeve exposes to you as a developer. There are
four surfaces, and they solve different problems.

<CardGroup cols={2}>
  <Card title="The widget" icon="window" href="/widget/install">
    A script tag on your pages. Runs the agent, escalation to a human, surveys
    and lead qualification. Authenticated with a publishable key.
  </Card>

  <Card title="The server API" icon="server" href="/api/overview">
    Push your users to Peeve, and control the kill switch. Backend only,
    authenticated with a secret key.
  </Card>

  <Card title="The MCP server" icon="plug" href="/mcp/overview">
    A live Model Context Protocol endpoint that external assistants connect to
    in order to discover what your product can do.
  </Card>

  <Card title="Agent artifacts" icon="file-code" href="/artifacts/overview">
    Static files — `llms.txt`, `AGENTS.md`, `server-card.json`, `mcp.json` —
    that let an agent discover your product without connecting to anything.
  </Card>
</CardGroup>

## Two kinds of key, and the difference matters

Everything here depends on getting this right.

|                      | Publishable `pk_…`                    | Secret `sk_…`                  |
| -------------------- | ------------------------------------- | ------------------------------ |
| Where it belongs     | In your page source                   | On your server, only           |
| What controls access | The request origin                    | Possession of the key          |
| Reaches              | The widget endpoints, agent artifacts | `/v1/users`, `/api/killswitch` |

A publishable key is **public by construction** — it ships in your page and
anyone can read it. That is fine, and expected. What stops it being abused is
the origin check plus per-plan rate limits.

A secret key is a bearer credential with full workspace authority. It never
belongs in a browser, in client-side code, or in a repository.

<Warning>
  Peeve shows every key exactly once, at creation. Secret keys are stored
  hashed and cannot be recovered — rotate instead. Publishable keys are stored
  in the clear, because they are public by design.
</Warning>

Read [Authentication](/authentication/overview) before you write any
integration code.

## Base URL

```
https://api.peeve.ai
```

The widget script is served from `https://cdn.peeve.ai/widget.js`.

## What Peeve will not do

Being clear about the limits up front saves you from designing around
capabilities that do not exist.

<AccordionGroup>
  <Accordion title="The MCP server never executes a write">
    `tools/call` returns a grounded guide — where a capability lives and how to
    complete it. It does not perform the action. This is a deliberate security
    decision, not a gap. See [the MCP overview](/mcp/overview).
  </Accordion>

  <Accordion title="The agent never commits a write without confirmation">
    Any click on a control your page marks as committing is rewritten
    server-side into a confirmation step. Each write needs its own approval; an
    earlier confirmation never covers a later one. No instruction in page text
    or a tool result can waive this.
  </Accordion>

  <Accordion title="Surveys and telemetry are collected by the widget only">
    NPS and CSAT responses, page signals and session telemetry come from real
    end users through the widget. There is no API for submitting them, and that
    is deliberate — an endpoint that let scores be posted directly would make
    the resulting data meaningless.
  </Accordion>

  <Accordion title="Some features need a specific plan">
    The MCP server, agent artifacts, lead capture and meeting booking all
    require Growth or above. See [Plans and gating](/reference/plans).
  </Accordion>
</AccordionGroup>
