Maintained by @Yongthyuan.
Agent Context Bridge is a local-first bridge for moving useful context between coding agents. It indexes nearby agent sessions, normalizes them into a shared event model, and creates concise handoff packets that another agent can continue from without pasting full raw transcripts.
It is designed to extend CC Switch as an installable Skill + MCP server. CC Switch keeps switching agents; Agent Context Bridge adds session discovery, evidence-backed handoff packets, timeline/search, policy checks, local audit helpers, and encrypted local-directory sync helpers.
1.0.0.>=24, Linux/WSL-first.npx -y github:Yongthyuan/agent-context-bridge..agent-bridge/.Open the hosted installer:
https://yongthyuan.github.io/agent-context-bridge/cc-switch/install.html
The page generates two CC Switch deep links:
The generated MCP command uses:
npx -y github:Yongthyuan/agent-context-bridge bridge-mcp
Install directly from GitHub:
npm install -g github:Yongthyuan/agent-context-bridge
Initialize bridge storage in a project:
bridge detect
The first run is lightweight: it scans known session roots, creates project-local state, and does not copy full native histories.
List known agents and sessions:
bridge agents list
bridge list --all
Create a handoff packet:
bridge handoff --from codex --to claude --latest
Search recent normalized events:
bridge timeline --limit 20
bridge search "failing test" --limit 10
Use the CC Switch compatibility layer:
bridge cc-switch manifest
bridge cc-switch sessions --target claude
bridge cc-switch handoff --session codex:<session-id> --target claude
Start the local UI:
bridge ui start --host 127.0.0.1 --port 0
| Agent | Aliases | Session handling |
|---|---|---|
| Claude Code | claude, claude_code |
JSONL session detection and handoff rendering |
| Codex | codex |
JSONL session detection and handoff rendering |
| Gemini CLI | gemini, gemini_cli |
JSONL-style adapter and shell mapping |
| opencode | opencode |
JSONL-style adapter and shell mapping |
| Cursor | cursor |
JSONL-style adapter and terminal mapping |
| Aider | aider |
Markdown session adapter and shell mapping |
Built-in registry packs:
core
gemini-cli
opencode
cursor
aider
protocol-core
Core handoff:
bridge detect
bridge list [--all] [--agent <agent>]
bridge open <agent>:<session-id> [--target <agent>]
bridge handoff --from <agent> --to <agent> [--latest|--session <id>]
bridge raw <agent>:<id> [--around <text>] [--tool <name>] [--since-compact]
bridge doctor
Workbench:
bridge agents list
bridge timeline [--agent <agent>] [--session <id>] [--op <canonical_op>] [--limit <n>]
bridge search <query> [--agent <agent>] [--op <canonical_op>] [--tool <name>] [--limit <n>]
bridge registry list [--available|--installed]
bridge registry validate --pack <pack>
bridge registry install <pack>
bridge hooks status [--agent <agent>]
bridge hooks plan --agent <agent>
bridge hooks install --agent <agent> --yes
bridge hooks uninstall --agent <agent> --yes
bridge memory export [--format markdown|json] [--output <path>]
bridge ui start [--host 127.0.0.1] [--port 0|<port>]
Coordination and policy:
bridge protocol inspect
bridge protocol negotiate --from <agent> --to <agent>
bridge registry negotiate --from <agent> --to <agent>
bridge policy show
bridge policy check <remote.push|remote.pull|native.write|raw.full|raw.excerpt|collab.turn> --agent <agent>
bridge team append --actor <id> --agent <agent> --summary <text> [--files a,b]
bridge team audit
bridge remote status
bridge remote push --to <dir> --key-env <ENV> [--agent <agent>] --yes
bridge remote pull --from <bundle> --key-env <ENV> [--agent <agent>] --yes
bridge collab start --agents codex,claude --mode single_driver [--owner <agent>] [--phase <phase>]
bridge collab status
bridge collab turn --owner <agent> --phase <phase> [--actor <agent>] [--summary <text>]
Run the MCP server with:
bridge-mcp
It exposes newline-delimited JSON-RPC stdio tools:
bridge_list_sessions
bridge_open_session
bridge_get_handoff_packet
bridge_get_raw_excerpt
bridge_get_sync_status
bridge_append_ledger_event
bridge_list_agents
bridge_get_timeline
bridge_search_events
bridge_list_registry_packs
bridge_validate_registry_pack
bridge_get_hook_status
bridge_plan_hook_install
bridge_export_project_memory
bridge_get_protocol_descriptor
bridge_negotiate_protocol
bridge_negotiate_registry
bridge_check_policy
bridge_get_team_audit
bridge_get_remote_status
bridge_get_collab_status
bridge_cc_switch_manifest
bridge_cc_switch_sessions
bridge_cc_switch_handoff
MCP responses are concise by default. Raw transcripts are exposed only through bounded raw excerpt tools.
Runtime state is project-local:
.agent-bridge/
config.json
ledger.jsonl
packets/
raw/
registry/
default-mappings.json
packs/
cache/
exports/
ui/
hooks/
team-ledger.jsonl
remote/
collab/
session.json
Native agent session stores are not modified by default. Hook commands are guarded: status and plan are non-mutating, and install/uninstall require --yes. Current hook installation writes only project-local hook manifests under .agent-bridge/hooks/.
Remote sync is disabled by policy by default. Push/pull require an enabled policy, a key environment variable, an explicit local directory or bundle path, and --yes. Encrypted bundles use Node built-in AES-256-GCM and do not store plaintext payloads.
npm ci
npm test
npm run typecheck
npm pack --dry-run
In this WSL workspace, the verified commands are:
node --test tests/**/*.test.ts
node node_modules/typescript/bin/tsc --noEmit
See ARCHITECTURE.md for the module layout, ROADMAP.md for planned direction, CONTRIBUTING.md for contribution workflow, RELEASE.md for release procedure, SECURITY.md for vulnerability reporting, and CHANGELOG.md for release notes.
Do not commit .agent-bridge/, raw transcripts, remote sync bundles, keys, logs, or generated exports.