Axiom Lift

Claude Code · Codex · sessions

Claude Code and Codex start every session blank. Here's how to fix it

Developers report re-briefing Claude Code and Codex after every restart. Why each session starts blank, the fixes that work today, what they miss, and how Axiom Lift closes the gap.

30 September 2026

A week of mornings: Monday, Tuesday and Wednesday each start with the same briefing; Thursday carries on

The issue, as reported

On the Codex issue tracker, an open report from 14 September describes what happens after a usage limit cuts off a long task. When the task is resumed, Codex spends a large part of the new allowance rebuilding what it already knew: re-reading repository files, rerunning checks and tests, and working out again which steps are finished. The developer now writes handoff summaries by hand so that Codex doesn't redo completed work.

Claude Code users describe the same thing. At the end of August, a developer on r/ClaudeAI who runs eight Claude Code sessions, restarted each night by a scheduled job, said the agents started every morning with no idea what they had been doing, and had to be re-briefed from a phone. Their fix was a handoff file and a start-up hook, which is where the free fix below comes from.

The harder loss is what was learned along the way. A feature request on the Claude Code tracker, opened in August and still drawing replies in late September (21 so far), points out that after an agent spends a long time debugging a problem, what was tried, what failed and why it worked is hard to carry into the next session. Developers keep it by hand in CLAUDE.md, or explain it again.

Built-in memory helps, but heavy users hit its edges. One open request describes a project with around 500 memory files where Claude Code's index limit has become a constant ceiling. On the Codex side, a report from 26 September says that archiving a finished chat before Codex gets round to it means the work in it never becomes a memory at all.

Reported in

Why it happens

The model keeps nothing between sessions. Anthropic's documentation says it directly: each Claude Code session begins with a fresh context window. What the agent knows at the start comes from files loaded at launch, plus whatever it reads as it works.

What a fresh session loads: your instructions, a capped memory index, and the conversations it never opens
A new session reads the files loaded at launch. The saved conversations, where the reasons live, stay closed.

Two kinds of file are loaded:

The full conversations, which hold the reasons and the failed attempts, are saved on disk (Claude Code keeps them as JSONL files), but a new session doesn't read them. You can reopen one conversation at a time. So a fresh session gets the rules you wrote plus a short, capped summary for one tool on one machine, and that is the gap the reports above describe.

How to fix it today

These steps need nothing beyond the tools themselves, and follow their current official docs.

  1. Put what's settled in AGENTS.md

    Claude Code v2.1.277 and later reads AGENTS.md too, when the project has no CLAUDE.md. If you have both, put @AGENTS.md on the first line of CLAUDE.md so one file serves both tools. Keep it under 200 lines: the Claude Code docs say longer files use more context and are followed less reliably. Put in build and test commands, what not to touch, and one line per settled decision with its reason. In Claude Code, run /context and check Memory files to confirm it loaded.

  2. Keep a handoff file

    One small file in the project root, rewritten at each milestone. Ask the agent to update it before you stop:

    NOW      auth refactor, step 3 of 5
    NEXT     move token refresh into middleware
    DECIDED  Postgres, not SQLite (reporting joins)
    FAILED   retry wrapper: made timeouts worse
    DON'T    touch /migrations
  3. Load it automatically in Claude Code

    A SessionStart hook runs when a session starts, resumes, is cleared or is compacted, and Claude Code adds its plain output to the context. Add the snippet below to .claude/settings.json. The args form is what the docs recommend when a hook uses a path placeholder (this one assumes macOS or Linux). Keep the file in place, even empty, so the hook always has something to read. In Codex, add a line to AGENTS.md asking it to read HANDOFF.md first.

    {
      "hooks": {
        "SessionStart": [
          {
            "matcher": "startup|resume|clear|compact",
            "hooks": [
              {
                "type": "command",
                "command": "cat",
                "args": ["${CLAUDE_PROJECT_DIR}/HANDOFF.md"]
              }
            ]
          }
        ]
      }
    }
  4. Turn on Codex memories

    Local memories are off by default. Turn them on in the ChatGPT desktop app under Settings > Personalization > Enable memories, or add this to config.toml:

    [features]
    memories = true
  5. Resume when you're continuing the same task

    claude --continue reopens the last conversation in the directory, claude --resume opens a picker, and codex resume reopens a recent chat. When you resume a long session that has been idle for about an hour, Claude Code may offer to resume from a summary. Choose the full session when the details matter: the docs note that whatever the summary leaves out is no longer in context.

What the fix doesn't cover

What still goes wrong

Someone has to keep it current. If the agent forgets to rewrite the handoff file, the next session reads a stale plan and nothing warns you. Files hold conclusions, not reasons. The debugging behind a fix, and the approaches that failed and why, stay in the conversation. That is the gap the Claude Code feature request above describes. Built-in memory is a summary by design. It is capped, chosen by the model, specific to one tool and, in Claude Code, one machine. Codex writes memories only after a chat goes idle, and the open report above says archived chats are skipped. Nothing crosses between tools except the AGENTS.md you write yourself. It is context, not enforcement. The Claude Code docs describe these files as context, not enforced configuration.

How Axiom Lift solves it

Axiom Lift works from the full conversations rather than a summary you have to maintain.

The free fix

  • You keep it by hand. A handoff file rewritten at each milestone; if it goes stale, nothing warns you.
  • Files hold conclusions. The debugging behind a fix, and what failed and why, stay in the conversation.
  • A capped summary. Built-in memory is chosen by the model, for one tool and, in Claude Code, one machine.
  • One tool at a time. Nothing crosses between tools except the AGENTS.md you write yourself.

With Axiom

  • Captures as you work. A small helper on your computer reads the sessions Claude Code, Codex and OpenCode already save, never edits them, and captures again at the moment of compaction. Requirements, decisions and corrections are picked out automatically: nothing to tag, nothing to write up.
  • Hands back what is true now. The AI asks Axiom over a read-only MCP connection and gets the few lines that are true now, not the whole history. Before each prompt, Axiom adds a few lines about what is already decided on that subject.
  • Keeps the change of mind. The old decision is struck through, not erased, and linked to the moment it was said.
  • Crosses tools. What you settled in Claude Code is there when you open Codex or OpenCode.
What Axiom keeps from every session and hands back to the next one over MCP
Kept as you work, handed back as a few lines: the next session starts from what is decided.

What it doesn't do: it doesn't replace AGENTS.md or CLAUDE.md for rules that must always apply, and it can't make a model follow anything. It doesn't cover Cursor, or ChatGPT and Claude in a browser. On the free plan, your AI can reach the last six months of history.

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 every decision, in every session

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.