One session layer for every AI coding agent on your machine. Start a conversation in Claude Code, continue it in Codex, OpenCode or Antigravity — from any directory. Sessions you create in one tool show up in all the others, and the work you add anywhere is shared everywhere.
Verified live: Claude Code, Codex CLI, OpenCode, Antigravity — all four bidirectional.
The problem in one line
Every agent tool only shows the sessions it started itself, in the directory you launched it from. Most of your history is on disk but invisible.
What agentbridge does
- One session, everywhere. Sync makes every session appear in every tool's own list, from any directory.
- Continue anywhere.
agentbridge resume <id> <tool>opens a session started in another tool, in the tool you choose. - Work follows you. Turns you add in one tool are pulled back (
pull) and folded into the other tools' copies. Your original files are never modified. - Set and forget.
auto installhooks your shell. A new terminal then shares only the sessions created or changed since the last run, and does nothing at all when there are none.auto watchadds a live re-sync daemon.
Install
From PyPI (prebuilt binary, no Rust needed):
pipx install agentbridge-rs # or: uv tool install agentbridge-rs
agentbridge --version
The PyPI package is named agentbridge-rs; the command it installs is
agentbridge. Upgrade with pipx upgrade agentbridge-rs.
With Cargo:
# if you don't have Rust yet: https://rustup.rs
cargo install --git https://github.com/45Harry/agentbridge
agentbridge --version
Works on Linux, macOS and Windows. Building from a local checkout:
cargo install --path . (then re-run to update it again later), or build a
wheel with maturin build --release (lands in target/wheels/).
Get started
agentbridge init # look around: what sessions are on this machine?
agentbridge auto install # new and changed sessions are shared from now on
agentbridge sync # surface sessions in this directory, for all tools
That's it. Sessions now flow both ways between your tools, automatically.
See what sync would do before it does it — it accepts --dry-run everywhere:
agentbridge sync --dry-run
agentbridge unsync removes only what agentbridge created — never anything you
recovered, and never a tool's own files.
Everyday commands
cd ~/code/my-project
agentbridge sync # surface all sessions here, for all tools
claude --resume <id> # continue any session in Claude Code
codex resume <id> # ...in Codex
agentbridge resume <id> opencode # ...in OpenCode
agentbridge resume <id> antigravity # ...in Antigravity
agentbridge status # who has new work since the last sync?
agentbridge pull # recover that new work
| Command | What it does | Writes? |
|---|---|---|
init |
Discover every session on the machine. | no |
ls |
List sessions across all tools. | no |
info |
Which tools are detected, and where sessions live. | no |
status |
Per synced copy: what agentbridge wrote vs what's on disk now. | no |
sync |
Republish every session into every tool for this directory. | yes |
pull |
Recover turns/renames made in any tool. | yes |
resume <id> <tool> |
Copy one session into one tool. | yes |
inject <tool> <ids...> |
Feed session context into a tool's startup. | yes |
start <tool> |
Launch an agent with cross-tool context injected. | yes |
sync --changed |
Share only what is new since the last run (what the hook runs). | yes |
unsync |
Remove exactly what sync created. --project <dir> or --session <id> limits it. |
yes |
auto install / uninstall |
Add / remove the shell hook. | yes |
auto watch |
Re-sync whenever sessions change. | yes |
Tracking one session across tools
Synced and resumed copies carry the same label in their title, so the four picker rows for one conversation are recognizable as one conversation:
claude-code · My Important Session · 2026-08-19 10:00 · aaaaaaaa
└ origin tool └ session name └ session start └ session id
- The date is the session's own start time, never the sync date — so the same conversation shows the same date in every tool.
- A name the tool already has is kept verbatim. Only a session with no name
gets one derived from the first thing you wrote in it. A tool's own
placeholder (OpenCode's
New session - <time>) counts as no name. - The id is the part that tells sessions apart: the first 8 characters, or the
last 8 for OpenCode's
ses_…ids, which all start alike. - Renaming a copy in any tool is picked up by
pulland republished, keeping your new name and the original id and date.
Supported tools
| Connector | Sessions live in | Read | Write |
|---|---|---|---|
| Claude Code | ~/.claude/projects/.../*.jsonl |
yes | yes |
| Codex CLI | ~/.codex/sessions/.../rollout-*.jsonl |
yes | yes, incl. /resume rows |
| OpenCode | ~/.local/share/opencode/opencode.db |
yes | yes, guarded* |
| Antigravity | ~/.gemini/antigravity-*/conversations/*.db |
yes, all stores | yes, guarded* |
* Live databases: every write backs the database up first, tags its own rows,
and refuses to run while the tool is open. Details per tool in CONNECTORS.md.
How it works, briefly
- Index in place. Sessions are never copied — the index points at the files already on disk.
- No second copy. A tool cannot read another tool's format, so each
session is converted once and written into that tool's own store.
agentbridge keeps no copy of it in
~/.agentbridge. - Never touch a tool's own sessions. Recovered work lives in an
agentbridge-owned overlay;
unsyncremoves only what agentbridge created.
Docs
ARCHITECTURE.md— diagrams of the parts and of what each command does today.DESIGN.md— architecture and the bugs real testing found.CONNECTORS.md— each tool's on-disk format, reverse-engineered.HANDOFF.md— pick the project up on a new machine.DECISIONS.md— dated record of every design choice.SPEC.md— the original build spec.test.py— live check across the real tools:python3 test.py(makes real model calls;--quickfor fewer). It removes what it made unless you pass--keep.
License
MIT — see LICENSE.
Metadata
Release files for agentbridge-rs 0.3.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agentbridge_rs-0.3.4.tar.gz | 329.4 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| agentbridge_rs-0.3.4-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| agentbridge_rs-0.3.4-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| agentbridge_rs-0.3.4-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| agentbridge_rs-0.3.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| agentbridge_rs-0.3.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| agentbridge_rs-0.3.4-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| agentbridge_rs-0.3.4-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 14.6 MB
Release files / agentbridge_rs-0.3.4.tar.gz
| Download URL | agentbridge_rs-0.3.4.tar.gz |
|---|---|
| Size | 329.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eb444a4547982e42744b17816d485b2ea95632d99e8457ea6bb84f22b76ffc90
|
|
BLAKE2b-256 checksum How to use checksums |
26b78a45e0fee4cd1bdda471df77be73569ed62da85d6fb4ede1401268d7914e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / agentbridge_rs-0.3.4-py3-none-win_amd64.whl
| Download URL | agentbridge_rs-0.3.4-py3-none-win_amd64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c0f64a40039b0c7e24e7958ebd703b6aa2aa1dc33c2e3fe1aa9c28855c64c506
|
|
BLAKE2b-256 checksum How to use checksums |
3568c70e471f60c72a7f9469f0284406f90c17aaa39d1e920818c70ff89ab032
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / agentbridge_rs-0.3.4-py3-none-musllinux_1_2_x86_64.whl
| Download URL | agentbridge_rs-0.3.4-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
cd938d221a7c10b857a7f464ec300e5e43375e9294f82b07c0ade7e071ceb2ce
|
|
BLAKE2b-256 checksum How to use checksums |
6abdecc5a65626121714379d4a040438b228f41630a1e3fba4a16bccaf7eb504
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / agentbridge_rs-0.3.4-py3-none-musllinux_1_2_aarch64.whl
| Download URL | agentbridge_rs-0.3.4-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
c35122215e3e32b2bf563b5d38ac17e8c94f850ea0922a43a45eee600bc64a06
|
|
BLAKE2b-256 checksum How to use checksums |
cbfb79c089f28121abb0914bbf30cc2ca092ff8ec5fa0db7acef95f027bcfdbc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / agentbridge_rs-0.3.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | agentbridge_rs-0.3.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
0580cc09a4c8f2b3cb687f89384d8c0e8d0e1df168d379fc3aa5667f50813ebf
|
|
BLAKE2b-256 checksum How to use checksums |
e7b26c8e6b4ad698a4881b10fe6b895a519166b0ef0dd8a94d8d06c762097600
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / agentbridge_rs-0.3.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | agentbridge_rs-0.3.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
2a52b15f82481c53106decc7f932ab3709ce7f21e96f3490fb8215c84dac78b9
|
|
BLAKE2b-256 checksum How to use checksums |
9d4d88ead9ab97baebe93c5ad2359385969c887217cb4fa67e23e2ab5fb36c4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / agentbridge_rs-0.3.4-py3-none-macosx_11_0_arm64.whl
| Download URL | agentbridge_rs-0.3.4-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4e9414b5dd5b56598b37a16190fcb3dff96308a16fbffe8b66fa55ce70d245ab
|
|
BLAKE2b-256 checksum How to use checksums |
b762a6113a154144082077d31595ba8f2fb37fd8d9c8675304d60f33a604a01f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / agentbridge_rs-0.3.4-py3-none-macosx_10_12_x86_64.whl
| Download URL | agentbridge_rs-0.3.4-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
6f9cae6ea4615519dd8e2193f8e0dad9438b0a6d5952d832e9eb635c3506a513
|
|
BLAKE2b-256 checksum How to use checksums |
e08fc1c5f9ceabe54056e3d53a7171c579365eac25bedd811749f6450acb6309
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency log