Dev & Engineering codexcursormcp-serveragent-memorysession-logspersonalizationlocal-first

Emulo

Mines your Claude Code and Codex session logs into a local you.md agent profile so your coding agents start every task already knowing how you work.

FollowAgents review · FARS-2.1
Recommended
78/ 100 5-point scale 3.9 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust23 / 29 · 4.0/5

Evidence shows user-message-only extraction, plugin state under EMULO_HOME, SHA-256-verified bootstrap downloads, a read-only plan printed and approval awaited before any model call, and SECURITY.md stating the model-provider boundary and the --no-redact risk. Deductions: redaction is self-described best-effort; bootstrap ships via skills.sh with default anonymous telemetry requiring opt-out, so least_privilege earns 2; installation mutates host config files (cursor/gemini/agents targets) and restore completeness cannot be verified statically.

2Reliability9 / 14 · 3.2/5

Zero-dependency core, requirements.lock, 3.8/3.12 CI matrix, hash revalidation, and fail-closed behaviors are well documented. But there is a clear self-contradiction: README claims 'no account, nothing to buy, no sign-in' while cloud/worker contains a full Polar subscription billing, OAuth identity, entitlement, and device-pairing implementation — two coexisting narratives force self_consistency to 1. Failure messages are only statically evidenced.

3Adaptability15 / 18 · 4.2/5

Audience and scenario layering (work/design/write/video) is clear; the Limits section honestly covers sparse histories, token accounting, and unreleased benchmarks; the support matrix marks unclaimed items. Deductions: trigger precision rests on a five-skill table with limited static evidence, and the Claude native plugin path is marked 'host unavailable during validation', i.e., unverified by the author.

4Convention15 / 18 · 4.2/5

Multi-path install notes with pinned version refs, an FAQ addressing three objections, explicit Limits and ROADMAP, and a complete MIT LICENSE. Deductions: no CHANGELOG file (only scattered v0.6.2 references), maintainer identified only as 'Ohad' with no verifiable identity, and the relationship between documentation and the cloud/ commercial module is unexplained.

5Effectiveness10 / 13 · 3.8/5

verify, --coach, card, layered profiles, hash-reusing updates, and cost-first planning deliver differentiated value. Deductions: the author's own frozen calibration recovered only 12 of 22 required traits at full history (work 5/10, writing 2/7), i.e., limited core-output recall and an admitted lack of a complete personal model, capping output_usability and cost_benefit at 2.

6Verifiability6 / 8 · 3.8/5

Every inferred rule requires two distinct sessions, short dated verbatim quotes, and a verify command that mechanically checks quotes and exits non-zero; fact/inference separation is excellent (spec video labeled, unexecuted methodology flagged). Deductions: the Proof v1 methodology is self-declared unexecuted pending a separate approved evidence release, and headline claims (Reddit stats, the before/after example) are not independently checkable within the repository, so claim_traceability earns 2.

Evidence confidence: Low Reviewed Sep 11, 2026 Reviewed revision 7f80fd8dc280
Before you use it
  • README's 'free, no account, nothing to buy' contradicts the Polar subscription billing module in cloud/worker; confirm whether your installed surface is tied to that commercial path.
  • Redaction is best-effort and --no-redact sends raw text to the model provider; inspect caches and outputs before pointing at a hosted model, and never share the full profile or receipt appendix.
  • The author's own calibration shows full-history mining recovered only 12 of 22 required traits; treat recall as limited, not a complete model of the user.
  • The skills.sh bootstrap sends anonymous install telemetry by default; set DISABLE_TELEMETRY=1 to opt out.
  • Proof v1 methodology and effectiveness claims (e.g., Reddit stats) lack an independent evidence release and are author self-reports.
  • Publisher identity is unverified (only 'Ohad'); supply-chain trust rests on the SHA-256 verification mechanism itself.
Review evidence [1][2][3][4][5][6][7][8][9]
See the full review method →

What does this agent do, and when should you use it?

Emulo is an MIT-licensed, local-first tool that reads raw session logs from Claude Code, Codex, Copilot CLI, OpenCode, and Google Antigravity, keeps only the messages you personally typed, and mines working rules you never wrote down. It produces a layered you.md profile — work, design, writing, and video — that loads into Claude Code, Codex, Cursor, Gemini, OpenCode, OpenClaw, and Hermes Agent. The core is a stdlib-only emulo.py script, shipped alongside native Claude Code/Codex plugins, an MCP server exposing one load_emulo_profile tool, and skills such as emulo:mine, emulo:work, emulo:design, emulo:write, and emulo:video. Mining always prints a read-only plan first and waits for approval; inferred rules require at least two distinct supporting sessions, and emulo verify you.md checks every quote against the mined sessions. Extraction, redaction, caches, and the profile stay on your machine, and with a local model the whole pipeline runs offline.

Emulo reads local .l session logs (Claude Code, Codex, Copilot CLI out of the box; OpenCode via --source opencode from its SQLite/JSON stores; Google Antigravity via --source antigravity from ~/.gemini/antigravity/brain transcripts), strips harness output, keeps only user-typed text, and redacts secrets before caching. python emulo.py --dry-run prints a read-only plan (valid sessions, source tokens, planned worker/reducer calls); after approval, history is chunked, each chunk gets one worker evidence pass, and results merge into your you.md. emulo --coach produces a zero-model-call usage report (repeated asks, re-explained context, correction openers); emulo --card renders a shareable profile card; emulo verify you.md traces every profile quote to mined sessions and exits non-zero for unverifiable quotes. python emulo.py --install you.md --target claude|codex|cursor|agents|gemini|opencode installs the profile into each agent, and emulo mcp or uvx emulo mcp runs a stdio MCP server serving load_emulo_profile.

  1. A daily Claude Code or Codex user tired of re-explaining coding standards and their definition of 'done' in every fresh session.
  2. A multi-agent developer (Claude Code, Codex, Cursor, Gemini, OpenCode) who wants one you.md providing consistent personal context across tools.
  3. Users with large histories (thousands of sessions, millions of tokens) where a single summarize call cannot cover the material.
  4. Privacy-conscious developers who want extraction, redaction, and the profile to stay local, with a fully offline path via a local model.
  5. Anyone who wants to validate a profile before loading it, using emulo verify to trace quotes to real session IDs.
  6. Users diagnosing friction with their model: run emulo --coach for a seconds-long, no-model-call usage report.

What are this agent's strengths and limitations?

Pros
  • Every rule is backed by dated, verbatim quotes from real sessions; inferred rules require at least two distinct supporting sessions, and emulo verify mechanically checks quotes.
  • Core emulo.py is stdlib-only with zero dependencies and no network calls; with a local model the entire mining flow stays on your machine.
  • Broad surface: native Claude Code and Codex plugins, Cursor/Gemini/OpenCode adapters, OpenClaw/Hermes skill support, plus a standard MCP server.
  • Mining always shows a read-only plan and waits for approval; updates reuse segment/evidence hashes so identical updates plan zero extra passes.
Limitations
  • Mining requires a model call — hosted providers receive selected redacted text, only local models keep it fully offline, and Emulo cannot measure provider-side cost precisely.
  • Quick preview recovered only 5 of 22 frozen calibration traits; even the first full-history release recovered 12 of 22, and sparse histories can leave design or writing layers inactive.
  • Log retention matters: Claude Code defaults to cleanupPeriodDays=30, so older sessions can roll off before Emulo ever sees them.
  • The Claude native plugin was not validated (host unavailable during validation) and Claude Code /plugin installs require pasting commands manually.

How do you install or deploy this agent?

Three documented paths. 1) Claude Code plugin: /plugin marketplace add ohad6k/emulo, then /plugin install emulo@emulo. 2) Codex plugin: codex plugin marketplace add ohad6k/emulo --ref v0.6.2 --, then codex plugin add emulo@emulo --. 3) CLI: pip install emulo (or uv tool install emulo, or run without installing via uvx emulo). Cross-agent bootstrap: npx skills add ohad6k/emulo@emulo. Requirements: Python; mining needs a model provider (hosted or local), and the agent must show cost and wait for approval before model work.

How do you use this agent?

After installing, run emulo:mine (in a plugin host) or tell your agent run emulo (bootstrap path), pointing at your session history; or use the CLI directly: python emulo.py --dry-run to view the plan, python emulo.py --chunks 4 --out emulo-out to mine; alternatively have your agent read emulo-out/RUN_ME.md and follow it. Use emulo --coach for the usage report, emulo --card for the shareable card, emulo verify you.md to check receipts, and update emulo for cache-reusing incremental updates. For MCP clients, add {"mcpServers":{"emulo":{"command":"uvx","args":["emulo","mcp"]}}}. Load the profile via emulo:work (core), emulo:design, emulo:write, or emulo:video. Use --preview for a quick starter profile, but calibration recovered only 5 of 22 required traits there; full-history mining is the quality default.

How does this agent compare with similar options?

The README directly contrasts Emulo with built-in Claude memory: memory is what you explicitly told the model (curated notes, CLAUDE.md, confined to one tool), whereas Emulo mines raw session logs for unwritten rules — the two are complementary and both can be used.

FAQ

Why not just ask Claude to summarize my logs?
One pass cannot do it: the author's history is 1,656 sessions and about 3M tokens after extraction, mostly tool output and pasted errors. Emulo keeps only your typed words, runs per-chunk evidence passes, and requires distinct supporting sessions before an inferred rule survives.
Claude already has memory — why do I need this?
Use both. Memory is what you told the model and stays inside one tool; Emulo mines raw logs from multiple agents for rules you never wrote down, outputting plain files you own and can load through several agents.
Does any data leave my machine?
Extraction, redaction, caches, and the profile stay local, and emulo.py makes no network calls. The one exception is mining: selected redacted text goes to the model provider you choose. Point it at a local model and the whole run stays local.
How is cost measured?
Emulo displays selected source tokens and planned worker/reducer passes — not provider billing events. It cannot measure provider system prompts, tool traffic, or subscription allowance percentages, and the plan requires your approval before any model work.
What about limited log retention?
Claude Code's retention is the cleanupPeriodDays setting (30 days by default). The author's long history combines Claude Code, Codex, and Copilot CLI sessions plus archives; with defaults, older sessions can roll off before mining, so raise retention first.

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents