@work-bridge/work-bridge 0.1.0 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +90 -22
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,9 +1,11 @@
1
1
  # work-bridge
2
2
 
3
- > **Switching between Claude Code, Gemini CLI, OpenCode, and Codex due to LLM cost?**
4
- > Bring your session context, MCP configs, and skills with you — instantly.
3
+ > **Switching between Claude Code, Gemini CLI, OpenCode, and Codex on the same project because of LLM cost?**
4
+ > Keep your project-scoped session context visible, export restart artifacts for the next tool, sync skills where supported, and validate MCP before you switch.
5
5
 
6
- `work-bridge` is a local-first portability layer for AI coding-agent workflows. It inspects your current sessions, skills, and MCP server configs across all major tools, then exports a portable bundle that any other tool can pick up from where you left off.
6
+ `work-bridge` is a local-first portability layer for AI coding-agent workflows. It helps you inspect project-scoped sessions, compare skills across scopes, validate MCP server configs, and export starter artifacts for the next tool. It does not write directly into another tool's native session database.
7
+
8
+ > **Stability:** `work-bridge` is still early and not fully stable yet. Some migration paths, especially importer-heavy flows in the TUI, are still under active crash triage. If the TUI is unreliable for your case, prefer the CLI subcommands and inspect/import/doctor/export flows directly.
7
9
 
8
10
  [![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=flat&logo=go)](https://golang.org)
9
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -28,12 +30,14 @@ Modern AI coding agents store their state in incompatible formats:
28
30
 
29
31
  ## Supported Tools
30
32
 
31
- | Tool | Import | Export | MCP | Skills |
32
- |------|:------:|:------:|:---:|:------:|
33
- | **Claude Code** | ✅ | ✅ | ✅ | ✅ |
34
- | **Gemini CLI** | ✅ | ✅ | ✅ | |
35
- | **OpenCode** | ✅ | ✅ | ✅ | ✅ |
36
- | **Codex CLI** | ✅ | ✅ | ✅ | ✅ |
33
+ | Tool | Session import | Export artifacts | MCP inspect/probe | Skill sync target |
34
+ |------|:--------------:|:----------------:|:-----------------:|:-----------------:|
35
+ | **Claude Code** | ✅ | ✅ | ✅ | ✅ user scope |
36
+ | **Gemini CLI** | ✅ | ✅ | ✅ | Not yet |
37
+ | **OpenCode** | ✅ | ✅ | ✅ | ✅ user + global scope |
38
+ | **Codex CLI** | ✅ | ✅ | ✅ | ✅ user scope |
39
+
40
+ Project-local `skills/` and `.github/skills/` content is still discovered across tools. The table above only describes named per-tool sync targets exposed by the current TUI.
37
41
 
38
42
  ---
39
43
 
@@ -80,36 +84,98 @@ The TUI provides five panels:
80
84
 
81
85
  **Mouse support:** pane focus · list selection · preview tab switching · scroll
82
86
 
87
+ ### What It Does Today
88
+
89
+ - `Projects` sets the active scope for `Sessions`, `Skills`, and `MCP`
90
+ - `Sessions` lets you import, doctor-check, and export starter artifacts for another tool
91
+ - `Skills` lets you compare project/user/global scopes and copy skills where a target path exists
92
+ - `MCP` lets you inspect merged scope and run runtime probes for stdio, HTTP, and SSE servers
93
+
94
+ Current non-goals:
95
+
96
+ - No native session-store injection into another tool
97
+ - No automatic MCP config rewrite or apply step
98
+ - No Gemini-specific skill sync target yet
99
+
83
100
  ### Migration Workflow
84
101
 
85
102
  ```
86
- You were using Claude Code → now switching to Gemini CLI
103
+ You were using Gemini CLI → now switching to Claude Code
87
104
  ```
88
105
 
89
106
  ```bash
90
- # 1. Inspect what Claude Code has
91
- work-bridge inspect claude --limit 5
107
+ # 1. Inspect what Gemini has
108
+ work-bridge inspect gemini --limit 5
92
109
 
93
- # 2. Import the latest session into a portable bundle
94
- work-bridge import --from claude --session latest --out ./bundle.json
110
+ # 2. Import the latest Gemini session into a portable bundle
111
+ work-bridge import --from gemini --session latest --out ./bundle.json
95
112
 
96
- # 3. Check compatibility with the target tool
97
- work-bridge doctor --from claude --session latest --target gemini
113
+ # 3. Check compatibility with Claude Code
114
+ work-bridge doctor --from gemini --session latest --target claude
98
115
 
99
- # 4. Export target-native artifacts
100
- work-bridge export --bundle ./bundle.json --target gemini --out ./out/
116
+ # 4. Export Claude starter artifacts
117
+ work-bridge export --bundle ./bundle.json --target claude --out ./out/
101
118
 
102
- # 5. Start Gemini CLI it'll pick up GEMINI.work-bridge.md automatically
103
- cd ./out && gemini
119
+ # 5. Review the exported files and merge the supplement into your project's CLAUDE.md
120
+ ls ./out/
104
121
  ```
105
122
 
106
123
  The exported `./out/` directory contains:
107
124
 
108
- - `GEMINI.work-bridge.md` — context supplement injected into Gemini CLI
109
- - `SETTINGS_PATCH.json` — portable settings to apply
125
+ - `CLAUDE.work-bridge.md` — project supplement to merge into `CLAUDE.md`
126
+ - `MEMORY_NOTE.md` — summary and portability warnings
110
127
  - `STARTER_PROMPT.md` — copy-paste prompt to resume your task
111
128
  - `manifest.json` — export manifest with portability warnings
112
129
 
130
+ For Gemini CLI exports, `work-bridge` writes `GEMINI.work-bridge.md` as a starter artifact. Gemini CLI's default context filename is `GEMINI.md`, so you still need to merge or rename the file, or configure Gemini's `context.fileName` explicitly.
131
+
132
+ ### Claude E2E Shell Script
133
+
134
+ Run a real `gemini -> claude` migration check against a local project without launching the TUI:
135
+
136
+ ```bash
137
+ ./scripts/e2e_gemini_to_claude.sh /path/to/repo
138
+ ```
139
+
140
+ Useful overrides:
141
+
142
+ ```bash
143
+ SESSION_ID=<gemini-session-id> OUT_DIR=/tmp/work-bridge-out ./scripts/e2e_gemini_to_claude.sh /path/to/repo
144
+ ```
145
+
146
+ The script will:
147
+
148
+ 1. Run `work-bridge --format json inspect gemini`
149
+ 2. Pick the latest Gemini session whose `project_root` matches the selected repo
150
+ 3. Run `import`, `doctor --target claude`, and `export`
151
+ 4. Print project markers, known skill directories, and MCP config locations
152
+ 5. Save `inspect`, `detect`, `bundle`, and `doctor` JSON into a debug directory for follow-up
153
+
154
+ This is the fastest way to debug real-user migration failures because it bypasses the TUI completely. If the latest Gemini session does not belong to the selected project, the script fails instead of silently using some other repo's session.
155
+
156
+ ### Debugging TUI Crashes
157
+
158
+ If the TUI exits immediately or appears to "just close", capture the full terminal transcript with `script`:
159
+
160
+ ```bash
161
+ script -q /tmp/work-bridge-tui.log zsh -lc 'work-bridge'
162
+ ```
163
+
164
+ This keeps the alternate-screen escape sequences and any panic trace in one file. It is the easiest way to confirm whether the failure happened in the TUI renderer or inside an importer/exporter command.
165
+
166
+ To isolate the failing stage without the TUI, run the underlying commands directly:
167
+
168
+ ```bash
169
+ work-bridge inspect gemini --limit 10
170
+ work-bridge import --from gemini --session <id> --out /tmp/bundle.json
171
+ work-bridge doctor --from gemini --session <id> --target claude
172
+ work-bridge export --bundle /tmp/bundle.json --target claude --out /tmp/out
173
+ ```
174
+
175
+ Known limitation:
176
+
177
+ - Some importer paths are still under crash triage. If the TUI path is unstable, prefer the shell script or the direct CLI sequence above until the crash is fixed.
178
+
113
179
  ### Pack / Unpack (Portable Archives)
114
180
 
115
181
  Share your session state across machines or teammates:
@@ -193,6 +259,8 @@ The **MCP** panel (and `inspect` output) runs a real runtime handshake for suppo
193
259
 
194
260
  This catches config problems that a static lint pass would miss.
195
261
 
262
+ `work-bridge` does not apply MCP configs to another tool yet. The current MCP flow is inspect, merge, and probe.
263
+
196
264
  ---
197
265
 
198
266
  ## Configuration
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@work-bridge/work-bridge",
3
- "version": "0.1.0",
3
+ "version": "0.1.4",
4
4
  "description": "Portable session migration CLI for Claude Code, Gemini CLI, OpenCode, and Codex CLI.",
5
5
  "homepage": "https://github.com/jaeyoung0509/work-bridge",
6
6
  "repository": {