ai-browser-bridge 0.6.0 → 0.7.1
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.es.md +23 -0
- package/README.he.md +23 -0
- package/README.md +34 -0
- package/README.zh.md +23 -0
- package/SKILL.md +235 -0
- package/dist/bridge.js +3109 -601
- package/dist/bridge.js.map +1 -1
- package/package.json +4 -3
package/README.es.md
CHANGED
|
@@ -177,6 +177,29 @@ Flow requiere un plan **Google AI Pro/Ultra**. Como los renders de Veo tardan mi
|
|
|
177
177
|
|
|
178
178
|
**Mantenimiento de selectores:** los selectores de Flow fueron **verificados en vivo (LIVE-VERIFIED)** contra un editor de proyecto con sesión iniciada. Si Google cambia la UI, vuelve a capturarlos con `node scripts/dev/captureProviderSelectors.mjs`, luego actualiza [`src/config.ts`](src/config.ts); la generación vive en [`src/features/providers/flow/flowPage.ts`](src/features/providers/flow/flowPage.ts) y el CRUD de recursos en [`src/features/providers/flow/flowAssets.ts`](src/features/providers/flow/flowAssets.ts).
|
|
179
179
|
|
|
180
|
+
## Soporte de Claude Design
|
|
181
|
+
|
|
182
|
+
El bridge controla **[Claude Design](https://claude.ai/design)** desde tu Chrome del bridge con sesión iniciada. Las lecturas y los cambios de proyectos/archivos usan las propias peticiones de la app desde la pestaña; los turnos, plantillas y modelo/esfuerzo pasan por la interfaz real, una pestaña por proyecto.
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
bridge chrome start --provider design
|
|
186
|
+
bridge design catalog # plantillas, modelos + esfuerzo, sistemas de diseño
|
|
187
|
+
bridge design projects
|
|
188
|
+
bridge design model --model "Sonnet 4.6" --effort Low # modelo (incl. More models) + esfuerzo
|
|
189
|
+
bridge design create --template Slides --prompt "lanzamiento Q3" --model "Haiku 4.5" --effort Low
|
|
190
|
+
bridge design send --project <id> --message "título más grande"
|
|
191
|
+
bridge design read --project <id> # Conversaciones y últimos mensajes
|
|
192
|
+
bridge design files --project <id>
|
|
193
|
+
bridge design put --project <id> --file hero.png
|
|
194
|
+
bridge design rm --project <id> --path hero.png --yes
|
|
195
|
+
bridge design download --project <id>
|
|
196
|
+
bridge design export --project <id>
|
|
197
|
+
bridge design share --project <id> --access workspace
|
|
198
|
+
bridge design state
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Los agentes tienen lo mismo como herramientas MCP **`design_*`** en `bridge serve`; las destructivas requieren `confirm: true`. Publicar como artefacto, Claude Code, exportar PNG/vídeo/PDF/PowerPoint, comentarios y restaurar versiones quedan en la interfaz.
|
|
202
|
+
|
|
180
203
|
## Limitaciones
|
|
181
204
|
|
|
182
205
|
- **Solo macOS** por ahora (ruta de Chrome fija y ayudantes `pbcopy`/`lsof`).
|
package/README.he.md
CHANGED
|
@@ -209,6 +209,29 @@ bridge flow project-delete --yes # מחיקה לצמיתות של הפר
|
|
|
209
209
|
|
|
210
210
|
**תחזוקת סלקטורים:** הסלקטורים של Flow **אומתו בזמן אמת (LIVE-VERIFIED)** מול עורך פרויקט מחובר. אם Google משנה את ה-UI, בצעו לכידה מחדש עם `node scripts/dev/captureProviderSelectors.mjs`, ואז עדכנו את [`src/config.ts`](src/config.ts); היצירה נמצאת ב-[`src/features/providers/flow/flowPage.ts`](src/features/providers/flow/flowPage.ts) וה-CRUD של הנכסים ב-[`src/features/providers/flow/flowAssets.ts`](src/features/providers/flow/flowAssets.ts).
|
|
211
211
|
|
|
212
|
+
## תמיכה ב-Claude Design
|
|
213
|
+
|
|
214
|
+
ה-bridge מפעיל את **[Claude Design](https://claude.ai/design)** מתוך ה-Chrome של ה-bridge שבו אתם מחוברים. קריאות ושינויים בפרויקטים ובקבצים עוברים דרך הבקשות של האפליקציה עצמה מתוך הלשונית; סבבי שיחה, תבניות, מודל ורמת מאמץ עוברים דרך הממשק האמיתי, לשונית אחת לכל פרויקט.
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
bridge chrome start --provider design
|
|
218
|
+
bridge design catalog # תבניות, מודלים + רמות מאמץ, מערכות עיצוב
|
|
219
|
+
bridge design projects
|
|
220
|
+
bridge design model --model "Sonnet 4.6" --effort Low
|
|
221
|
+
bridge design create --template Slides --prompt "השקת Q3" --model "Haiku 4.5"
|
|
222
|
+
bridge design send --project <id> --message "כותרת גדולה יותר"
|
|
223
|
+
bridge design read --project <id> # שיחות והודעות אחרונות
|
|
224
|
+
bridge design files --project <id>
|
|
225
|
+
bridge design put --project <id> --file hero.png
|
|
226
|
+
bridge design rm --project <id> --path hero.png --yes
|
|
227
|
+
bridge design download --project <id>
|
|
228
|
+
bridge design export --project <id>
|
|
229
|
+
bridge design share --project <id> --access workspace
|
|
230
|
+
bridge design state
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
סוכנים אחרים מקבלים את אותה יכולת ככלי MCP מסוג **`design_*`** דרך `bridge serve`; כלים הרסניים דורשים `confirm: true`. פרסום כ-artifact, שליחה ל-Claude Code, ייצוא PNG/וידאו/PDF/PowerPoint, תגובות ושחזור גרסאות נשארים ידניים בממשק.
|
|
234
|
+
|
|
212
235
|
## מגבלות
|
|
213
236
|
|
|
214
237
|
- **macOS בלבד** כיום (נתיב Chrome קשיח ועוזרי `pbcopy`/`lsof`).
|
package/README.md
CHANGED
|
@@ -372,6 +372,40 @@ Flow requires a **Google AI Pro/Ultra** plan. Because Veo renders take minutes,
|
|
|
372
372
|
|
|
373
373
|
**Selector maintenance:** Flow's selectors were **LIVE-VERIFIED** against a signed-in project editor. If Google changes the UI, recapture with `node scripts/dev/captureProviderSelectors.mjs`, then update [`src/config.ts`](src/config.ts); generation lives in [`src/features/providers/flow/flowPage.ts`](src/features/providers/flow/flowPage.ts) and asset CRUD in [`src/features/providers/flow/flowAssets.ts`](src/features/providers/flow/flowAssets.ts).
|
|
374
374
|
|
|
375
|
+
## Claude Design support
|
|
376
|
+
|
|
377
|
+
The bridge drives **[Claude Design](https://claude.ai/design)** — Claude's project workspace for slides, prototypes, and documents — from your signed-in bridge Chrome. Reads and project/file changes use the app's own requests from inside the tab (one call each); turns, templates, and model/effort go through the real UI, one tab per project.
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
bridge chrome start --provider design # sign in at claude.ai
|
|
381
|
+
bridge design catalog # templates, models + effort levels, design systems
|
|
382
|
+
bridge design projects --query launch # list / search projects (--design-systems for design systems)
|
|
383
|
+
bridge design model --model "Sonnet 4.6" --effort Low # pick model (incl. More models) + effort; --project for a project
|
|
384
|
+
bridge design create --template Slides --prompt "our Q3 launch" --model "Haiku 4.5" --effort Low
|
|
385
|
+
bridge design send --project <id> --message "make the title bolder" --model "Sonnet 4.6" --attach brief.md
|
|
386
|
+
bridge design read --project <id> # Conversations + latest messages (what you wrote, what Claude replied)
|
|
387
|
+
bridge design new-conversation --project <id>
|
|
388
|
+
bridge design rename-conversation --project <id> --conversation <cid> --title "Logo pass"
|
|
389
|
+
bridge design files --project <id>
|
|
390
|
+
bridge design put --project <id> --file hero.png --dir assets # add, or replace the same path
|
|
391
|
+
bridge design rm --project <id> --path assets/old.png --yes
|
|
392
|
+
bridge design download --project <id> # project files to <repo>/.bridge/downloads/design/<id>
|
|
393
|
+
bridge design export --project <id> # the project .zip
|
|
394
|
+
bridge design share --project <id> --access workspace --permission comment
|
|
395
|
+
bridge design rename --project <id> --name "Launch deck"
|
|
396
|
+
bridge design duplicate --project <id>
|
|
397
|
+
bridge design favorite --project <id> # --off removes the star
|
|
398
|
+
bridge design use-design-systems --project <id> --design-system <dsid> # --none clears them
|
|
399
|
+
bridge design delete --project <id> --yes
|
|
400
|
+
bridge design state # where Claude Design is, busy tabs, available actions
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
Add `--json` to any verb for machine-readable output. `send` and `create` wait for Claude's reply (`--timeout`, default 600 s); `--no-wait` returns while the turn runs and `--auto-decide` answers clarifying questions with "Decide for me". A model or effort choice also becomes your Claude Design default, exactly as when you pick it in the UI.
|
|
404
|
+
|
|
405
|
+
Agents get the same surface as **`design_*` MCP tools** over `bridge serve`: `design_state`, `design_list_projects`, `design_catalog`, `design_choose_model`, `design_list_files`, `design_read_conversation`, `design_open_project`, `design_create_project`, `design_send`, `design_new_conversation`, `design_rename_conversation`, `design_update_project`, `design_duplicate_project`, `design_delete_project`, `design_put_files`, `design_remove_files`, `design_download`, `design_share`. Destructive tools (`design_delete_project`, `design_remove_files`) require `confirm: true`; local paths must stay inside the target repo.
|
|
406
|
+
|
|
407
|
+
**Left to you in the UI:** Publish as artifact, Send to Claude Code, PNG/video/PDF/PowerPoint export, partner app exports, comments, and version restore — `design state` lists them. Design is not a Fan-out provider: a Fan-out tab closes when its task ends, which would cancel the turn.
|
|
408
|
+
|
|
375
409
|
## Limitations
|
|
376
410
|
|
|
377
411
|
- **macOS-only** today (`open`, `pbcopy`, and `lsof` helpers).
|
package/README.zh.md
CHANGED
|
@@ -177,6 +177,29 @@ Flow 需要 **Google AI Pro/Ultra** 套餐。由于 Veo 渲染需要数分钟,
|
|
|
177
177
|
|
|
178
178
|
**选择器维护:** Flow 的选择器已针对已登录的项目编辑器**实时验证(LIVE-VERIFIED)**。如果 Google 更改了 UI,请使用 `node scripts/dev/captureProviderSelectors.mjs` 重新捕获,然后更新 [`src/config.ts`](src/config.ts);生成逻辑位于 [`src/features/providers/flow/flowPage.ts`](src/features/providers/flow/flowPage.ts),素材 CRUD 位于 [`src/features/providers/flow/flowAssets.ts`](src/features/providers/flow/flowAssets.ts)。
|
|
179
179
|
|
|
180
|
+
## Claude Design 支持
|
|
181
|
+
|
|
182
|
+
bridge 可以在已登录的 bridge Chrome 中驱动 **[Claude Design](https://claude.ai/design)**。读取以及项目/文件的修改通过标签页内应用自身的请求完成;对话轮次、模板、模型和推理强度则通过真实界面操作,每个项目一个标签页。
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
bridge chrome start --provider design
|
|
186
|
+
bridge design catalog # 模板、模型 + 推理强度、设计系统
|
|
187
|
+
bridge design projects
|
|
188
|
+
bridge design model --model "Sonnet 4.6" --effort Low
|
|
189
|
+
bridge design create --template Slides --prompt "Q3 发布" --model "Haiku 4.5"
|
|
190
|
+
bridge design send --project <id> --message "标题再大一点"
|
|
191
|
+
bridge design read --project <id> # 对话与最新消息
|
|
192
|
+
bridge design files --project <id>
|
|
193
|
+
bridge design put --project <id> --file hero.png
|
|
194
|
+
bridge design rm --project <id> --path hero.png --yes
|
|
195
|
+
bridge design download --project <id>
|
|
196
|
+
bridge design export --project <id>
|
|
197
|
+
bridge design share --project <id> --access workspace
|
|
198
|
+
bridge design state
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
其他代理可通过 `bridge serve` 使用相同能力的 **`design_*`** MCP 工具;破坏性工具需要 `confirm: true`。发布为 artifact、发送到 Claude Code、PNG/视频/PDF/PowerPoint 导出、评论和版本恢复仍需在界面中手动完成。
|
|
202
|
+
|
|
180
203
|
## 限制
|
|
181
204
|
|
|
182
205
|
- 目前**仅支持 macOS**(硬编码的 Chrome 路径以及 `pbcopy`/`lsof` 辅助)。
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-browser-bridge
|
|
3
|
+
description: Drive ChatGPT, Gemini, Claude, DeepSeek, Grok, Perplexity, Duck.ai, Arena, Google Flow, or Claude Design (claude.ai/design) through a signed-in Chrome session, either from the bridge CLI or its outbound MCP tools. Use when Claude Code, Codex, or another agent should ask a browser-hosted model, upload local files or screenshots, search, resume, or batch-organize browser conversations, fan out across providers, create or edit Claude Design projects (slides, prototypes, documents), or use bridge-managed ChatGPT and Flow capabilities.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ai-browser-bridge
|
|
7
|
+
|
|
8
|
+
Drive ChatGPT, Gemini, Claude, DeepSeek, Grok, Perplexity, Duck.ai, Arena, Google Flow, or Claude Design in a real browser from any agent — one provider or fanned out. Exposes sandboxed local repo tools to ChatGPT, Claude, and Grok over MCP, and serves outbound MCP `ask`, `search_conversations`, ChatGPT, Flow, and Claude Design tools so agents can call browser surfaces natively.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
- macOS
|
|
13
|
+
- Node.js ≥ 22
|
|
14
|
+
- Google Chrome
|
|
15
|
+
- `cloudflared` (optional, for ChatGPT, Claude, and Grok MCP tools)
|
|
16
|
+
- Signed-in providers: run `bridge chrome start --provider <name>` and sign in if needed
|
|
17
|
+
|
|
18
|
+
## Install & setup
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install -g ai-browser-bridge # installs `bridge` and ships this SKILL.md
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The package folder is also the skill folder. Link it once into each agent's
|
|
25
|
+
global skills directory; every later `npm install -g ai-browser-bridge` then
|
|
26
|
+
updates the skill too:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
PKG="$(npm root -g)/ai-browser-bridge"
|
|
30
|
+
mkdir -p ~/.claude/skills ~/.agents/skills
|
|
31
|
+
ln -sfn "$PKG" ~/.claude/skills/ai-browser-bridge # Claude Code
|
|
32
|
+
ln -sfn "$PKG" ~/.agents/skills/ai-browser-bridge # Codex
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## How to use as a tool
|
|
36
|
+
|
|
37
|
+
### MCP stdio (Claude Code, Codex, Kiro, any MCP client)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
bridge serve
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Exposes tools over stdio:
|
|
44
|
+
- `ask({ prompt, providers?, timeoutSeconds? })`
|
|
45
|
+
- `search_conversations({ query, providers?, limit? })`
|
|
46
|
+
- `design_*` for Claude Design: `design_state`, `design_list_projects`, `design_catalog`,
|
|
47
|
+
`design_choose_model`, `design_create_project`, `design_send`, `design_read_conversation`,
|
|
48
|
+
`design_new_conversation`, `design_rename_conversation`, `design_list_files`,
|
|
49
|
+
`design_put_files`, `design_remove_files`, `design_download`, `design_share`,
|
|
50
|
+
`design_update_project`, `design_duplicate_project`, `design_delete_project`,
|
|
51
|
+
`design_open_project`. `design_delete_project` and `design_remove_files` need
|
|
52
|
+
`confirm: true`; `design_put_files` replaces an existing path without asking.
|
|
53
|
+
- `flow_*` for Google Flow: `flow_generate`, `flow_extend_clip`, `flow_reuse_clip`,
|
|
54
|
+
`flow_list_clips`, `flow_list_projects`, `flow_list_ingredients`, `flow_download_clips`,
|
|
55
|
+
`flow_rename_clip`, `flow_rename_project`, `flow_delete_clip`, `flow_delete_project`,
|
|
56
|
+
`flow_remove_ingredient`, `flow_clear_ingredients`
|
|
57
|
+
- `chatgpt_render_state` for the live ChatGPT render (streaming, image progress, limits)
|
|
58
|
+
|
|
59
|
+
### CLI (Codex, scripts, any shell-based agent)
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# One provider
|
|
63
|
+
bridge ask "summarize this repo" --provider chatgpt --json
|
|
64
|
+
|
|
65
|
+
# Fan out across multiple
|
|
66
|
+
bridge ask "compare approaches" --provider claude,deepseek,grok --json
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`--json` emits machine-readable output. Never hangs in a pipe.
|
|
70
|
+
|
|
71
|
+
## Claude Design
|
|
72
|
+
|
|
73
|
+
Claude Design (claude.ai/design) is a project workspace for slides, prototypes,
|
|
74
|
+
and documents. The bridge drives it in the signed-in bridge Chrome, one tab per
|
|
75
|
+
project. It is not a fan-out provider, so `ask` does not reach it; use the
|
|
76
|
+
`design_*` tools or `bridge design` instead.
|
|
77
|
+
|
|
78
|
+
1. `bridge chrome start --provider design` and sign in at claude.ai if needed.
|
|
79
|
+
2. `design_state` first: where Claude Design is, whether a turn is running, and
|
|
80
|
+
which actions are available.
|
|
81
|
+
3. `design_catalog` for templates, models with effort levels, and design systems.
|
|
82
|
+
4. New work: `design_create_project` with a prompt (and optional template, model,
|
|
83
|
+
effort, attachments). It waits for Claude's first reply.
|
|
84
|
+
5. Follow-ups: `design_send` in the project's Conversation, then
|
|
85
|
+
`design_read_conversation` to read replies. For long turns pass `wait: false`
|
|
86
|
+
and poll `design_read_conversation`.
|
|
87
|
+
6. Files: `design_list_files`, `design_put_files` (repo files only),
|
|
88
|
+
`design_download` into `.bridge/downloads/design`.
|
|
89
|
+
|
|
90
|
+
Same surface from a shell:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
bridge design state --json
|
|
94
|
+
bridge design create --template Slides --prompt "our Q3 launch" --json
|
|
95
|
+
bridge design send --project <id> --message "make the title bolder" --json
|
|
96
|
+
bridge design read --project <id> --json
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Left to the human in the UI: Publish as artifact, Send to Claude Code,
|
|
100
|
+
PNG/video/PDF/PowerPoint export, comments, and version restore.
|
|
101
|
+
|
|
102
|
+
## Per-agent setup
|
|
103
|
+
|
|
104
|
+
### Claude Code
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
claude mcp add --transport stdio --scope user ai-browser-bridge -- bridge serve
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Codex
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
codex mcp add ai-browser-bridge -- bridge serve
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
This writes `[mcp_servers.ai-browser-bridge]` to `~/.codex/config.toml`. Codex can
|
|
117
|
+
also call the CLI directly, for example `bridge ask "your question" --provider chatgpt --json`.
|
|
118
|
+
|
|
119
|
+
### Kiro
|
|
120
|
+
|
|
121
|
+
Add to your MCP config:
|
|
122
|
+
```jsonc
|
|
123
|
+
{
|
|
124
|
+
"mcpServers": {
|
|
125
|
+
"ai-browser-bridge": { "command": "bridge", "args": ["serve"] }
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Cursor
|
|
131
|
+
|
|
132
|
+
Add to `.cursor/mcp.json`:
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"mcpServers": {
|
|
136
|
+
"ai-browser-bridge": { "command": "bridge", "args": ["serve"] }
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Available commands
|
|
142
|
+
|
|
143
|
+
| Command | Purpose |
|
|
144
|
+
|---------|---------|
|
|
145
|
+
| `bridge` (bare) | Interactive TUI |
|
|
146
|
+
| `bridge ask <prompt>` | One-shot send + reply |
|
|
147
|
+
| `bridge chrome start --provider <name>` | Start existing Chrome profile with debug port |
|
|
148
|
+
| `bridge status` / `bridge chrome status` | Show Chrome debug-port status |
|
|
149
|
+
| `bridge cache list\|prune` | Inspect/prune safe generated Chrome cache |
|
|
150
|
+
| `bridge serve` | Outbound MCP ask/search tools (stdio) |
|
|
151
|
+
| `bridge download` | Download conversation attachments |
|
|
152
|
+
| `bridge sessions` | List stored sessions |
|
|
153
|
+
| `bridge stop` | Kill warm Chrome |
|
|
154
|
+
| `bridge project list\|create\|rename\|delete` | Manage ChatGPT Projects |
|
|
155
|
+
| `bridge chat list\|search\|move\|organize\|archive` | List, search, batch-organize & archive conversations |
|
|
156
|
+
| `bridge chat organize status\|pause\|resume` | Inspect or control the latest persisted organization queue |
|
|
157
|
+
| `bridge task list\|create` | Schedule ChatGPT Tasks |
|
|
158
|
+
| `bridge chatgpt` | Inspect the live ChatGPT render |
|
|
159
|
+
| `bridge flow` | Generate and manage Google Flow clips and ingredients |
|
|
160
|
+
| `bridge design` | Claude Design projects, templates, model/effort, files, Conversations, share |
|
|
161
|
+
|
|
162
|
+
## Keep conversations organized (ChatGPT)
|
|
163
|
+
|
|
164
|
+
Before starting a **new** ChatGPT conversation, check whether it belongs in an
|
|
165
|
+
existing Project instead of adding one more loose chat:
|
|
166
|
+
|
|
167
|
+
1. `bridge project list` — the Projects that already exist.
|
|
168
|
+
2. `bridge chat search "<topic>"` — a related past chat (and where it lives).
|
|
169
|
+
3. If a Project fits, ask/resume there, then file the chat:
|
|
170
|
+
`bridge chat move "<idOrTitle>" --project "<Project>"`.
|
|
171
|
+
4. Only leave a chat loose when nothing fits. The first time a **second**
|
|
172
|
+
related chat appears, `bridge project create "<Project>"` and move both in.
|
|
173
|
+
|
|
174
|
+
For agents driving the bridge:
|
|
175
|
+
|
|
176
|
+
- One Project per topic / repo / deliverable — reuse before you create.
|
|
177
|
+
- `bridge chat list --orphans` shows only loose (project-less) chats; a growing list
|
|
178
|
+
there is the signal to file them into Projects.
|
|
179
|
+
- Archive dead or scratch chats with `bridge chat archive "<idOrTitle>"`
|
|
180
|
+
(reversible — hides from the sidebar) to keep it lean. Batch with `--id`.
|
|
181
|
+
- Don't spawn throwaway or test conversations in the signed-in account. Use an
|
|
182
|
+
isolate profile (`bridge ask --fan-out` with `isolate`) for scratch runs, and
|
|
183
|
+
clean up anything you create.
|
|
184
|
+
|
|
185
|
+
For a full-history cleanup, scan only loose chats with
|
|
186
|
+
`bridge chat list --orphans --json`, group clear recurring topics, and leave
|
|
187
|
+
ambiguous or uncommon chats loose. Reuse existing Projects first; create a new
|
|
188
|
+
Project only for a stable topic with at least two chats. Put every accepted move
|
|
189
|
+
into one JSON plan of `{ "conversation": "<idOrTitle>", "project": "<name>" }`
|
|
190
|
+
items, dry-run it, then start the persisted queue:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
bridge chat organize --plan @organization-plan.json --dry-run
|
|
194
|
+
bridge chat organize --plan @organization-plan.json \
|
|
195
|
+
--interval 60 --cooldown 600 --max-attempts 4 --json
|
|
196
|
+
|
|
197
|
+
# Later lifecycle operations do not need the plan again
|
|
198
|
+
bridge chat organize status --json
|
|
199
|
+
bridge chat organize pause
|
|
200
|
+
bridge chat organize resume --json
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
The queue persists under `.bridge/chat-organization-queues/`. Running the exact
|
|
204
|
+
same plan again resumes pending work without replaying completed moves. Rate
|
|
205
|
+
limits and closed Chrome sessions are deferred without consuming a move attempt;
|
|
206
|
+
the queue relaunches its browser session automatically. Adaptive pacing starts at
|
|
207
|
+
60 seconds, speeds up 20% after every three successful moves to a 15-second floor,
|
|
208
|
+
and slows 50% after each rate limit to a 180-second ceiling, in addition to the
|
|
209
|
+
600-second cooldown. Pace is persisted across pause/resume; use `--no-adaptive`
|
|
210
|
+
only when a fixed/random interval is specifically required.
|
|
211
|
+
|
|
212
|
+
At completion, the queue automatically runs `--orphans` discovery to the proven
|
|
213
|
+
stable bottom of ChatGPT history and reports both intentional remaining orphans
|
|
214
|
+
and any planned Conversation still loose. The scanner throws rather than silently
|
|
215
|
+
accepting a partial inventory. Planned Conversations that remain loose are retried
|
|
216
|
+
automatically up to `--max-attempts`. Start the queue, confirm it acquires the lock and
|
|
217
|
+
processes or defers one item, then let it continue unattended—continuous agent
|
|
218
|
+
watching is unnecessary. Use `bridge chat organize pause` instead of killing the
|
|
219
|
+
process, `resume` to continue the latest queue without reconstructing its plan,
|
|
220
|
+
and `--restart` only when the whole plan should intentionally be replayed.
|
|
221
|
+
|
|
222
|
+
## Constraints
|
|
223
|
+
|
|
224
|
+
- macOS only (hardcoded Chrome path, pbcopy/lsof)
|
|
225
|
+
- Each provider needs Chrome started with `bridge chrome start --provider <name>` and a signed-in browser session
|
|
226
|
+
- File operations are sandboxed to the target repo (no escape)
|
|
227
|
+
- No raw shell — only validated MCP tools
|
|
228
|
+
- Browser selectors may break when provider UIs update
|
|
229
|
+
|
|
230
|
+
## Fan-out behavior
|
|
231
|
+
|
|
232
|
+
- `--provider a,b,c` runs all in parallel
|
|
233
|
+
- Partial-failure tolerant: exits non-zero only when ALL fail
|
|
234
|
+
- `--strict`: exit non-zero if ANY fails
|
|
235
|
+
- Replies keyed by provider in JSON output
|