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

# Set up global capture

> Connect harness histories, native agent telemetry, and local computer context without copying the raw data lake.

# Set up global capture

A factory describes one workflow you want to improve. Global capture is the machine-level evidence layer that can discover candidate work across many folders, applications, and harnesses before you decide which workflow deserves a factory.

## Configure the evidence lake

```bash theme={"system"}
merion factory setup
merion lake status
```

`merion factory setup` performs the first compact catalog automatically. Pass `--no-sync` only when setup must avoid reading source indexes, or `--json` when an agent needs structured capabilities, approval requirements, and one next action.

The default state lives in `~/.merion` and is private to the local user. Setup detects:

* Codex JSONL history;
* OpenCode's local SQLite history;
* Screenpipe's localhost API, when independently installed and running;
* Merion's localhost OTLP receiver for native agent events.

Merion stores timestamps, kinds, source identifiers, selected non-content metadata, content digests, and source offsets. The source system remains the owner of raw prompts, outputs, screenshots, audio, OCR, and input records.

Global capture is not cloud sync. Setup, history import, and the live receiver do not create a cloud policy or queue an upload. See [governed cloud sync](/guides/cloud-sync) when a bounded workload needs managed storage or compute.

## Import existing history

Refresh the low-cost catalog at any time:

```bash theme={"system"}
merion lake sync
```

Catalog mode creates roughly one compact record per session. Event-level indexing is opt-in and must have a time bound:

```bash theme={"system"}
merion lake sync --source codex --since 7d --deep
merion lake sync --source opencode --since 30d --deep
```

This requirement prevents an accidental full read of months of multi-gigabyte histories. Re-running a sync is idempotent.

## Enable live Codex telemetry

Start the low-priority receiver at login on macOS:

```bash theme={"system"}
merion lake service install
merion lake service status
```

Then review the user-level Codex configuration:

```bash theme={"system"}
merion lake codex-config
```

Merion never edits `~/.codex/config.toml` automatically. The recommended configuration uses Codex's native OTLP/HTTP JSON exporter and keeps `log_user_prompt = false`. The receiver is event-driven: it does not scan the filesystem or poll Screenpipe in the background, and it does not use a GPU.

Use `merion lake serve` instead of the login service on unsupported systems or for foreground debugging.

## Resource and storage budget

The background receiver is a dedicated process rather than the full interactive CLI. On macOS it runs with low-priority I/O, `nice=10`, a 32 MiB JavaScript old-space ceiling, and size-optimized runtime settings. It is idle between telemetry requests, performs no background filesystem scan, and requires no GPU. Total process memory is higher than the JavaScript heap because it also includes the Node runtime, native libraries, and SQLite.

Merion keeps the evidence index small by design:

* catalog import stores one compact reference per source session by default;
* event-level import requires an explicit time bound;
* raw harness histories and Screenpipe media stay in their source stores;
* repeated imports are idempotent;
* SQLite uses a bounded 16 MiB WAL journal limit.

Screenpipe's own capture quality, compression, and retention settings control the size and compute cost of its raw local media. Merion does not silently increase those settings or duplicate that media.

## Connect Screenpipe context

Merion talks only to Screenpipe's documented local REST API at `127.0.0.1:3030`. It does not bundle, fork, or redistribute Screenpipe. Install an official build independently, confirm the applicable license, and grant the operating-system screen/audio permissions you intend to use.

After Screenpipe has recorded activity:

```bash theme={"system"}
merion lake sync --source screenpipe --since 24h
merion lake timeline --since 24h
```

Search responses are converted to compact source references. Frames, screenshots, audio, transcripts, accessibility text, and OCR text are not copied into Merion.

## Label economically meaningful work

Passive telemetry is evidence, not a task definition. After a work period, add the human interpretation that automated sources cannot infer reliably:

```bash theme={"system"}
merion lake label \
  --name "Investigate failures in the oncology extraction workflow" \
  --since 90m \
  --cwd ~/oncology-research
```

The label marks a time window across applications and harnesses without moving the underlying evidence. It can later become the starting scope for a workflow factory, reviewed work episode, or evaluation cohort.

## Attribution is evidence, not certainty

Native harness events can identify an agent, session, tool call, trace, or span. Screen observations alone usually cannot prove whether a human or an agent caused a state change.

Merion therefore keeps the source attribution and stores correlation separately:

* explicit shared identifiers may support deterministic links;
* nearby desktop and agent events may receive a lower-confidence temporal link;
* unlinked input or screen observations remain unattributed;
* a human can later label the episode and outcome.

The timeline never converts proximity into a claim of certainty. This preserves the evidence needed to reconstruct work while keeping human accountability in the task-definition loop.
