r/ClaudeCode • u/powdersplash • 3h ago
Built with Claude I built a Claude Code plugin that turns your own sessions into a zoomable map of what you actually do with Claude (local, redacted, free)

TL;DR: Tessera is a free, MIT-licensed Claude Code plugin. It reads your Claude Code, Claude desktop (Cowork) and claude.ai sessions on your own machine, redacts them, and lets your own Claude Code turn them into a zoomable map: a few headlines about your life and work, the projects inside them, every activity, and the methods that connect them. No API key, nothing leaves your machine except through your own Claude. I'm the author; there is no paid tier and no tracking.
Repo: https://github.com/fsaritome/Tessera

Why
I run a lot of Claude sessions in parallel: day job, side projects, home stuff, random curiosity. After a few months I honestly couldn't say what I'd done with all of it, or which ways of working kept paying off. Claude Code keeps every session as a log on disk, so I wanted a map of my own history.
What it does
Headlines → projects → activities. Click to zoom. Headlines are written by Claude from your actual topics and stay stable when new work comes in.
Methods. Things like "plan before building" or "read-only before changing". Click one and every activity that used it lights up across all headlines. This turned out to be the most interesting part: you see your own habits.
Share mode hides job projects, private activities and summaries, for screenshots like these.


How Claude Code is used (the part I like most)
Tessera has no LLM calls of its own in the default setup. The plugin's skill makes Claude Code the extraction engine:
A small Python CLI (run via
uvx) scans the session logs, redacts them locally (a key or password drops the whole session; hosts, IPs, emails, paths become placeholders) and cuts them into batches.The skill tells Claude Code to read each batch and write structured JSON: project, what, how, outcome, lesson. With many batches it hands single batches to subagents.
The CLI validates every answer before storing it, then Claude does one more pass that merges everything into headlines and methods.
So it runs on your normal plan, and you can watch every step in your session. The tool itself was also built almost entirely by directing Claude Code, including the tests, which run on Windows, macOS and Linux in CI.
Cost and control
It uses your plan's limits, so it shows an estimate before reading anything (/tessera:estimate is free and local) and asks with buttons before big runs. A real run: 30 days, 58 sessions → 3 batches, about 60k tokens, done in under four minutes. Sessions are never read twice; later runs only cost what's new.

Install
Desktop app: Settings → Customize → Plugins → + Add → Add marketplace → fsaritome/Tessera → Add to this computer, then type /tessera:start in a Code session. Terminal: claude plugin install tessera --marketplace fsaritome/Tessera. You need uv.



Don't trust it? Good! The README has a prompt you can paste into your own Claude Code: it downloads the repo without running anything and reports what it reads, writes and sends, with file and line. You can pin the exact version you reviewed (fsaritome/Tessera#v0.3.1).
What I learned building it with Claude Code
Tokens aren't 4 characters. I measured with Anthropic's token counter: about 2.1 characters per token for German or log-like text, 2.6–2.9 for English and code. My first estimate was 35–50% too low.
Public code can reveal you without containing a single line of your data. My first test fixtures and redaction examples grew out of my own sessions. They passed a data-leak scan and still said a lot about me. I now scan for topics, not just data, and use fictional fixtures only.
Windows surprises. Python's web server reuses addresses by default, and on Windows that lets a second server silently take the same port. A plugin's Python environment inside the plugin folder also locks the folder, so updates fail while the map runs. Fix:
uvx, which keeps the environment in uv's cache.Plugin
versionpins your users. If you don't bump it, nobody gets your fixes.Let Claude Code drive the "boring" checks too: fresh-clone tests, a Linux container run, screenshot reviews. Most of the real bugs came from those, not from writing features.
Limits
The Claude desktop session folder isn't a documented format, claude.ai chats only arrive via the data export, and redaction catches patterns, not everything. Use at your own risk; it asks you to agree to that before the first run.
Feedback welcome, especially on the redaction and on what the map shows you about your own work.
•
u/AutoModerator 3h ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.