[ide-bridge]

v0.1.0-alpha.0 · MIT · npm

Switch IDEs without losing your thread.

ide-bridge is a local MCP daemon that saves a structured context bundle per project — plan, decisions, TODOs, git state, conversation summary. Any MCP-capable IDE can save to it or load from it.

Get startedView on GitHub
npm install -g ide-bridge

The problem

Agentic IDEs impose per-tool or per-session usage limits. When you hit one mid-task — branch half-refactored, plan half-executed — you have two options: wait, or switch. Switching means opening a different IDE and spending the first several turns re-explaining the plan, the constraints, the decisions already made, and the work already done. None of that information has anywhere to live except inside a single IDE's conversation history.

The context loss compounds. The rolling summary in your head is lossy. You forget the decision you made three hours ago that rules out the obvious approach. The new agent re-proposes it. You spend another exchange saying no, and explaining why, again. This is a single-user problem today — and a team problem in its near-future form.

The solution

ide-bridge is a local daemon that speaks MCP Streamable HTTP and binds exclusively to localhost:31415. Every connected IDE addresses the same six-tool surface. When an agent calls save_checkpoint, the daemon merges the incoming bundle fragment into a Portable Context Bundle (PCB) stored under ~/.ide-bridge/projects/.

The PCB is a single versioned JSON document: plan steps, decisions with rationale, TODOs, git state (remote, branch, HEAD, staged and unstaged diffs), a rolling conversation summary, and — where the source IDE supports it — the last N verbatim turns. Five per-IDE adapters handle structural differences between IDEs; a generic fallback covers any MCP-capable IDE not explicitly listed.

┌─ Claude Code ─┐  ┌─ Cursor ─┐  ┌─ Kiro ─┐  ┌─ Antigravity ─┐  ┌─ Any MCP IDE ─┐
│  CLAUDE.md    │  │ .cursor/ │  │ .kiro/ │  │   AGENTS.md   │  │   AGENTS.md   │
│  Stop hook    │  │  rules/  │  │ steer/ │  │   priming     │  │  (generic)    │
└──────┬────────┘  └────┬─────┘  └───┬────┘  └───────┬───────┘  └───────┬───────┘
       │          MCP Streamable HTTP │               │                  │
       └──────────────────────────────┴───────────────┴──────────────────┘
                                      │
                           http://localhost:31415/mcp
                                      │
                         ┌────────────▼────────────┐
                         │     ide-bridge daemon    │
                         │                          │
                         │  6-tool MCP surface      │
                         │  Per-IDE adapters        │
                         │  PCB store               │
                         │  Identity resolver       │
                         └────────────┬─────────────┘
                                      │
                         ~/.ide-bridge/
                           projects/<project-id>/
                             bundle.json        ← PCB (authoritative)
                             history/           ← append-only log
                             transcripts/<ide>/ ← raw per-IDE transcripts
                           config.json
                           daemon.log

Features

  • Zero cloud. The daemon binds to 127.0.0.1 only — no network egress, no accounts, no API keys.
  • 5 native IDE adapters. Claude Code (L3), Cursor (L2), Kiro (L1), Antigravity (L0–L1), and a generic L0 fallback for any MCP-capable IDE.
  • 6-tool MCP surface. save_checkpoint, load_checkpoint, append_decision, append_todo, list_projects, get_project_id — minimal by design to keep context-window overhead low.
  • Atomic PCB store. Every write is a write-then-rename. The bundle is always in a consistent state, with an append-only history log alongside it.
  • Hook-driven autosave. Claude Code gets a SessionStart hook (load on startup) and a PreCompact hook (save before context is compacted). Zero manual prompts required.
  • 3-tier project identity. Project ID resolved in order: explicit .ide-bridge.yaml → git remote+branch → path fingerprint. The checked-in YAML always wins.
  • Graceful fidelity degradation. Daemon picks min(source_fidelity, target_fidelity) automatically. Switching from L3 to L1 never crashes — it just drops verbatim turns.
  • Service installer. launchd (macOS) and systemd --user (Linux) unit files so the daemon restarts automatically at login.
  • Port conflict resolution. If :31415 is taken, the daemon probes :31416–:31425 and writes the chosen port to config.json. Nothing breaks.
  • TypeScript strict throughout. noUncheckedIndexedAccess enabled. 61 passing tests, typecheck clean, zero dead code.

Supported IDEs

IDEFidelityExtract sourceImport sink
Claude CodeL3 (full session resume)~/.claude/projects/<encoded-cwd>/*.jsonlSynthesized JSONL + claude --resume
CursorL2 (last-N verbatim turns)state.vscdb in Cursor's workspaceStorage.cursor/rules/_imported.mdc primer
KiroL1 (rolling summary).kiro/steering/*, .kiro/specs/*.kiro/steering/_imported.md
AntigravityL0–L1AGENTS.md + bridge-captured plan/decisionsAGENTS.md with "Prior context" block
GenericL0 (plan + decisions + TODOs + git)Agent-driven saves onlyAGENTS.md with "Prior context" block

Any MCP-capable IDE not listed above gets the generic L0 adapter via a priming AGENTS.md. Fidelity levels: L0 = plan + decisions + TODOs + git. L1 = L0 + rolling summary. L2 = L1 + last-N verbatim turns. L3 = full session resume.

Install

npm install -g ide-bridge

Then in your project:

ide-bridge init && ide-bridge priming claude-code

By the numbers

61

passing tests

5

native IDE adapters

6

MCP tools

0

cloud dependencies

Roadmap

v0.1

shipped

Context portability across Claude Code, Cursor, Kiro, Antigravity, and generic fallback. Local-only, zero auth. CLI, priming files, launchd/systemd installers.

v0.1.x

next

Cursor per-database resilience. initialize tool coverage. L3 forged-resume verification test. negotiateFidelity wiring between adapters.

v0.2

planned

Remote sync (--remote <url>, Postgres-backed store). Disk-tailer rescue mode. Secret redaction MVP. Self-host Docker image.

v1.0

future

Multi-IDE role orchestration over A2A. CrewAI-style YAML config. Presence channel, file leases, HITL states. Managed SaaS with auth + dashboard.

Star the repo if this solves something you've hit.
Contributions even more so.

Star on GitHubRead the docs