dev.toJune 22, 2026
Feature

Anthropic's storage-layer quartet, and what each format is actually for

The earlier piece I wrote about Claude Code's invisible sessions made the user-facing argument: keep your project state in your repo, not in the application's storage layer, because the storage layer…

---

title: "Anthropic's storage-layer quartet, and what each format is actually for"

published: true

published_at: 2026-06-22 09:00 -0400

description: "The earlier piece I wrote about Claude Code's invisible sessions made the user-facing argument: keep your project state in your repo, not in the application's storage layer, because the storage layer…"

tags: anthropic, claudecode, aitooling, storage

canonical_url: https://pickles.news/posts/anthropic-storage-layer-quartet/

cover_image: https://pickles.news/posts/anthropic-storage-layer-quartet/header.jpg

---

The earlier piece I wrote about Claude Code's invisible sessions made the user-facing argument: keep your project state in your repo, not in the application's storage layer, because the storage layer is in active churn. This is the architectural follow-up. It's about *what* is changing, *what each format optimises for*, and *what the four-formats-in-twelve-months pattern reveals about Anthropic's product strategy* for the agent surface — separately from what an individual operator should do about it.

There are four storage formats in scope, all of them either currently in production for some subset of users or still readable on disk for others. They are not minor revisions of each other. Each format encodes a different answer to the question *what is a Claude session, and who is it scoped to.* The migrations between them are not housekeeping. They are visible product-strategy decisions, and reading them as architectural artefacts gets you a clearer picture of where Anthropic is taking the product than reading the marketing pages does.

Let me take the four in chronological order.

Format 1 — `local-agent-mode-sessions/` (the legacy form)

The first format, used through 2025 and still readable on disk for users who never deleted it, lived under a directory called `local-agent-mode-sessions/`. The name is the load-bearing thing. It assumes the existence of an *agent mode* as one feature of Claude Code among others, with its own session lineage separate from whatever else the application stored.

That assumption was correct in 2025. Claude Code at the time had a meaningful distinction between *chat-style* interactions and *agent-mode* interactions — agents could call tools, navigate the filesystem, run shell commands; chat could not. The agent-mode sessions had their own storage because they were a distinct interaction model with distinct retention behaviour, and the directory name reflected that.

What's interesting is what this format does *not* do. It does not key by account. It does not key by organisation. It does not assume multi-tenancy. The directory is one flat namespace of agent-mode sessions on the local machine, presumed to belong to one user who is logged into one account. The schema implicitly assumes the desktop application is a personal tool with one user identity behind it. Anthropic shipped Claude Code in 2024–2025 to a much smaller, more individual customer base than they'

Read full article on dev.to