Axiom Lift

Claude Code · Codex · long projects

The session is short. The project runs for months. Here's how to keep the thread

Long projects outgrow the session, and parallel agents don't share what they learn. Why, the fixes that work in Claude Code and Codex today, and how Axiom Lift keeps one history.

30 September 2026

Eight weeks of short sessions on one project, each with its own decisions; today's session sees only the files loaded at launch

The issue, as reported

It is one of the most widely reported problems on the Claude Code, Codex and OpenCode issue trackers: in a sweep of public issues, several hundred developers describe a long-running project outgrowing the session, many of them since July.

The pattern is the same across tools. On day one the agent works out the architecture and the decisions with you. On day two the session is gone and all of it has to be explained again. Some developers say they have stopped attempting multi-day tasks for that reason. People with hundreds of sessions behind them say they can no longer find the one where they stated a requirement. Heavy users count dozens of compactions a month, and several built their own memory system.

Running agents in parallel makes it worse. Close to a hundred developers describe several sessions or sub-agents working on one project with no way to see each other's findings: one session changes a schema, and another carries on building against the old one. A sub-agent given a narrow role, such as testing, has been reported drifting out of that role after an automatic compaction.

What developers report

Day twothe architecture and decisions from day one have to be explained again
Session 300nobody can find the conversation where a requirement was stated
Compactiondozens a month on a busy project, each one summarising more away
In parallelfive sessions on one project, none can see what the others found
Sub-agentsa narrow role drifts after an automatic compaction

Why it happens

Every session is a fresh start. Anthropic's documentation says so directly: each Claude Code session begins with a fresh context window. A new session loads your CLAUDE.md or AGENTS.md and a capped memory index. It does not read your earlier conversations, where the reasons behind the decisions live.

Eight weeks of short sessions on one project; the decisions sit inside closed sessions, and today's session loads only the instruction files
A long project is hundreds of short sessions. Each new one starts from the files, not from what was said.

Three things make that worse over months:

How to fix it today

These steps use only the tools themselves and follow their current documentation.

  1. Keep the transcripts for the life of the project

    In Claude Code, raise the retention in ~/.claude/settings.json. A project's own settings file can override yours; our guide to the 30-day deletion covers the checks.

    {
      "cleanupPeriodDays": 3650
    }
  2. Name sessions by workstream

    Start with claude -n billing-migration, or run /rename billing-migration in a session, then come back with claude --resume billing-migration. In the picker, type to search and press Ctrl+A to see every project. In Codex, codex resume reopens a recent chat.

  3. Keep a decision log in the repository

    One dated line per decision, with the reason and what it replaces, committed with the code. Add a line to AGENTS.md telling both tools to read it before changing anything it covers.

    2026-08-04  Postgres, not SQLite: reporting needs joins
    2026-09-12  Retries in the client, not the proxy (replaces 08-20)
    2026-09-29  Invoices are immutable once sent
  4. Hand over at the end of each session

    Keep a short handoff file (now, next, what failed) and load it automatically at start-up. Our article on re-explaining your project has the file and a working SessionStart hook.

  5. Give sub-agents somewhere to write

    A Claude Code sub-agent (.claude/agents/<name>.md) with memory: project keeps notes in .claude/agent-memory/<name>/, and the first 200 lines of its MEMORY.md load next time. For parallel sessions and Codex sub-agents, add one instruction to AGENTS.md: append findings and decisions to docs/findings.md before stopping.

    ---
    name: test-runner
    description: Runs the test suite and reports failures
    memory: project
    ---
  6. Let live Claude Code sessions talk

    From v2.1.224, cross-session messaging is on with nothing to enable. Run /list-agents to see your other sessions, then ask: "Tell the session working on the payments API that the schema migration finished."

What the fix doesn't cover

What still goes wrong

It is all upkeep. The log, the handoff file and the findings file are only as current as whoever last remembered to update them. Finding old reasons is slow. You can resume one named conversation at a time. The one where a trade-off was argued out in June still has to be found and read. Messages don't last. The docs say a cross-session message is "a piece of text one Claude writes to another, never the sender's conversation history". A session that starts next week gets nothing unless someone wrote it down. Sub-agent memory is per agent and capped, and Claude Code's agent teams are experimental: /resume doesn't bring back in-process teammates. Nothing crosses tools except the files you write yourself.

How Axiom Lift solves it

Axiom Lift keeps one history of the project, built from the sessions your tools already save, so the record doesn't depend on anyone's discipline.

The free fix

  • Written by hand. A decision log and handoff file, current only if someone updates them.
  • One conversation at a time. Old reasons mean finding and reopening the right session.
  • Per tool. Claude Code's memory stays in Claude Code; Codex's stays in Codex.
  • Sessions age out. Claude Code deletes transcripts after 30 days unless you change it.

With Axiom

  • Filed as you work. A small helper reads the sessions Claude Code, Codex and OpenCode save, never edits them, and picks out requirements, decisions and corrections automatically.
  • Asked, not re-read. The next session asks Axiom over a read-only MCP connection and gets the few lines that are true now, not the whole history.
  • One history across tools. What was settled in Claude Code is there when you open Codex or OpenCode.
  • Changes of mind kept. An old decision is struck through, not erased, and linked to the moment it was said.
Sessions from Claude Code, Codex and OpenCode, typed and automated, feeding one history that the next session asks
Every session adds to one history. The next one, in any of the three tools, asks it what is true now.

On a project that runs for months, the plan matters. On the free plan, your AI can reach the last six months of history (up to 1 GB). Pro keeps all history and tells you when a later conversation changed an earlier decision. Automated agent runs are told apart from the sessions you type, kept and searchable, and out of the way.

For parallel agents, Axiom helps only in part. What one session settled is there for any later session to ask, in any of the three tools. But it is not a live channel between agents running at the same moment, and it is not a scratchpad sub-agents write to mid-task. Use the tool's own messaging for live coordination. Axiom also doesn't replace AGENTS.md for rules that must always apply, and it doesn't cover Cursor, or ChatGPT and Claude in a browser.

Install is one command in a desktop terminal (Mac; Linux and Windows in beta; needs Python 3). It shows you what it found before anything is sent, it's free, and axiom uninstall removes it.

Keep one history for the whole project

One command in the terminal where you use Claude Code, Codex or OpenCode. Free, no card.

Try it free →

Claude, Codex and OpenCode are trademarks of their owners; Axiom works alongside them and is not affiliated.