Skip to content
CytSoftwarePublic

About

Continue work across Codex and Claude Code with portable local context

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Continuum

Continue the same coding task across Claude Code and Codex.

Continuum is a local plugin that maintains a small, portable checkpoint for each Git repository and branch. When you stop working in one coding agent and open the other, Continuum automatically injects the latest checkpoint so the new agent can continue with the relevant objective, recent results, and working tree state.

It does not copy hidden reasoning or transplant either agent's native session. Claude Code and Codex keep their own conversations and authentication.

Claude Code ── saves checkpoint ──┐
                                 ├── local Continuum store
Codex      ── loads checkpoint ───┘

What gets transferred

Continuum currently records:

  • The recent user request and assistant result
  • Which agent wrote the checkpoint
  • Repository and branch identity
  • Current commit and commit subject
  • Modified and untracked file names
  • A Git diff summary

Only the three most recent turns are rendered into the portable context. The checkpoint is capped at 12,000 characters by default.

Continuum does not make an additional model call to create the checkpoint. Its first release uses deterministic capture, keeping the token cost limited to the context the receiving agent reads.

Requirements

  • Claude Code and/or Codex with plugin support
  • Git
  • Python 3.10 or newer, available as python3
  • Linux, macOS, or WSL

Native Windows is not supported yet because the current locking implementation uses the Unix fcntl module.

For context switching, install Continuum in both Claude Code and Codex on the same machine and operating-system user. Installing it in only one agent is still useful for inspecting checkpoints, but automatic handoff requires both.

Install in Claude Code

Add the public Continuum marketplace and install it at user scope:

claude plugin marketplace add CytSoftware/continuum
claude plugin install continuum@continuum --scope user

Start a new Claude Code session. If you installed it from an existing session, run:

/reload-plugins

User scope makes Continuum available in every project for that Claude Code installation. Continuum is a Claude Code plugin; it does not run in ordinary conversations on claude.ai.

Install in Codex

Add the public Continuum marketplace and install the plugin:

codex plugin marketplace add CytSoftware/continuum
codex plugin add continuum@continuum

Start a new Codex thread after installation. Codex will ask you to review the three Continuum hooks the first time they load. Review them, then choose Trust all and continue so automatic capture can run.

If you use multiple Codex homes or wrappers, install Continuum separately in each environment. For example, an Orca-managed Codex runtime may have a different CODEX_HOME from a standalone Codex installation.

How to use it

There is no handoff command in the normal workflow:

  1. Work normally in Claude Code or Codex.
  2. When the agent finishes a turn, Continuum updates the local checkpoint.
  3. Open the other agent in the same repository and Git branch.
  4. Its startup hook automatically loads the checkpoint written by the first agent.
  5. Continue working. The second agent now maintains the checkpoint in the same way.

Continuum only injects a checkpoint when it was written by the other agent. Opening another session in the same agent does not add redundant context.

To ask an installed agent to inspect the checkpoint, say:

Show the current Continuum context and status.

The bundled context skill can show the context path, display the checkpoint, or clear it. Clearing context is always explicit.

Storage and privacy

By default, checkpoints are stored outside the repository:

${XDG_DATA_HOME:-$HOME/.local/share}/continuum/
└── projects/
    └── <repository-id>/
        └── <branch-id>/
            ├── context.md
            ├── state.json
            ├── history.jsonl
            └── lock

Files are created with user-only permissions. Continuum applies best-effort redaction to common API key, bearer token, and access token patterns. Treat the checkpoint store as sensitive anyway: arbitrary prompts and assistant results can contain private information that no regular expression recognizes.

Continuum never commits checkpoint data to your project and does not upload it to a Continuum service. The plugin has no service, account, API key, or network backend.

Configuration

Set these environment variables before starting Claude Code or Codex:

Variable Default Purpose
CONTINUUM_HOME XDG data directory Override checkpoint storage
CONTINUUM_MAX_CONTEXT_CHARS 12000 Limit injected Markdown size
CONTINUUM_MAX_AGE_DAYS 14 Ignore stale checkpoints

Both agents must resolve CONTINUUM_HOME to the same directory.

Updating

Claude Code:

claude plugin marketplace update continuum

Then apply the available update through /plugin, or enable automatic updates for the Continuum marketplace.

Codex:

codex plugin marketplace upgrade continuum
codex plugin add continuum@continuum

An update that changes hooks may require reviewing and trusting the new hook hashes.

Uninstalling

Claude Code:

claude plugin uninstall continuum@continuum --scope user
claude plugin marketplace remove continuum

Codex:

codex plugin remove continuum@continuum
codex plugin marketplace remove continuum

Uninstalling the plugin does not delete saved checkpoints. Remove the Continuum data directory separately if you also want to erase its history.

Development

Clone the repository:

git clone https://github.com/CytSoftware/continuum.git
cd continuum

Load the checkout directly in Claude Code:

claude --plugin-dir "$PWD"

Run the CLI directly from a target project:

python3 /path/to/continuum/scripts/continuum.py status
python3 /path/to/continuum/scripts/continuum.py show
python3 /path/to/continuum/scripts/continuum.py path
python3 /path/to/continuum/scripts/continuum.py clear

Run the test suite and validate both plugin manifests:

python3 -m unittest discover -s tests -v
claude plugin validate .

Current limitations

  • Context is a compact checkpoint, not a byte-for-byte conversation transfer.
  • Deterministic capture may miss decisions that are not present in recent turns.
  • Transcript parsing is a fallback because native transcript schemas can change.
  • Checkpoints are local to one machine unless you explicitly provide a shared CONTINUUM_HOME.
  • Concurrent work on the same repository and branch shares one rolling checkpoint.
  • Native Windows is not supported in the first release.

License

MIT

About

Continue work across Codex and Claude Code with portable local context

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages