by ohad6k
Mine your Claude Code and Codex logs into a local you.md agent profile.
# Add to your Claude Code skills
git clone https://github.com/ohad6k/emuloemulo is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ohad6k. Mine your Claude Code and Codex logs into a local you.md agent profile. It has 188 GitHub stars.
emulo's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/ohad6k/emulo" and add it to your Claude Code skills directory (see the Installation section above).
emulo is primarily written in Python. It is open-source under ohad6k on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh emulo against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Your real coding-agent sessions already contain the rules you never wrote down: what “done” means, what you reject on sight, how you debug, how you design UI, and how you write when you are actually working.
Emulo mines selected evidence from those sessions — Claude Code, Codex, Copilot CLI, OpenCode, and Google Antigravity logs out of the box — into a private working profile your agent reads before every task. Separate layers for work, design, writing, and video mean the right part of you loads for the right task.
The Emulo Proof v1 methodology is an unexecuted methodology until a separately approved evidence release exists.
Memory is what you explicitly told the model.
Emulo mines what your work already proved about you: what you reject, what "done" means, when you ask for proof, how you talk when you're actually working, and the agent behaviors that make you stop the task.
That's why it reads raw session logs, not your CLAUDE.md or rules file.
One line to the same agent, twice: "help me post emulo on reddit." Once cold, once with the Emulo profile loaded.
Here's how I'd play it.
Subreddits: r/ClaudeAI and r/ChatGPTCoding are your core audience. r/LocalLLaMA fits the local angle. r/cursor, r/SideProject, r/opensource for reach. Don't blast all at once — post to one, tune the title, repost over a few days.
Title: I built a local tool that reads your AI coding logs and writes a "you.md" your agents read before every task
Titles (pick per sub):
Body:
Every fresh agent session starts from zero — it doesn't know how you work, so you re-explain yourself every time. All of that is already in your session logs. So I built emulo: it reads your history, mines how you decide and talk, and writes a
you.mdyour agents read before every task.
- runs locally, your logs never leave your machine
- redacts secrets before processing
- open source: [link]
Also: open with the pain not the product, reply fast in the first hour, add a demo gif, and flair it correctly. Want me to write tuned variants for each subreddit?
the insight first: the mining number is your whole post. "i read 1,656 of my own sessions" is a confession, not a pitch, and nobody scrolls past a confession. lead with the mirror, not the mechanism.
one sub, not five — a skills sub, where people come looking for this instead of arguing about it.
Title: I built a Claude skill from 8 months of my own Claude Code sessions
body: I use claude code and codex every day. 8 months, solo. every session gets logged and i never really looked back at them.
then it hit me that those logs are probably the most honest record of how i actually work. not my CLAUDE.md, not my docs, not the rules i remembered to write down. the real sessions.
so i built emulo.
What I did: pulled every message i typed from my local claude/codex logs. stripped tool output, pasted errors, file dumps, and assistant replies. kept only my words. came out to around 1,656 sessions and almost 3M tokens of just me.
then i split it into chunks and had agents read each slice. each one pulled patterns like how i define done, what kind of code i reject, when i ask for proof, what makes me stop a task, and how i talk when i am actually working.
then i merged the repeated traits into one you.md.
the useful part is that it installs as a claude skill. so now instead of starting every task cold, claude reads my profile first and already knows how i work.
not memory exactly. memory is what you told the model. this is more like mining what your work already proved about you.
I posted it on r/ClaudeSkills, as written:
The kind of rules a mine pulls out, each backed by dated verbatim receipts from real sessions:
done means it runs live. never trust "done" off a code edit. show it working first.
fix the one thing. rewriting or "cleaning up" code that isn't the problem gets rejected every time.
builds faster than they understand what they built — then asks the agent to explain their own system back.
gets frustrated by repeating the same ask until it lands, not by escalating.
Nobody wrote those rules down. They came out of one person's own history, with receipts.
This is an example. Yours is mined from your logs and will read nothing like it.
After mining, python emulo.py --card renders your profile as a shareable card: archetype, top laws ranked by distinct supporting session receipts, coverage stats, and one sharp truth.
Share the card or one short trait, never your full profile.
Install the cross-agent bootstrap — runs in Claude Code and Codex, and installs profiles for Cursor and Gemini through the explicit adapters:
npx skills add ohad6k/emulo@emulo
Then tell your agent:
run emulo
That installs the bootstrap and creates a read-only full-history mining plan. Your agent must show the cost and wait for approval before model work. It does not install native namespaced routing.
The native plugin adds emulo:mine, emulo:work, emulo:design, emulo:write, and emulo:video:
codex plugin marketplace add ohad6k/emulo --ref v0.5.0 --json
codex plugin add emulo@emulo --json
The plugin-install command itself scans no logs, writes no private profile state, and schedules zero mining model calls. Asking an agent to install, run, or update Emulo still consumes that host interaction plus its normal system and tool overhead.
The Claude Code plugin exposes the same four skills. Install it from inside Claude Code:
/plugin marketplace add ohad6k/emulo
/plugin install emulo@emulo
Emulo also ships a Model Context Protocol (MCP) server, so any MCP client — Claude Desktop, Cursor, and other agents — can load your profile before a task. The server implements MCP over stdio and exposes one tool, load_emulo_profile, which returns your mined work, design, or writing profile over the Model Context Protocol.
Run it from the published package with uvx emulo mcp, or from a checkout with python emulo.py mcp, and point an MCP client at it:
{
"mcpServers": {
"emulo": { "command": "uvx", "args": ["emulo", "mcp"] }
}
}
The MCP server is stdlib-only and serves the profile you already mined locally; it makes no network calls of its own.
Emulo first prints a read-only plan:
{
"valid_sessions": "--",
"post_dedupe_source_tokens": "--",
"mode": "full",
"profile_scope": "full_profile",
"quality_default": true,
"candidate_index": null,
"selected_source_tokens": "--",
"planned_worker_calls": "--",
"planned_reducer_calls": "--"
}
The full-history quality default reads all eligible history. Emulo shows the exact plan first and waits for approval before any worker or reducer runs. Cached reports are reused, so the displayed remaining cost can fall over time.
If you explicitly want a cheaper first look, ask for run emulo quick preview or use --preview:
python emulo.py plugin preflight --preview
Quick preview creates a starter profile from selected history, not the full profile.
The quick-preview ladder is:
| Candidate | New source text | Maximum planned passes |
|---|---|---|
| 4 × 25K | 100K tokens | 4 workers + 1 reducer |
| 6 × 25K | up to 150K tokens | up to 6 workers + 1 reducer |
| 8 × 25K | 160K-token hard cap | up to 8 workers + 1 reducer |
The frozen calibration recovered only 5 of 22 required traits at the widest bounded candidate. Quick preview therefore cannot be described as the quality default unless a future run passes all 22 frozen requirements. The permanent non-private baseline is in `tests/fixtures/bounded-calibration-baseline.js