Claude Code Companion

Your Claude Code conversations,
as living notes.

LifeJournal archives every conversation while you're having it — filed by project, searchable, annotable like everything else you write. Nothing to configure.

Works with the CLI, the desktop app and the VS Code extension.

The terminal remembers everything, and you can reach none of it

Claude Code is one long scroll. The decision you took twenty minutes ago, the snippet you meant to keep, the explanation worth re-reading — it all goes past and out of the screen. Nothing to pin, nothing to file, no way back except scrolling.

LifeJournal turns the conversation into notes while you're having it — filed by project, annotable, and searchable alongside everything else you write.

What it does

Install LifeJournal, answer one question, and your conversations start filing themselves.

Archived as you talk

Conversations land in a dedicated LifeJournal database message by message, as they happen. No hook to install, no configuration file to edit.

LifeJournal watches the transcripts Claude Code already writes to disk, across every profile on the machine (~/.claude, ~/.claude-perso, and any other). Writes arrive in bursts, so a 1.5 s debounce groups them into a single update instead of a hundred. Nothing is sent anywhere: the transcripts are already on your computer, and so is the archive.
Advanced integration — archived live
YouWhy does the watcher miss the last message of a session?
Claude CodeBecause the transcript is flushed in bursts. A 1.5 s debounce groups them, so the tail isn't lost…
YouGood. Keep that — I want it pinned.

CLI, desktop app or VS Code — all the same

However you use Claude Code, the archive works. You never have to touch a command line to get it.

The command line, the desktop app and the VS Code extension all write the same transcripts to the same place: ~/.claude/projects/. LifeJournal reads from there, so it doesn't care which one you use — or whether you switch between them during the same week. Only the integrated terminal below needs the command-line version.
Command line
Desktop app
VS Code

Filed by project, without filing anything

Conversations are placed under the working directory they belong to. Open a project node and every conversation you ever had about it is there — with the notes, files and tasks that already live under it.

Each working directory becomes a node under "Claude Code Directories", and each conversation is attached to it through a reference — the same mechanism that files every other note in LifeJournal. Titles carry only the date and the subject, because the project is already in the placement. Nothing is duplicated: the conversation lives in one place and shows up wherever it's referenced.
Sidebar — filed by directory
Claude Code Conversations ├── [referrer → ~/projects/atlas] │ ├── 2026-08-24 13:41 — Fixing the sync race condition │ └── 2026-08-24 16:02 — Advanced integration └── [referrer → ~/projects/website] └── 2026-08-25 09:18 — Landing page rewrite

Titles that are yours

Rename a conversation with /rename — Claude Code's own command, nothing to install. A title you chose is never overwritten by a generated one.

Three sources, from the most deliberate to the most guessed: a +title marker if you use a hook, the native /rename command, and finally the auto-generated title as a last resort. As soon as you name a conversation yourself, that name sticks — later archiving passes leave it alone.
> /rename Advanced integration Conversation renamed — the archive follows.

Pin what matters, where it matters

Pin any message in one click — and a conversation can have several tabs. One for what you need to keep in mind right now, one for the messages that stay important long after. Nothing worth keeping scrolls away again.

Those tabs are LifeJournal's reference types, and you decide what each one means. One convention that works well: Pin for what you need in view while the work goes on — a complex session scrolls fast, and a pinned message stays reachable until you unpin it; Strong Ref for what should still be findable in six months. The importer already places summary-looking messages into Strong Ref on its own. The toolbar buttons are shortcuts, the same way a chat app offers two or three emoji before the full picker: the regular button still opens the complete list of tabs — pinning just skips the menu.

Every file edit, readable

Each file Claude Code touches becomes a block carrying its diff — green and red backgrounds for what changed, and language colouring inside the lines, exactly as in the terminal.

Diffs get their own ± tab on the conversation, and also appear inline in the thread if you want them there — it's a setting. On a single working session that can be well over a hundred diffs, which is precisely why they need a tab of their own rather than a place in the scroll.
Chat ± Diffs 📌 Pinned 🔖 Strong Ref
src/plugins/claude/ClaudeWatcher.js
const watcher = chokidar.watch('*.jsonl', {- awaitWriteFinish: false+ awaitWriteFinish: { stabilityThreshold: 1500 } }); + // group write bursts

Claude Code, inside LifeJournal Command line only

A drawer at the bottom of the window, with Claude Code running in it. Resume any archived conversation with the ▶ button on its page, and run several sessions side by side.

This is the one feature that requires the command-line version of Claude Code. LifeJournal looks for it in your PATH, in the standard installer locations, and even inside the VS Code extension — which ships its own binary outside the PATH. If it isn't found, the ▶ button simply doesn't appear and archiving carries on as usual.
LifeJournal — integrated terminal
▶ Resuming: Advanced integration > check the watcher on the second profile Reading ~/.claude-perso/projects/ — 2 sessions being watched.

One question, on the first run

If LifeJournal finds Claude Code transcripts on your machine, it offers to archive them. Say yes and it creates the database, adds it to your selector, and imports the backlog behind a progress bar you can interrupt.

The detection takes about 12 ms and reads folder names only — never the content of your conversations. If you say no, nothing is created and nothing is read. The offer comes back later, so discovering Claude Code six months from now works exactly the same way.

265 Claude Code conversations found on this computer.

Archive them in LifeJournal?

Not now Archive them

What you need

You bring Claude Code. LifeJournal does the rest.

Archiving Claude Code installed and signed in — any interface: CLI, desktop app or VS Code extension.
Integrated terminal Claude Code on the command line. Without it, the ▶ button doesn't appear and everything else still works.
Platforms The desktop versions: Windows, macOS and Linux. The web and mobile apps can't read your local transcripts.
Account None. The archive is a local LifeJournal database — sync it only if you want to.

Claude Code stores its folder at the same place on all three platforms, so detection works as-is, wherever you are.

Where LifeJournal stops

Worth being clear about, because it shapes everything above.

You bring your own Claude Code

LifeJournal does not bundle, resell or proxy Claude Code, and it isn't going to. It's a terminal and a reader — the way VS Code hosts a terminal. You install Claude Code and sign in yourself, with your own account.

No special build to download

There's no separate "Claude edition" of LifeJournal. The app you already have detects Claude Code and offers to archive it. Nothing extra to install, and nothing to reinstall when you change your mind later.

No API key, no per-token bill

The integrated terminal runs your Claude Code, on your own subscription and your own quota. LifeJournal never sits between you and Anthropic, so there's no second bill and no key to paste anywhere.

Known limits

Two things worth knowing before you start.

Desktop only. The archive reads transcripts from your own disk, so it needs the Windows, macOS or Linux app. The web and mobile versions can't see them.

The initial import is a heavy operation. A few hundred conversations take a couple of minutes. It runs behind a progress dialog and can be interrupted at any point.

Stop scrolling back.

Install LifeJournal, answer one question, and your Claude Code history becomes something you can actually search.