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.
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 when a bounded workload needs managed storage or compute.
Import existing history
Refresh the low-cost catalog at any time:
Catalog mode creates roughly one compact record per session. Event-level indexing is opt-in and must have a time bound:
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:
Then review the user-level Codex configuration:
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:
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:
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.Last modified on August 25, 2026