Bridge coding-agent sessions between CLIs so you can resume in another tool without re-explaining context.
Short names hb, sb, and session-bridge are installed as symlinks to the same binary (Homebrew). With go install, only the harness-bridge command is on your PATH unless you add your own symlinks.
This project is inspired by authsec-bridge, the Python CLI for bridging coding-agent sessions between Claude Code, Codex, and Gemini. harness-bridge is an independent Go rewrite with additional agents and packaging; it is not affiliated with AuthSec AI.
brew tap mlaccetti/tap
brew install harness-bridge
# or (Go module; published on each release tag)
go install github.com/mlaccetti/harness-bridge/cmd/harness-bridge@latest
# pin a version: go install github.com/mlaccetti/harness-bridge/cmd/harness-bridge@v0.1.2Module docs: pkg.go.dev/github.com/mlaccetti/harness-bridge.
Windows: no installer yet. Download harness-bridge_*_windows_amd64.zip (or arm64) from GitHub Releases and add harness-bridge.exe to your PATH. Release builds are cross-compiled on Linux CI (no Windows runner).
Homebrew builds may print a one-line # ... upgrade hint on startup when a newer release exists (HARNESS_BRIDGE_NO_UPGRADE_NOTICE=1 to disable).
harness-bridge list --from claude
harness-bridge show --from codex --session abc123
harness-bridge transfer --from claude --to cursor --cwd .
harness-bridge transfer --from cursor --to markdownUse --cwd when the session is tied to a project directory. transfer supports planning flags such as --dry-run / --plan, --stats, --last-turns, and --since-compaction (see harness-bridge transfer --help).
Use these values for --from and --to (except markdown, which is a transfer target only).
| ID | Tool | Notes |
|---|---|---|
claude |
Claude Code | Sessions under ~/.claude/projects/<encoded-cwd>/*.jsonl. Resume in Claude with /resume. |
codex |
Codex CLI | Rollouts under ~/.codex/sessions/.../rollout-*.jsonl. Resume with codex resume <session-id>. |
gemini |
Gemini CLI | Project data under ~/.gemini/. Resume with gemini --resume <session-id>. |
cursor |
Cursor Agent (cursor-agent) |
Transcripts under ~/.cursor/projects/<workspace>/agent-transcripts/. Resume with cursor-agent --resume <session-id>. |
antigravity |
Google Antigravity (agy) |
Alias: agy for --from / --to. Claude-style JSONL under the Antigravity config dir (e.g. ~/.config/antigravity/projects/..., or ~/Library/Application Support/Antigravity on macOS). Run agy once so dirs exist. Resume with agy --conversation <id> or agy --continue. |
markdown |
Handoff file | Writes HANDOFF.md in the target cwd (not a source for list / show). |
After transfer, the CLI prints a short resume hint for the target you chose.
harness-bridge completion bash
harness-bridge completion zsh
harness-bridge completion fishCarapace completes --from, --to, --session, and --cwd.
mise trust && mise install
just check
just run --version
just run list --from claudeRun just for all recipes. Use just run when the binary is not installed yet. Tasks live in the justfile (no Makefile).
Contributions are welcome.
- Fork mlaccetti/harness-bridge on GitHub.
- Create a feature branch on your fork (
feat/...,fix/..., etc.). - Install tooling (
mise trust && mise install) and runjust check(format, lint, tests). - Open a pull request against
mainwith a clear description and test notes. - Ensure the CI job
checkpasses on the PR. A maintainer will review before merge.
Please do not commit secrets or local session JSONL from your machine. Use testdata/ for fixtures.
Branch protection: main requires a PR, passing check, and code-owner review (see .github/rulesets/). External contributors are expected to work from forks; maintainers merge after review.
- CI (
.github/workflows/ci.yml):pull_requestand pushes tomainrunjust checkvia mise. - Release (
.github/workflows/release.yml): pushing a tagv*runs GoReleaser (GitHub release + Homebrew tap), then verifies the tag on proxy.golang.org and requests pkg.go.dev indexing (go install …@vX.Y.Z).
| Secret | Purpose |
|---|---|
GITHUB_TOKEN |
Release assets (provided by Actions) |
HOMEBREW_TAP_GITHUB_TOKEN |
PAT with contents: write on mlaccetti/homebrew-tap and this repo |
Release checklist: merge to main with green check → just release-dry → signed tag vX.Y.Z → git push origin vX.Y.Z → release workflow publishes binaries, Homebrew formula, and the Go module → users brew update && brew upgrade harness-bridge or go install github.com/mlaccetti/harness-bridge/cmd/harness-bridge@vX.Y.Z.
Repository rulesets are exported under .github/rulesets/. Solo-owner merges on main use administrator bypass once CI is green; fork PRs still need approval.
MIT. See LICENSE.