<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>session-mining on tomrochette.com</title>
    <link>https://tomrochette.com/tags/session-mining/</link>
    <description>Recent content in session-mining on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Sun, 11 Oct 2026 23:45:59 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/session-mining/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Emulo</title>
      <link>https://tomrochette.com/agents/memory/emulo/</link>
      <pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/memory/emulo/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>memory</category><category>session-mining</category><category>personalization</category><category>mcp</category><category>open-source</category>
      <description>&lt;p&gt;Emulo is Ohad Krispin&amp;rsquo;s MIT-licensed session miner: a zero-dependency Python CLI, plus Claude Code and Codex plugins, that reads the messages you typed in Claude Code, Codex, Copilot CLI, OpenCode, and Antigravity logs and compiles them into a personal you.md working profile where every rule carries dated verbatim quotes, installed where your agent reads it and served over MCP.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Its distinguishing record is not the mining, it is the published failure: a 60-run placebo study where the mined profile failed to separate from an invented profile of the same length on all 9 pre-registered comparisons, published by the author with the harness attached, then partially reversed in a September rerun.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A stdlib-only &lt;code&gt;emulo.py&lt;/code&gt; (pip install emulo, 0.6.7 on PyPI) that reads only the messages you typed, from each tool&amp;rsquo;s own session logs, JSONL for Claude Code, Codex, Copilot CLI, and Antigravity, and the SQLite store for OpenCode, explicitly rejecting AGENTS.md, CLAUDE.md, memory files, and typed self-descriptions as sources, so the profile is mined behavior rather than restated intent.&#xA;The mining flow runs inside your agent (&lt;code&gt;run emulo&lt;/code&gt;): a read-only preflight plan first, your approval before any model call, then per-chunk worker passes that must ground every inferred rule in at least two distinct sessions, writing separate work, design, writing, and video layers.&#xA;Install targets put the profile where each host looks: a project AGENTS.md (the one route verified end to end, in Codex), OpenCode&amp;rsquo;s instructions, a Claude Code skill that must be typed (&lt;code&gt;/you&lt;/code&gt;), and Cursor and Gemini rule files whose loading is not verified, plus an MCP server exposing one tool, &lt;code&gt;load_emulo_profile&lt;/code&gt;.&#xA;&lt;code&gt;emulo verify you.md&lt;/code&gt; re-checks every quote in the profile against the mined corpus and exits nonzero on a quote it cannot find, because the failure that matters is a confident rule citing something you never said.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Maintained rather than developed, with the self-published failure as the headline.&lt;/strong&gt;&#xA;294 stars, MIT, created 2026-07-08, pushed 2026-10-02, as of 2026-10-11 (GitHub API), with PyPI at 0.6.7 (2026-09-25) and the README scoping future work to security and redaction fixes, broken install or loading paths, and reproducible bugs.&#xA;An HN search finds no thread of its own as of 2026-10-11, only a 2013 product named Emulos, so the footprint is the repository and the author&amp;rsquo;s own channels.&lt;/p&gt;&#xA;&lt;picture&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://api.star-history.com/chart?repos=ohad6k/emulo&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://api.star-history.com/chart?repos=ohad6k/emulo&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;  &lt;img alt=&#34;Star History Chart&#34; src=&#34;https://api.star-history.com/chart?repos=ohad6k/emulo&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;&lt;/picture&gt;&#xA;&lt;p&gt;The test record, in full: in the August 2026 study, 60 runs with every prediction written down in advance, the mined profile did not separate from an invented profile on any of 9 comparisons, and the author published it at emulo.vercel.app/placebo, a page whose headline is that his own product lost to a profile he made up.&#xA;The September rerun, run the night Fable 5.1 shipped with a newer July 2026 profile and a new invented placebo, separated on 5 of 9 comparisons on Fable 5.1 and 1 of 9 on Opus 5, with the pre-registration, harness, scorer, and every raw output linked at emulo.vercel.app/fable.&#xA;Both tests measure whether the output changed, not whether it got better, and the README says so rather than claiming otherwise.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The placebo publication is the integrity signal this category lacks: the author ran the experiment that could kill the claim, published the 0-for-9 result, and made the failure the product page.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Receipts are enforced where they mechanically can be: rules need two distinct sessions, quotes must be verbatim and dated with known session ids, and &lt;code&gt;emulo verify&lt;/code&gt; fails closed on an unsupported quote.&lt;/li&gt;&#xA;&lt;li&gt;The privacy boundary is concrete: extraction, redaction, caches, and the profile stay local, a local model keeps the whole run local, and the one network step (hosted mining) is explicit.&lt;/li&gt;&#xA;&lt;li&gt;The support matrix separates &amp;ldquo;installs&amp;rdquo; from &amp;ldquo;a host was seen loading it&amp;rdquo; per host, the distinction most personalization tools blur.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The efficacy evidence is negative to mixed: 0 of 9 comparisons in August, then 5 of 9 and 1 of 9 in September, all measuring change rather than improvement, so nobody has shown the profile makes work better.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Loading is the weak link: the verified end-to-end path is a single Codex test, Claude Code needs a manual &lt;code&gt;/you&lt;/code&gt;, and Cursor, Gemini, OpenClaw, and Hermes installs are unverified for loading.&lt;/li&gt;&#xA;&lt;li&gt;The first full-history calibration mine recovered 12 of 22 required traits, so a shipped profile can land with half its target categories missing.&lt;/li&gt;&#xA;&lt;li&gt;The AGENTS.md install writes your verbatim quotes into a file that is usually committed, and the README&amp;rsquo;s warning to keep it out of version control is easy to miss.&lt;/li&gt;&#xA;&lt;li&gt;Maintenance mode is explicit, so expect fixes, not new mining capability.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Free and open source under MIT, no account or sign-in, nothing to buy in the tool.&#xA;The site lists one optional paid service, a hand edit of a profile you already mined, with no published price and no role in using the tool, so no price history applies.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/claude-mem/&#34; &gt;claude-mem&lt;/a&gt;: captures and compresses session context for reinjection inside one harness at a time, where Emulo distills your side of the sessions into one portable profile any host can read.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/file-based-agent-memory/&#34; &gt;File-based agent memory&lt;/a&gt;: the convention Emulo&amp;rsquo;s output lands in; the convention holds what you wrote deliberately, Emulo mines what you never wrote down.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/gbrain/&#34; &gt;GBrain&lt;/a&gt;: the other personal-profile member; GBrain is pages you author with corrections, Emulo is rules mined from behavior with receipts you verify.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recommended for engineers with months of Claude Code, Codex, or OpenCode history who want a first draft of their unwritten rules, will run &lt;code&gt;emulo verify&lt;/code&gt;, and will read the placebo page before trusting the profile.&lt;/strong&gt;&#xA;Not for teams (the artifact is one person&amp;rsquo;s), and not for anyone who needs demonstrated improvement rather than demonstrated change.&#xA;My disagreeable claim: the 0-for-9 August result is the most trustworthy artifact in this category, because it is the only one a member published about itself with the harness attached.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-10-11 - Created after the session-analytics resolution routed the ohad6k/emulo candidate here as a memory candidate, with the 0-for-9 placebo result recorded as the governing fact.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/claude-mem/&#34; &gt;claude-mem&lt;/a&gt; - the capture-and-compress sibling that reinjects context rather than distilling you&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/file-based-agent-memory/&#34; &gt;File-based agent memory&lt;/a&gt; - the convention Emulo&amp;rsquo;s you.md installs into&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/gbrain/&#34; &gt;GBrain&lt;/a&gt; - the authored-pages counterpart with corrections instead of mined receipts&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/engrim/&#34; &gt;Engrim&lt;/a&gt; - the cross-CLI episodic store at the opposite end of the mining spectrum&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/session-analytics/&#34; &gt;Session Analytics&lt;/a&gt; - the category this candidate was routed here from&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/ohad6k/emulo&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/ohad6k/emulo&lt;/a&gt; - repository, MIT, 294 stars, created 2026-07-08, pushed 2026-10-02 (GitHub API, as of 2026-10-11)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/ohad6k/emulo/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/ohad6k/emulo/main/README.md&lt;/a&gt; - the mining flow, the not-memory positioning, the per-host support matrix, the maintenance scope, and the tested-so-far summary&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://emulo.vercel.app/placebo&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=emulo.vercel.app&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://emulo.vercel.app/placebo&lt;/a&gt; - the August 2026 placebo page: the 60-run study where the mined profile lost or tied all 9 pre-registered comparisons, published with the method&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://emulo.vercel.app/fable&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=emulo.vercel.app&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://emulo.vercel.app/fable&lt;/a&gt; - the September 2026 day-one rerun: 5 of 9 on Fable 5.1 and 1 of 9 on Opus 5, with pre-registration, harness, scorer, and raw outputs linked&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pypi.org/pypi/emulo/json&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=pypi.org&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://pypi.org/pypi/emulo/json&lt;/a&gt; - PyPI at 0.6.7 (uploaded 2026-09-25), MIT, first release 0.5.0 on 2026-07-16&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hn.algolia.com/api/v1/search?query=emulo&amp;amp;tags=story&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=hn.algolia.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://hn.algolia.com/api/v1/search?query=emulo&amp;tags=story&lt;/a&gt; - no thread of its own, only a 2013 &amp;ldquo;Emulos&amp;rdquo; analytics product (queried 2026-10-11), the missing-footprint record&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
