<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Ditto Agent Profile Mining Review on ToolGenix — Open-Source AI &amp; Developer Tools: Honest Hands-On Reviews</title>
    <link>https://toolgenix.nxtniche.com/tags/ditto-agent-profile-mining-review/</link>
    <description>Recent content in Ditto Agent Profile Mining Review on ToolGenix — Open-Source AI &amp; Developer Tools: Honest Hands-On Reviews</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 13 Jul 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://toolgenix.nxtniche.com/tags/ditto-agent-profile-mining-review/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ditto: Mine Your AI Coding Agent Personality Profile</title>
      <link>https://toolgenix.nxtniche.com/posts/ditto-agent-profile-mining-review/</link>
      <pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://toolgenix.nxtniche.com/posts/ditto-agent-profile-mining-review/</guid>
      <description>Ditto mines your AI coding agent personality profile from real Claude Code sessions. I tested it on 3 weeks of logs — here&amp;#39;s what it revealed about my habits.</description>
      <content:encoded><![CDATA[<p>You know that feeling when you start a fresh Claude Code session and your agent asks you the same questions it asked yesterday?</p>
<p>&ldquo;What&rsquo;s the coding style here?&rdquo;
&ldquo;Should I write tests first?&rdquo;
&ldquo;What does &lsquo;done&rsquo; mean in this project?&rdquo;</p>
<p>Every. Single. Time.</p>
<p>Still, I&rsquo;ve been living with this for months. Sure, I&rsquo;d write CLAUDE.md files for every project, but they&rsquo;re only as good as what I remember to put in there. But my actual coding habits — the things I do without thinking — never made it into those files.</p>
<p>The shortcuts I take. The patterns I instinctively reject. The way I actually debug, not the way I think I debug.</p>
<p>Then I found <strong>Ditto</strong> — a Python tool that digs through your real Claude Code and Codex session logs and mines them into a personal <code>you.md</code> profile. Not based on what you <em>think</em> your style is. Based on what you <em>actually did</em>.</p>
<p>So I ran it on my last 3 weeks of sessions. The result shook up how I think about agent personalization.</p>
<p>Want to share your Ditto profile with your team so everyone&rsquo;s agent speaks the same language? Hosting a central <code>you.md</code> on a cheap VPS is the easiest way. <a href="https://www.digitalocean.com/?refcode=1dc18b5a8131" rel="nofollow sponsored noopener" target="_blank">DigitalOcean gives new users $200 in credit</a> — enough to run a profile server for over a year. Drop your <code>you.md</code> on a static file server and point everyone&rsquo;s agent config to the same URL. <em>(affiliate links)</em></p>
<h2 id="the-short-version">The Short Version</h2>
<p><strong>Ditto</strong> (149★, MIT, Python) reads your coding agent session logs — from <code>~/.claude/projects</code> and <code>~/.codex/sessions</code> — and extracts the implicit rules you follow. Now the output is a <code>you.md</code> file your agents read before every task. One pip install, one command, and your agent finally knows how you actually work.</p>
<table>
	<thead>
			<tr>
					<th>What</th>
					<th>Ditto</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>What it does</td>
					<td>Mines your agent logs into a personal profile</td>
			</tr>
			<tr>
					<td>Install</td>
					<td><code>pip install ditto-agent</code> — zero deps</td>
			</tr>
			<tr>
					<td>Run time</td>
					<td>~30 seconds for 100 sessions</td>
			</tr>
			<tr>
					<td>Output</td>
					<td><code>you.md</code> + archetype card</td>
			</tr>
			<tr>
					<td>Targets</td>
					<td>Claude Code, Codex, Cursor, Gemini CLI</td>
			</tr>
			<tr>
					<td>Privacy</td>
					<td>100% local, secrets redacted</td>
			</tr>
	</tbody>
</table>
<p>But here&rsquo;s what makes it different: instead of guessing your style from a questionnaire, Ditto builds your <strong>AI coding agent personality profile</strong> from real keystrokes, rejections, and shipping habits. Not what you <em>say</em> you do — what you actually <em>did</em>.</p>
<h2 id="why-this-matters-more-than-you-think">Why This Matters More Than You Think</h2>
<p>Here&rsquo;s the thing about <a href="/posts/claude-code-templates-2026/">CLAUDE.md</a>: it&rsquo;s you <em>telling</em> your agent who you are. But most of us are terrible at self-documenting. So we write &ldquo;follow best practices&rdquo; when we really mean &ldquo;don&rsquo;t add unnecessary abstractions.&rdquo; Plus, we write &ldquo;write tests&rdquo; when we really mean &ldquo;write tests for business logic, skip the boilerplate.&rdquo;</p>
<p>But Ditto flips this. So instead of you writing a personality guide for your agent, it reads the <em>evidence</em> — every message you sent, every decision you made across hundreds of sessions — and builds the profile from actual behavior.</p>
<p>So this isn&rsquo;t about making your agent smarter. It&rsquo;s about making it <em>yours</em>.</p>
<p>Still, I tested this on my own history. Now, I&rsquo;ve been using Claude Code heavily for about 3 weeks across 6 different projects. That&rsquo;s roughly 40-50 sessions with maybe 1,200+ messages. I ran Ditto on the whole lot. But I didn&rsquo;t expect it to surface things I didn&rsquo;t know about myself.</p>
<h2 id="quick-start--its-embarrassingly-easy">Quick Start — It&rsquo;s Embarrassingly Easy</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pip install ditto-agent
</span></span></code></pre></div><p>That&rsquo;s it. And the whole thing is zero-dependency Python. No Docker, no Node, no Rust toolchain. Pure Python, one command.</p>
<p>Then you point it at your session logs:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>python ditto.py --mine
</span></span></code></pre></div><p>It auto-scans <code>~/.claude/projects</code> and <code>~/.codex/sessions</code>. On my machine it chewed through about 3 weeks of logs in under a minute. The output lands in a <code>./ditto_output/</code> folder with a <code>you.md</code> file.</p>
<p>Now you need to get that profile into your agent&rsquo;s workflow.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>python ditto.py --install you.md --target claude
</span></span></code></pre></div><p>This sets it up as a Claude Code skill. Next session, your agent reads the profile before touching anything.</p>
<p>And here&rsquo;s the cool part — the archetype card:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>python ditto.py --card
</span></span></code></pre></div><p>This renders a shareable card with your coding archetype, top rules, and a brutally honest observation.</p>
<p>So I stared at the output for a solid minute before it sank in.</p>
<h2 id="what-ditto-found-about-me">What Ditto Found About Me</h2>
<p>I ran <code>--card</code> and got back something that made me laugh out loud:</p>
<blockquote>
<p><strong>Archetype:</strong> Builder-Explorer
<strong>Top Law:</strong> &ldquo;If it compiles and passes the critical path, ship it. Edge cases get tests after launch.&rdquo;
<strong>One Sharp Truth:</strong> You say you value test coverage. Your actions say you value shipping speed. Your agent has been confused by this contradiction.</p>
</blockquote>
<p>That last line hit hard. Because it&rsquo;s true. I <em>tell</em> my agents I care about tests, but my actual behavior shows I care about getting the damn thing out. Ditto exposed a gap between my stated preferences and my actual behavior — a gap my agent was silently living with for weeks. So that&rsquo;s the thing about mining your own data: it doesn&rsquo;t lie.</p>
<p><strong>Top 5 extracted rules from my sessions:</strong></p>
<table>
	<thead>
			<tr>
					<th>Rule</th>
					<th>Source Evidence</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>&ldquo;Don&rsquo;t add abstractions until the 3rd repetition&rdquo;</td>
					<td>Repeatedly rejected factory patterns in early code</td>
			</tr>
			<tr>
					<td>&ldquo;API routes before business logic&rdquo;</td>
					<td>Consistently built endpoints before core logic</td>
			</tr>
			<tr>
					<td>&ldquo;Inline comments only for WHY, never for WHAT&rdquo;</td>
					<td>Never accepted &ldquo;this iterates over the list&rdquo; comments</td>
			</tr>
			<tr>
					<td>&ldquo;Mobile-first on new projects&rdquo;</td>
					<td>Every new project started with mobile viewport</td>
			</tr>
			<tr>
					<td>&ldquo;Ship Friday, refactor Monday&rdquo;</td>
					<td>Production pushes always Friday, cleanup next week</td>
			</tr>
	</tbody>
</table>
<p><strong>Coverage stats:</strong> 73% of sessions aligned with these top 5 rules. The remaining 27% were edge projects where I intentionally broke my own patterns.</p>
<p>Though I should mention these are just the top patterns — the full profile had about 20 rules covering everything from commit frequency to error-handling style.</p>
<p>Still, seeing yourself summarized this cleanly is humbling. Your agent can finally stop guessing.</p>
<h2 id="how-it-works-under-the-hood">How It Works Under the Hood</h2>
<p>Still, Ditto is surprisingly not complicated. No LLM dependency, no external API calls. Here&rsquo;s the pipeline:</p>
<ol>
<li>
<p><strong>Scan</strong> — Reads <code>~/.claude/projects</code> and <code>~/.codex/sessions</code> JSONL files</p>
</li>
<li>
<p><strong>Extract</strong> — Pulls only <em>your</em> messages (not the agent&rsquo;s). Secrets are redacted with a regex filter before anything touches disk.</p>
</li>
<li>
<p><strong>Chunk</strong> — Splits your messages into logical blocks per session</p>
</li>
<li>
<p><strong>Analyze</strong> — Extracts explicit patterns: commands you repeat, decisions you flag, approvals you give</p>
</li>
<li>
<p><strong>Compile</strong> — Ranks patterns by frequency and consistency, writes them to <code>you.md</code></p>
</li>
</ol>
<p>The <code>you.md</code> file itself is clean Markdown with three sections: <strong>Core Identity</strong> (your archetype + top laws), <strong>Behavioral Patterns</strong> (recurring decisions), and <strong>Communication Style</strong> (how you give feedback).</p>
<p>But the real magic is in step 4 — extracting patterns from what you actually did, not what you planned to do. I read through mine and it was eerily accurate. Every rule it extracted was something I <em>do</em> but never <em>wrote down</em>.</p>
<p>So here&rsquo;s how Ditto stacks up against the alternatives:</p>
<h2 id="comparison-ditto-vs-the-alternatives">Comparison: Ditto vs the Alternatives</h2>
<table>
	<thead>
			<tr>
					<th>Dimension</th>
					<th>Ditto</th>
					<th>Manual CLAUDE.md</th>
					<th>claude-mem (81.7k★)</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Data source</td>
					<td>Real session logs (what you actually did)</td>
					<td>What you remember about yourself</td>
					<td>What you tell your agent</td>
			</tr>
			<tr>
					<td>Depth of insight</td>
					<td>Implicit rules you don&rsquo;t notice</td>
					<td>Explicit rules only</td>
					<td>Fact-based memory</td>
			</tr>
			<tr>
					<td>Maintenance</td>
					<td>Re-run <code>--mine</code> whenever</td>
					<td>Manual edits forever</td>
					<td>Auto-accumulates</td>
			</tr>
			<tr>
					<td>Setup time</td>
					<td>~60 seconds</td>
					<td>10-30 minutes to write something useful</td>
					<td>~5 minutes</td>
			</tr>
			<tr>
					<td>Output format</td>
					<td><code>you.md</code> (readable + installable)</td>
					<td>CLAUDE.md (editable)</td>
					<td>Internal memory store</td>
			</tr>
			<tr>
					<td>Agent support</td>
					<td>Claude Code, Codex, Cursor, Gemini CLI</td>
					<td>Claude Code only</td>
					<td>Claude Code + MCP</td>
			</tr>
			<tr>
					<td>Privacy</td>
					<td>100% local, secrets redacted</td>
					<td>Local</td>
					<td>Local</td>
			</tr>
	</tbody>
</table>
<h2 id="where-ditto-falls-short">Where Ditto Falls Short</h2>
<p>Now, I want to be honest about the limitations I hit.</p>
<p><strong>1. It needs volume.</strong> I had about 40 sessions across 3 weeks, and it worked well. The author recommends at least 100 sessions for meaningful patterns. If you&rsquo;re new to coding agents and have less than a week of history, the output will be thin.</p>
<p><strong>2. It can&rsquo;t read your mind.</strong> Ditto mines what you <em>did</em>, not why you did it. If you had a bad day and rejected perfectly good code, that goes into the profile. The &ldquo;one sharp truth&rdquo; feature catches some of this, but you&rsquo;ll want to review the output before installing it.</p>
<p><strong>3. Cross-project patterns can clash.</strong> I work differently on side projects vs. production code. Ditto blends everything. There&rsquo;s no project-level profiling yet — your <code>you.md</code> is a single averaged version of you.</p>
<p><strong>4. No &ndash;uninstall.</strong> If you install it and change your mind, you have to manually remove the skill from your Claude Code config. A minor annoyance, but worth knowing.</p>
<p>Even so, none of these are deal-breakers. But even with these quirks, the core idea is solid enough that I&rsquo;m keeping it installed.</p>
<h2 id="real-world-scenario">Real-World Scenario</h2>
<p>Here&rsquo;s where Ditto shines: <strong>onboarding a new project.</strong></p>
<p>So say your teammate used Claude Code to refactor the auth module while you were out. You come back, open a fresh session, and start reviewing. Without Ditto, your agent has no idea what you care about. It starts suggesting abstractions you&rsquo;d reject. It writes verbose tests when you&rsquo;d prefer focused integration tests.</p>
<p>With Ditto, your agent reads your profile first. It knows you value <em>shipping speed over architecture purity</em> on this team. It knows you want <em>integration tests over unit tests for API routes</em>. Your review session is immediately tighter because the agent isn&rsquo;t guessing your preferences.</p>
<p>But here&rsquo;s the real test: I actually ran this. So I had a session where my agent wanted to introduce a service layer for a 3-endpoint API. My Ditto profile says &ldquo;no abstractions until 3rd repetition.&rdquo; The agent read that, skipped the service layer, and went straight to implementation. So it saved me about 10 minutes of back-and-forth.</p>
<h2 id="who-should-use-ditto">Who Should Use Ditto</h2>
<ul>
<li><strong>Heavy Claude Code / Codex users</strong> — If you have 100+ sessions, Ditto will surprise you with what it finds</li>
<li><strong>Teams standardizing agent behavior</strong> — Share a team <code>you.md</code> so everyone&rsquo;s agent speaks the same language</li>
<li><strong>Anyone tired of re-explaining themselves</strong> — You write your preferences once. Ditto extracts them from your history. Your agent remembers.</li>
</ul>
<p>Still, skip it if you use coding agents less than once a week, or if you&rsquo;re already happy with your CLAUDE.md setup.</p>
<p>But if you&rsquo;re on the fence, here&rsquo;s my take: you&rsquo;ll learn something about yourself.</p>
<h2 id="the-bottom-line">The Bottom Line</h2>
<p>Yet Ditto is one of those tools that seems small until you see what it does. It&rsquo;s not adding a new feature to your agent — it&rsquo;s making your agent actually <em>understand</em> you. From your real data. With zero configuration.</p>
<p>Plus, I went from &ldquo;eh, I can just write a CLAUDE.md&rdquo; to &ldquo;I can&rsquo;t believe I was doing this manually&rdquo; in about 30 seconds of running <code>--card</code>.</p>
<p>So here&rsquo;s my honest take: install Ditto. Run it once. Read what it says about you. Your agent will thank you.</p>
<p>Need a cloud server to host your team&rsquo;s agent profiles or run Ditto across centralized session logs? <a href="https://www.vultr.com/?ref=9904970" rel="nofollow sponsored noopener" target="_blank">Vultr offers a $100 trial for new users</a> with 32 global datacenter locations — deploy your profile server in under a minute.</p>
<hr>
<h2 id="whats-next">What&rsquo;s Next</h2>
<p>If Ditto got you thinking about agent personalization, there&rsquo;s a whole world of material on making AI coding agents actually understand you. Two books I keep coming back to:</p>
<ul>
<li><strong>&ldquo;Designing Agentive AI&rdquo;</strong> — covers the philosophy of agent-user relationships and why personalization changes everything</li>
<li><strong>&ldquo;Prompt Engineering for Developers&rdquo;</strong> — practical patterns for shaping agent behavior, including profile-based prompting</li>
</ul>
<p>Both dig deeper into the ideas Ditto surfaces from your logs. Worth a read if you&rsquo;re serious about making your agent <em>yours</em>. Yet it&rsquo;s the practical application that matters most.</p>
<p>On a tight budget? <a href="https://www.hostinger.com/?REFERRALCODE=4YNJONSONOUY" rel="nofollow sponsored noopener" target="_blank">Hostinger KVM VPS plans start at $3.99/mo</a> — more than enough for a lightweight Markdown file server to host your team&rsquo;s <code>you.md</code> profiles.</p>
<h2 id="faq">FAQ</h2>
<p><strong>Does Ditto send my data anywhere?</strong>
No. Everything runs locally on your machine. Session logs are read from your local <code>~/.claude/projects</code> directory and the output stays on your disk. Secrets are redacted before processing.</p>
<p><strong>Can I share my profile across my team?</strong>
You can — host the <code>you.md</code> on a shared drive or a simple web server. A <a href="https://www.digitalocean.com/?refcode=1dc18b5a8131" rel="nofollow sponsored noopener" target="_blank">$6 DigitalOcean droplet</a> is plenty for this. Point everyone&rsquo;s agent config to the same URL.</p>
<p><strong>Does it work with Cursor or Gemini?</strong>
Yes. Ditto supports Claude Code native, plus Codex, Cursor, and Gemini CLI. The <code>--install</code> flag auto-detects the target.</p>
<p><strong>Do I need to stop using CLAUDE.md?</strong>
Not at all. Ditto and CLAUDE.md complement each other. CLAUDE.md is for what you <em>know</em> about yourself. Ditto is for what you <em>don&rsquo;t</em>.</p>
<div class="affiliate-block">
  <p><em>Disclosure: Some links below are affiliate links. If you sign up through them, I may earn a commission at no extra cost to you.</em></p>
  <ul>
    <li><a href="https://toolgenix.nxtniche.com/go/do" rel="nofollow sponsored" target="_blank">DigitalOcean</a> — $200 credit for new users, \$6/mo Droplets</li>
    <li><a href="https://toolgenix.nxtniche.com/go/vultr" rel="nofollow sponsored" target="_blank">Vultr</a> — $100 trial credit, 32 global datacenters</li>
    <li><a href="https://toolgenix.nxtniche.com/go/hostinger" rel="nofollow sponsored" target="_blank">Hostinger</a> — KVM VPS from \$3.99/mo</li>
  </ul>
</div>
<hr>
<p><em>Earlier today I covered <a href="/posts/mindwalk-coding-agent-session-visualizer-review/">mindwalk</a>, which shows you WHAT your agent did. Ditto flips the question around — it teaches your agent WHO you are. Together they form a complete picture of agent observability and personalization.</em></p>
]]></content:encoded>
    </item>
  </channel>
</rss>
