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 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