@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.
- package/README.md +90 -22
- 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
|
|
4
|
-
>
|
|
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
|
|
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
|
[](https://golang.org)
|
|
9
11
|
[](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 |
|
|
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
|
|
103
|
+
You were using Gemini CLI → now switching to Claude Code
|
|
87
104
|
```
|
|
88
105
|
|
|
89
106
|
```bash
|
|
90
|
-
# 1. Inspect what
|
|
91
|
-
work-bridge inspect
|
|
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
|
|
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
|
|
97
|
-
work-bridge doctor --from
|
|
113
|
+
# 3. Check compatibility with Claude Code
|
|
114
|
+
work-bridge doctor --from gemini --session latest --target claude
|
|
98
115
|
|
|
99
|
-
# 4. Export
|
|
100
|
-
work-bridge export --bundle ./bundle.json --target
|
|
116
|
+
# 4. Export Claude starter artifacts
|
|
117
|
+
work-bridge export --bundle ./bundle.json --target claude --out ./out/
|
|
101
118
|
|
|
102
|
-
# 5.
|
|
103
|
-
|
|
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
|
-
- `
|
|
109
|
-
- `
|
|
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