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

# Build a second brain in your agent

> Turn any agent — OpenClaw, Hermes, Claude, or Codex — into a second brain that watches your Screenpipe activity and remembers your workflows.

A lot of people connect Screenpipe to a personal AI agent — [OpenClaw](https://docs.screenpipe.com/openclaw.md), Hermes, [Claude Code](https://docs.screenpipe.com/claude-code.md), [Codex](https://docs.screenpipe.com/opencode.md), Cursor — and then only ever use it to *ask questions on demand* ("what was I reading yesterday?").

The bigger win is to let your agent build a **second brain** about you in the background: it watches what you do through Screenpipe, splits your day into distinct workflows, writes higher-level summaries of your processes, and keeps a durable memory of who you are and what you're working on — so you never have to re-explain your context again.

This is the same idea as the [digital clone scheduled task](https://docs.screenpipe.com/task-library.md) (which builds a persistent AI memory of you inside the Screenpipe app), but it lives inside *your own* agent's memory. You set it up by pasting one prompt.

> [!TIP]
>
> This works with any agent that can run a tool/shell and run on a schedule. It does not require the Screenpipe app's scheduled tasks — your agent does the work.

## 1. Connect Screenpipe first

Your agent needs to be able to read your activity. The fastest way is the Screenpipe MCP server — add it to your agent's MCP config:

```json theme={"system"}
{
  "mcpServers": {
    "screenpipe": {
      "command": "npx",
      "args": ["-y", "screenpipe-mcp"]
    }
  }
}
```

This gives your agent the `search-content`, `activity-summary`, `list-meetings`, and `update-memory` tools.

* Running your agent on a **VPS or a different machine** than Screenpipe (common with OpenClaw / Hermes)? See [OpenClaw → different machines](https://docs.screenpipe.com/openclaw.md#different-machines) for querying over Tailscale or pushing your `~/.screenpipe` data with `npx -y screenpipe@latest sync remote`. The same steps work for Hermes and any other agent.
* Not using MCP? Your agent can hit the local REST API directly at `http://localhost:3030` — see [MCP server setup](https://docs.screenpipe.com/mcp-server.md) and [API recipes](https://docs.screenpipe.com/api-recipes.md).

It also helps to load the [Screenpipe skills](https://github.com/screenpipe/screenpipe/tree/main/.claude/skills) (or the equivalent for your agent) so it navigates the data efficiently.

## 2. Paste this into your agent

Copy this prompt into OpenClaw, Hermes, Claude, Codex, Cursor, or any agent connected to Screenpipe:

```text build my second brain theme={"system"}
you have access to screenpipe, a local tool that records everything i see, say, and
hear on my computer and makes it searchable. i want you to build and maintain a
"second brain" about me — a living memory of who i am, what i'm working on, and how
i work — by watching my activity through screenpipe in the background, so i never
have to re-explain my context. think of it as a digital clone of my working context.

## how to read my activity

if you have the screenpipe MCP tools (search-content, activity-summary, list-meetings,
update-memory), use them. otherwise query the local REST API at http://localhost:3030
(or http://SCREENPIPE_IP:3030 if i run screenpipe on another machine):

- recent activity:    curl "http://localhost:3030/search?content_type=all&start_time=START&end_time=END&limit=100"
- light summary:      curl "http://localhost:3030/activity-summary?start_time=START&end_time=END"
- meetings:           curl "http://localhost:3030/meetings?limit=20"

START / END are ISO 8601 UTC timestamps. start with a small window (the last 1-2 hours)
so you don't pull too much. if screenpipe skills are available, load them first.

## what to do each run (about once an hour, or when i ask)

1. SEGMENT — pull my activity since you last ran and split it into distinct work
   sessions. a session is a coherent block of related activity (e.g. "45 min in cursor
   refactoring auth", "30 min reviewing investor follow-ups", "1h call about X").
   note the app(s), the time range, what i was actually trying to do, and the goal.

2. SUMMARIZE — for each session write a short summary of the *process*: the steps i
   took, the tools/inputs/outputs, the decisions i made, and whether it's repeatable.
   if it looks repeatable, capture it as a numbered SOP i could hand off or automate.

3. REMEMBER — update my second brain with anything durable and reusable:
   - who i am: role, goals, preferences, recurring tools
   - people i interact with and about what       (tag person:NAME)
   - projects in flight, their status, open loops (tag project:NAME)
   - workflows / SOPs i repeat                    (tag topic:NAME)
   store only stable, reusable facts. never store secrets — passwords, API keys, tokens,
   financial or health data, or anything clearly private. skip one-off noise.

## where to store the second brain

- if you have the screenpipe update-memory tool: write each durable fact as a memory
  with namespaced tags (person:, project:, topic:) and importance 0-1. retrieve later
  with search-content content_type='memory'. this is the same memory the screenpipe
  digital-clone scheduled task builds, so it stays queryable from any agent.
- also (or instead, if you lack that tool) keep markdown files i can read:
    second-brain/profile.md          - who i am, goals, preferences
    second-brain/people/NAME.md      - one file per person
    second-brain/projects/NAME.md    - one file per project, with open loops
    second-brain/workflows/NAME.md   - repeatable SOPs
    second-brain/log/DATE.md         - the hourly session summaries (append-only)
    second-brain/now.md              - what i'm doing right now and over the last
                                       ~30/120 min, refreshed every run

always APPEND and DEDUPE: update existing entries instead of duplicating them, and
link related notes together.

## run on a schedule

set this to run automatically about once an hour using whatever scheduling you have
(claude tasks, codex automations, openclaw/hermes automations, a system cron job, or a
screenpipe scheduled task — `npx -y screenpipe@latest pipe install <path>` then `... pipe enable <name>`).
between runs, when i ask you anything, read now.md and the relevant project/person
files first so you already know what i was doing.

start now: do one pass over my last 2 hours, then tell me what you learned about me
and propose the schedule.
```

## What it builds

After a few runs you'll have a self-maintaining memory of yourself:

| File / memory | What's in it |
| - | - |
| `now.md` | What you're doing right now and over the last \~30/120 min — so the agent never asks "what are you working on?" |
| `log/DATE.md` | Hourly session summaries — your day, segmented into workflows |
| `projects/*.md` | Each project, its status, and open loops |
| `people/*.md` | Who you talk to and about what |
| `workflows/*.md` | Repeatable processes captured as SOPs you can hand off or automate |
| Screenpipe memories | The same durable facts, tagged and queryable from any agent via `search-content content_type='memory'` |

## Run it on a schedule

The prompt above tells the agent to schedule itself, but you control the cadence with whatever your agent supports:

* **OpenClaw / Hermes** — their built-in automations / scheduled tasks
* **Claude Code** — Claude tasks
* **Codex** — codex automations
* **Screenpipe scheduled task** — run it inside Screenpipe itself: save the prompt to `~/.screenpipe/pipes/second-brain/pipe.md` with a `schedule` (e.g. `0 * * * *`), then `npx -y screenpipe@latest pipe install ~/.screenpipe/pipes/second-brain && npx -y screenpipe@latest pipe enable second-brain` (`bunx` / `bun x` work too — see [scheduled tasks](https://docs.screenpipe.com/scheduled-tasks.md))
* **Anything else** — a plain `cron` / `launchd` / `systemd` timer that re-runs the prompt

Hourly is a good default. Lighter machines can run every few hours; use `activity-summary` first to keep token usage low.

## Privacy

Screenpipe data is local. The agent only sees what you let it reach (MCP on `localhost`, your REST API, or the `~/.screenpipe` data you sync). The prompt explicitly tells the agent **not** to store secrets or private data in your second brain. If your agent runs on a remote VPS, also follow the clipboard note in [OpenClaw → different machines](https://docs.screenpipe.com/openclaw.md#different-machines) so passwords and keys that pass through your clipboard aren't synced off-device.

## Next steps

* [OpenClaw integration](https://docs.screenpipe.com/openclaw.md) — connect on the same machine or over a VPS
* [Give AI memory of your screen](https://docs.screenpipe.com/ai-memory.md) — the memory layer, explained
* [Scheduled tasks](https://docs.screenpipe.com/scheduled-tasks.md) — run the same kind of automation *inside* the Screenpipe app instead of your agent
* [Digital clone scheduled task](https://docs.screenpipe.com/task-library.md) — the one-click version of this
* [Join our Discord](https://discord.gg/screenpipe) — share your second-brain setup


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