How I run Claude Code with Solo and Library | Building Products  

 [Mischa Sigtermans](https://mischa.sigtermans.me)

   Menu Close        [Thoughts](https://mischa.sigtermans.me/thoughts) [Books](https://mischa.sigtermans.me/books) [Consultancy](https://mischa.sigtermans.me/consultancy) [About](https://mischa.sigtermans.me/about)  

 [← Thoughts](https://mischa.sigtermans.me/thoughts)   September 29th, 2026  · AI Open Source 

How I run Claude Code with Solo and Library
===========================================

Claude Code does the work, Solo holds whatever outlives the session, and Library remembers every chat and session I've had. Three layers, three lifetimes.

On 6 August I typed one line into Claude Code. Read the plan we made in Library, and send the phases to the worker in Solo.

That was the whole prompt. Here's what happened next.

Claude searched Library and found the Desktop chat where I'd worked out the plan three days earlier, 28 messages long. It also found two earlier Claude Code sessions in the same repo. Library was seven conversations behind, so it synced first. Then it did the part I care about most: it checked the plan against the code that was actually there, because the chat was already behind the repo.

It wrote a spec in five phases to a Solo scratchpad and handed it to a Codex worker running in a Solo process. Then it set a timer to wake itself when that worker went idle. When Codex reported back, Claude didn't pass the report on. It checked every claim against the repo first. 'Verified against the repo, not on his word.'

I made the product calls in between. I didn't copy a plan, open a terminal, or check on anybody.

That's my setup now. Three layers, each with its own lifetime.

Three layers, three lifetimes
-----------------------------

**Claude Code** is the session. It reads, writes, runs tests, and talks to me. When the session ends, whatever it knew goes with it.

**[Solo](https://soloterm.com)** is everything that has to outlive a session. Long-running processes, workers, scratchpads, todos, locks, and timers. If a job takes longer than my attention span or needs someone to supervise it, it lives in Solo.

**[Library](https://github.com/mischasigtermans/claude-library)** is everything that already happened. Every chat I've had on claude.ai and in the Desktop app, and every Claude Code session on this machine, in one local index any session can search.

Claude Code is the hands. Solo is the workbench. Library is the memory.

How I ended up on Solo
----------------------

I didn't start here. I've been running Solo since 2 April. The agents took longer: in June I was still running Claude Code's agent teams, and [in one day I moved every subagent to Solo](/thought/i-stopped-running-agent-teams-and-moved-to-solo).

The reason was simple. Teams live inside a session. Solo workers don't. A worker in Solo keeps running when I close my laptop, keeps its output when I open a new session, and can be anything that runs in a terminal. That's how Codex ends up as a worker next to Claude.

My rules sort the work into four tiers now, from a single grep up to a Solo worker, under one line: use the cheapest one the work survives. Most work never leaves the session. Solo is for what does.

The part I still find underrated is the timer. The orchestrator doesn't poll. It asks Solo to wake it the moment a worker goes idle, and Solo does. In the Stagent talents refactor in July, one orchestrator session ran 34 of those timers and barely touched a file itself.

Library started as a way to read my chats
-----------------------------------------

I do my thinking in Claude Desktop and my building in Claude Code. For a long time those two didn't know about each other. A plan from the Desktop app reached a coding session through copy and paste, or not at all.

In May I built Hansard to fix that. It read my Desktop conversations through the macOS Keychain and cached them locally, so any Claude Code session could search them. It became Library, and Library grew a second source: every Claude Code session on disk.

Those session files are big. Roughly 99% of their bytes are tool results: file contents, command output, diffs. Library keeps the other 1%. My prompts, Claude's replies, and the names of tools that changed something. Never the file contents. The repo already has those.

As I write this, it holds 2.778 conversations. When I ask 'didn't we already decide this?', the answer comes with a date and the session where it happened.

Reading my own corrections
--------------------------

The most useful thing I've done with Library wasn't looking something up. It was looking at myself.

On 18 August I asked Claude to find every time I'd corrected it. A regex found 1.872 candidates. Haiku classified them. 669 were real corrections, 363 of them on work in Claude Code.

The biggest group, around 100, was the same sentence in different words: you said it was done, and it isn't. 'I still get that 502.' 'I don't see any difference.' Second was agreeing on scope before building. Third was looking at how I'd already solved it in Onoma or Stagent before inventing something new.

The uncomfortable finding: the top two were already in my instructions. Verify before you assert. No em-dashes. The agents read those rules and broke them anyway, 107 times between the two. More prose doesn't fix that. Enforcement does, a hook that blocks a 'done' without a check. I haven't built those hooks yet. I did stop pretending another paragraph in my CLAUDE.md would do it.

The other number I didn't expect: of the 89 times Claude gave me a recommendation, I went a different way in 40 and followed it partly in 15. Usually because I wanted to see it myself first.

Where it goes next
------------------

My newer projects keep records next to the code: what's true now, why it was decided, and what happened. Library is the only thing that has the sessions where those decisions were made, so the next step is indexing the records next to them. That's a post of its own.

Installing Library
------------------

```
/plugin marketplace add mischasigtermans/by-mischa
/plugin install library@by-mischa

```

macOS only, because it reads Claude Desktop's cookies through the Keychain. Node 22.5 or newer. Run `/library sync` once for your chats. Claude Code sessions ingest on their own at the start and end of every session.

One line
--------

The prompt on 6 August was one line because everything else was already somewhere. The plan was in Library. The worker was in Solo. The rules were in the repo.

The session is the part I throw away. Everything worth keeping lives somewhere that outlasts it.

 *thanks for reading*

Hi, I'm [Mischa](https://mischa.sigtermans.me/about). I've been *shipping products* and *building ventures* for over a decade. First exit at 25, second at 30. Now Partner &amp; CPO at [Ryde Ventures](https://ryde.ventures), an AI venture studio in Amsterdam. Currently shipping [Stagent](https://stagent.com), [TAP](https://tap.fm) and [Steddle](https://steddle.com). I [write](https://mischa.sigtermans.me/thoughts) about what I learn along the way. [More about me](https://mischa.sigtermans.me/about).

Keep reading: [Launching Onoma alpha: building AI memory that actually works](https://mischa.sigtermans.me/thought/launching-onoma-alpha).

  [← Thoughts](https://mischa.sigtermans.me/thoughts) Connect
-------

  [X](https://x.com/mischamartijn) [LinkedIn](https://linkedin.com/in/mischasigtermans) [GitHub](https://github.com/mischasigtermans)  

 © 2026 Hold My Beer B.V. · [RSS](feed:https://mischa.sigtermans.me/feed)
