Skip to content

About

Local session exchange and opt-in synchronization for Claude Code, OpenCode and Codex.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

English · Español

Session Bridge

Start a conversation in Claude Code, continue it in Codex or OpenCode. Session Bridge finds every coding-agent conversation on your machine and turns any of them into a real, resumable session in another assistant, with a portable archive of what was moved.

CI Latest release Python 3.11+ Windows MIT License

The Session Bridge start screen: one search over Claude Code, Codex and OpenCode conversations, grouped into this folder and other projects

Why

Each coding assistant keeps its conversations in its own format, so switching tools usually means starting over and explaining everything again. Session Bridge reads those formats directly, carries the conversation across, and writes a new session the other assistant opens as if it had been there all along. It runs locally, never calls a model, and never changes the conversation it copies from.

What you can do

  • Find any conversation. One search over every Claude Code, Codex and OpenCode session, with the current folder first. It ignores case, accents and word order.
  • Continue it elsewhere. Convert a conversation into a native session of another assistant and open it there, ready for your next message.
  • Keep two assistants in step. Link a conversation, and Session Bridge follows its new turns, so you can switch back and forth. Windows only, and off until you turn it on.
  • Take it with you. Export a conversation to a portable .sbridge archive and import it later, on any machine.
  • Hand off to anything. For versions Session Bridge has not verified, it prepares a context file and a message for you to paste yourself.
  • Stay safe. Every transfer keeps a verified archive and can be recovered if it is interrupted. Unknown client versions are refused, never guessed at.

Install

You need Windows, Python 3.11 or newer and at least one of the supported assistants.

  1. Download session-bridge-X.Y.Z-portable.zip from the latest release and extract it to a folder you will keep, or clone the repository.

  2. From that folder, run the installer:

    powershell -NoProfile -ExecutionPolicy Bypass -File scripts/install.ps1 -Python python
  3. Check it works:

    sessionbridge doctor

The installer creates a private Python environment and puts the sessionbridge command in %USERPROFILE%\.local\bin. If that folder is not on your PATH, the installer says so. It never installs or changes the coding assistants themselves. From then on, Session Bridge updates itself.

Important

Before your first transfer, back up any assistant data you cannot afford to lose. Session Bridge only adds new sessions and never edits existing ones, but the assistants own their storage and can change it at any release.

Getting started

Open a terminal in your project folder and run:

sessionbridge
  1. Find the conversation. Type a few letters of its title, folder or assistant. Conversations from the current folder come first, under In this folder; everything else follows under In other projects. Linked conversations are marked ●.
  2. Choose where to continue it. Pick the other assistant. Session Bridge shows what will be taken: how many messages, whether the history goes back to the last compaction or the very beginning, and what changes on the way.
  3. Convert. Session Bridge writes the new session, verifies it, and offers to open it right away.
Converting a Claude Code conversation to Codex: the destination menu, the summary of what will be taken, and the next actions

Use the arrow keys or Tab to move, Enter to choose and Esc to go back. Every screen works with the keyboard alone. The pictures above use made-up conversations.

Prefer commands? Everything the start screen does is also a command, and --json makes every command scriptable:

sessionbridge list --search "payment webhook"
sessionbridge convert claude-win:SESSION_ID --to codex-win --dry-run
sessionbridge convert claude-win:SESSION_ID --to codex-win --resume

The user guide walks through every task, and the command reference lists every option.

How it works

%%{init: {"htmlLabels": false, "flowchart": {"htmlLabels": false}}}%%
flowchart LR
    A["Source session"] -->|read only| B["Archive<br/>.sbridge"]
    B --> C{"Target<br/>version<br/>verified?"}
    C -->|yes| D["New native<br/>session"]
    C -->|no, or your choice| E["Handoff:<br/>file + message"]
    D --> F["Open it in<br/>the target"]
Loading

Session Bridge reads the source conversation without changing it, stores a complete archive of it, and then writes a new session in the target assistant's own format. Instructions, approvals and unfinished tool calls from the source are carried as history, never as permissions: the target assistant's own settings apply. A transfer is recorded in a journal, so an interrupted one can be finished with sessionbridge recover instead of being repeated.

Compatibility

Session Bridge writes native sessions for client versions where four things were observed: the session persists, it shows in the assistant's history, it resumes from a cold start, and the model receives the imported context. Newer versions of the same major version work too: their format is checked on every transfer, so an assistant update does not wait for a Session Bridge release unless the format changed.

Platform Assistant Verified Native sessions
Windows x64 Claude Code 2.1.304, 2.1.308 2.1.304 and newer 2.x
Windows x64 OpenCode 2.0.29, 2.1.3 2.0.29 and newer 2.x, up to 9,362 messages
Windows x64 Codex CLI 0.159.0, 0.163.0 0.159.0 and newer 0.x, up to 128 MiB per conversation file
Linux and WSL Any — Not enabled; handoff is available

All six directions between the three Windows assistants were exercised with the newest verified versions. Older versions, other major versions and OpenCode 1.x are refused for native writing, and handoff remains available. The compatibility evidence and the verification record describe exactly what was tested.

Synchronization

Linking a conversation keeps it available in every assistant you use: Session Bridge follows its finished turns in the background, and when you switch assistant it reopens that assistant's session if it is up to date, or creates a new one with the latest turns. If you continue in two places, nothing is overwritten; you choose which continuation to follow.

sessionbridge sync link claude-win:SESSION_ID --name "Checkout redesign"
sessionbridge sync open "Checkout redesign" --to codex-win
sessionbridge sync status "Checkout redesign"

Synchronization runs on Windows only and does nothing until you link a conversation. It follows conversations, not files, Git state or running processes. Read the synchronization guide before you rely on it.

Updates

When a new release is published, Session Bridge asks the next time you open it:

The update offer: Update now, Not now, or Skip this version

Update now downloads the release, checks it against its published SHA-256 checksums, installs it and reopens Session Bridge on the new version. Not now asks again the next day, and Skip this version waits for the next one. If anything fails, the version you have keeps working. A Git clone updates with Git instead, and only when it is clean. Read how updates work for the details, or check by hand:

sessionbridge update --check

Language

Session Bridge speaks English and Spanish and follows your system language. To choose one:

sessionbridge language es
sessionbridge language auto

Only the text you read changes. Commands, JSON output, error codes and archives are the same in every language.

Privacy and safety

  • Local only. Session Bridge has no server. The only network request it makes on its own is the daily update check to GitHub, which you can turn off with sessionbridge update --startup-check off.
  • No model calls. Listing, converting, exporting and synchronizing never run a model. Continuing the conversation is done by the target assistant, under its own settings and account.
  • Read only on the source. The source conversation is never modified. A transfer creates a new session; it never edits or replaces an existing one.
  • Nothing guessed. Unknown client versions, ambiguous histories and oversized conversations are refused with an explanation, never truncated or approximated.
  • Your data stays yours. Transfers, archives and synchronization data live in %LOCALAPPDATA%\SessionBridge. They contain conversation history, so treat backups of that folder as private.

See the security policy to report a vulnerability.

Troubleshooting

You see What to do
This native version is not verified; choose handoff mode explicitly. or Native conversion is not verified for this target. Your assistant's version is not in the compatibility table. Choose the handoff the start screen offers, or pass --mode handoff.
The source session is active; request a snapshot. The conversation is still open in its assistant. Finish the turn, or let Session Bridge take a snapshot of what is there now.
sessionbridge is not recognized Add %USERPROFILE%\.local\bin to your user PATH and open a new terminal.
The installer says Refusing to replace an unmanaged command. A sessionbridge.exe the installer did not create is in the way. Check that it is yours, delete it, and run the installer again.
The update could not be installed The message names the installer's log. The version you have keeps working; run sessionbridge update to try again.

The user guide covers more cases, and sessionbridge doctor shows which assistants Session Bridge can read and write.

Documentation

For Read
Using Session Bridge User guide · Command reference · Synchronization · Updates
What was verified Native compatibility · Verification record · Changelog
Contributing Contributing guide · Architecture · Implementation contract · Maintaining

Contributing

Issues and pull requests are welcome. Start with the contributing guide: it explains how to set up the project, how the code is organized and what a change needs before it is merged. Please follow the code of conduct.

License

MIT. Session Bridge is an independent community project. It is not affiliated with, endorsed by or supported by Anthropic, OpenAI, OpenCode or their maintainers. Claude Code, Codex and OpenCode are names of their respective owners.

About

Local session exchange and opt-in synchronization for Claude Code, OpenCode and Codex.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages