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

# Capy

> Install Probe for Capy like any coding agent: capture the threads you start, and add Probe inside Capy.

[Capy](https://capy.ai) installs like any other coding agent, with one difference: its agent loop runs on Capy's servers, and its tools run either on your computer (a thread on **This Mac**) or on a Capy machine in the cloud. It runs no Probe hook and keeps no transcript on your computer, so Probe meets it in two places:

* **Inside Capy**, the agent reads and records Probe work itself: the Probe MCP server for search, the `probe` CLI and SDK for writes and instrumented runs (your computer's, for a thread on This Mac), and a small skills bundle that says how. Capy has no command for its own settings, so you add them once, as one plugin.
* **On your computer**, Probe copies the Capy threads you start into Probe as sessions, every 10 minutes, through Capy's API.

## Install

```bash theme={null}
npx probe-research install --agent capy
```

Or run `npx probe-research install` and tick **Capy**: it is listed when the Capy app is on your computer. If you use Capy only in the browser, there is nothing on disk for the picker to find, so name it with `--agent capy`. After the review screen the installer asks for a Capy API key (Capy **Settings > API**; give it an expiry) and which Capy projects to capture, then connects capture and ends with the one step below in Capy's own settings. Leave the key empty to skip capture for now; `probe capy setup` prints the step again.

Without a terminal, set `CAPY_API_KEY` and name the projects: `npx probe-research install --agent capy --yes --capture --capy-project "<name>"`. The run exits 1 if capture could not connect.

> [!NOTE]
>
> Capy has no hooks and no status line, so there is no `/probe` switch, no Probe daemon and no Probe footer in Capy. `probe session` and `probe ask` do not work there: the agent checks prior work with the MCP `search` tool. Capy's API shares your prompts, the agent's replies and a one-line summary per tool call, never tool output, file diffs or the model's reasoning, so a Capy session in Probe is thinner than a Claude Code one.

## Set Probe up inside Capy

**1. Add the Probe plugin**

On a Mac with the Capy app, the installer's last page offers **Open Capy**: it opens Capy's **Add from GitHub** box with Probe's plugin filled in. Click **Continue**, choose **Only me**, **Add plugin**, then **Connect** its `probe` server and approve in Probe.

Anywhere else, or later: in Capy, **Settings > MCP & plugins > Add > From GitHub repository**, and paste:

```
https://github.com/prbe-ai/research-os-agent/tree/main/capy
```

The plugin carries Probe's MCP server and the skills (`probe-capy`, `track-work`, `instrument-code`, `plan-research-review`, `edit-notes`, `audit-team-note`). Capy shows every skill's description to the agent, so it reads `probe-capy` at the start of ML work on its own.

> [!WARNING]
>
> Choose **Only me**, not Organization. With Organization, Capy signs the server in once for everyone, so every teammate's thread reads Probe as whoever clicked Connect.

If Capy says the key `probe` is already taken, you added Probe's server by hand before: remove that server, then add the plugin.

**2. Threads in Capy's cloud: put the CLI on the Capy machine**

Only for threads on Capy's cloud machines. A thread on **This Mac** uses your computer's `probe`, which the installer set up.

In the project's **Environment variables > Personal** tab. Personal, so your token never reaches a teammate's thread or a PR review.

| Name | Value |
| - | - |
| `PROBE_TOKEN` | A Probe token. On your own computer: `probe token create --name capy --scope read --scope write`. No `delete` scope: the agent never needs it |
| `PROBE_CAPY` | `1`. Marks the CLI's calls and telemetry as coming from Capy |

Then add the CLI to the machine recipe, in **Dev environment** or a committed `.capy/setup.json`:

```json .capy/setup.json theme={null}
{
  "$schema": "https://api.capy.ai/schemas/setup.v1.json",
  "format_version": 1,
  "scripts": {
    "initialize": "uv tool install probe-research",
    "refresh": "uv tool upgrade probe-research"
  }
}
```

Code that calls the SDK (`import probe`) also needs `probe-research` in its own environment (`uv add probe-research`). The CLI tool install above is isolated.

> **Self-hosted Probe, or without the plugin**
>
> The plugin's server is the hosted Probe. For your own deployment, add the parts by hand: in **Settings > MCP & plugins**, add an MCP server named `probe` (Streamable HTTP, your deployment's MCP URL), then **Connect**; and install the skills into your repository:
>
> ```bash theme={null}
> npx skills add https://github.com/prbe-ai/research-os-agent/tree/main/capy/skills --agent universal
> ```
>
> `probe capy setup` prints these for your deployment.

Inside Capy, `probe doctor` reports only what applies there: the CLI version, whether `PROBE_TOKEN` signs in, and where capture happens.

## Capture your Capy threads

This part runs on your own computer. You need:

* The `probe` CLI, version 0.245.0 or later, installed for good: `uv tool install probe-research` (the installer does this). The timer runs that `probe`, so a throwaway `npx` copy cannot host it.
* A Capy API key, from Capy **Settings > API**. Give it an expiry.
* To be signed in to Probe (`probe wizard --action login`) with the same email your Capy account uses.

Then:

```bash theme={null}
probe capy connect --project "<your Capy project name>"
```

The installer runs the same steps when you pick Capy.

It asks for the key with a hidden prompt, or reads `$CAPY_API_KEY`, or takes `--api-key-stdin`. Never type the key as an argument, where shell history keeps it. It then finds your Capy user by your Probe account's email, asks you to approve capture once in the browser (or checks that the approval it already has belongs to your team), and installs a timer that syncs every 10 minutes: systemd on Linux, launchd on macOS, and anywhere else it prints a crontab line to add and syncs once right away. The first sync starts in the background, and a long history can take a while.

* **Only threads you start are captured**, in the projects you named. A Capy key can read your teammates' threads too, and capturing those would need their consent. Messages teammates add to **your** threads are part of them, and are captured.
* **Captured:** your prompts, the agent's replies, attachment names and a one-line summary per tool call. **Not captured:** tool output, file contents, diffs, the model's reasoning. Likely credentials are replaced before upload, which is a filter, not a guarantee: keep live credentials out of prompts.
* **One thread is one Probe session.** Each subagent is its own session, linked to its thread. A thread quiet for a day, or archived, is finished. New messages reopen it.
* **Your computer being off loses nothing:** the next sync catches up. On Linux, user timers stop when you log out unless lingering is on (`loginctl enable-linger`), and `connect` tells you when it is off.

```bash theme={null}
probe capy status        # the last sync, and what failed
probe capy sync          # run one now
probe capy disconnect    # remove the timer, the key, the sync record and the capture credential
```

Sessions already uploaded stay in Probe after `disconnect`. Signing out of Probe or uninstalling it disconnects Capy too; Probe's MCP server and skills stay in Capy until you remove them in its settings. Signing in to another account never moves Capy capture: if it was connected for another team, it turns off and `probe capy connect` connects it to the new one.

The key is stored owner-only (`0600`) beside the capture credential, and is sent to Capy's API only. `probe capy` only reads from Capy; it never writes there.

> **[Session capture](/agents/capture.md#capy-threads)**
>
> What leaves the machine, and how to stop it.

> **[Command reference](/cli/commands.md#capy)**
>
> Every `probe capy` command and flag.


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