mcpField
A
ask-bridge

ask-bridge

github.com/doggy8088Agent 工作流48201 次安装2 周前更新
代码仓库

关于 ask-bridge

ask-bridge 是一个 CLI Skill,可通过 ChatGPT、Gemini 或 Claude 网站委派探索性任务。它支持提示词、文件和受支持的图片输入,同时将代码修改与验证留给本地编码 Agent。

主要功能

  1. 01向 ChatGPT、Gemini 或 Claude 发送提示词
  2. 02通过 stdin、文件或图片提供输入
  3. 03选择服务商并延续或隔离对话
  4. 04保存 Markdown 回复和生成图片
  5. 05控制浏览器会话并诊断自动化

适用场景

  1. 01摘要报告、错误或研究笔记
  2. 02初步分析代码或设计方案
  3. 03比较选项并起草检查清单
  4. 04委派无需本地修改文件的任务

MCP 相关

该 CLI 通过持久的 stdio 连接使用 chrome-devtools-mcp,自动操作服务商网站。MCP 是其实现依赖,而非 ask-bridge 对外提供的服务端。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/doggy8088/ask-bridge --skill ask-bridge

安装后在 Claude Code 中输入/ask-bridge确认已加载。

附带文件agents/openai.yaml

详细介绍

来自项目 README

Ask Bridge

核心原則

使用 ask-bridge 把低風險、探索性、可委派的 AI 任務交給 ChatGPT、Gemini 或 Claude 網站處理,再將回覆作為本機工作流程的參考輸入。不要把 provider 回覆視為事實來源、測試結果或已完成的程式碼變更。

優先把主要 Coding Agent 保留給下列工作:讀取專案脈絡、修改檔案、執行測試、驗證行為、整合結論。把 ask-bridge 用於背景研究、摘要、候選方案、初稿與輔助分析。

執行命令名稱

安裝後優先使用 ask-bridge:

ask-bridge --help

本專案產出的 Rust binary 叫 ask-bridge,release 產物通常位於 target/release/ask-bridge。在專案內測試尚未安裝的版本時,可使用:

cargo run --bin ask-bridge -- --help
target/release/ask-bridge --help

本 Skill 下方範例一律以安裝後的 ask-bridge 命令表示。

ask 只是向後相容 alias。除非使用者明確要求 alias,文件、範例與自動化命令都優先使用 ask-bridge。

使用前檢查

先確認 ask-bridge、Node.js 與 npx 可用:

ask-bridge -v
node --version
npx --version

Node.js 必須符合 ^20.19.0、^22.12.0 或 >=23.0.0。執行瀏覽器操作還需要 Google Chrome;macOS、Windows 與 Linux 的偵測位置依專案 README 為準。

若找不到 ask-bridge,在 ask-bridge 專案中可先使用既有安裝流程、cargo run --bin ask-bridge --,或建置後的 target/release/ask-bridge;不要臆測使用者環境已完成設定。

在 Windows 安裝或更新後,額外確認實際命令來源:

where.exe ask-bridge
ask-bridge --version

第一筆展開後的完整路徑結尾應為 \.local\bin\ask-bridge.exe。若其他舊命令排在前面, 重新執行官方 install.ps1;安裝程式會驗證 Windows PE 格式與版本輸出, 並將正式安裝目錄移到 User PATH 最前面。

全域設定檔

ask-bridge 會讀取全域設定檔:

~/.config/ask-bridge/config.json

可用格式:

{
  "provider": "gemini"
}

或:

{
  "provider": "chatgpt"
}

或:

{
  "provider": "claude"
}

provider 優先序:

  1. CLI --provider chatgpt|gemini|claude
  2. ~/.config/ask-bridge/config.json 的 provider
  3. 內建預設 chatgpt

若需要替使用者設定預設 provider,可建立設定檔:

ask-bridge config --provider gemini
ask-bridge config --provider claude

若要改回 ChatGPT:

ask-bridge config --provider chatgpt

使用 ask-bridge config 可查看目前設定:

ask-bridge config

若任務需要單次覆蓋全域設定,直接使用 --provider,不要修改設定檔:

ask-bridge --provider chatgpt '請摘要這段內容。'

首次使用或登入失效時,ask-bridge 可能需要瀏覽器互動登入。只有在任務允許互動式登入時才執行:

ask-bridge login
ask-bridge --provider gemini login
ask-bridge --provider claude login
ask-bridge login --provider gemini

若目前任務不適合中斷等待登入,回報需要使用者完成登入,不要反覆重試。

委派決策

適合使用 ask-bridge:

  • 摘要長文件、錯誤訊息、測試輸出、issue 討論或研究筆記。
  • 請外部 AI 對程式片段、設計方案或規格草稿做初步分析。
  • 產生候選實作策略、檢查清單、測試案例構想或文件初稿。
  • 比較多個方案的優缺點,但由本機 agent 保留最終判斷。
  • 將不需要直接修改專案檔案的工作移出主要 agent 流程。

避免使用 ask-bridge:

  • 需要讀取或傳送密鑰、憑證、token、個資、內部機密或使用者未授權的內容。
  • 需要可驗證最新資訊、法規、價格、版本、新聞或官方規格時,把 ask-bridge 當成唯一資料來源。
  • 需要直接修改檔案、執行測試、操作 git、發佈或部署。
  • 任務要求嚴格可重現、可稽核或不可容忍 provider 幻覺。

快速語法

基本語法:

ask-bridge [OPTIONS] [PROMPT] [COMMAND]

常用範例:

ask-bridge '請摘要下列錯誤訊息,列出可能原因與下一步檢查。'
ask-bridge --provider gemini '請比較這三個實作方向的風險與取捨。'
cat report.md | ask-bridge '請摘要這份文件,列出待辦。'
ask-bridge '請摘要這份規格文件。' --file docs/spec.md -o /tmp/spec-summary.md
ask-bridge '請描述這張截圖中的 UI 問題。' --image screenshot.png
ask-bridge '請分析這份長報告。' --file report.pdf --timeout 600
ask-bridge '請根據這份 prompt 產生圖片。' -i /tmp/generated-images/

若同時提供 prompt argument 與 stdin,ask-bridge 會組合為:

prompt + "\n\n" + stdin

參數速查

參數用途用法重點
[PROMPT]要送給 provider 的文字 prompt可省略;若 stdin 有內容則使用 stdin;若兩者都有,會以兩個換行串接
-p, --provider <PROVIDER>選擇 provider可用 chatgpt、gemini 或 claude;此為 global option,可放在子命令前後;優先權高於全域設定檔
--headless[=<HEADLESS>]控制 Chrome 是否 headless預設 true;要顯示瀏覽器請用 --headless=false;不要寫成 --headless false
--new開啟全新 provider 對話會開啟並綁定新的唯一分頁,同時保留所有既有頁籤;用於隔離上下文
--session <URL_OR_ID>接續既有 provider 對話可傳完整對話 URL 或對話 ID;--session-id、--session-url 為別名;不能與 --new 同時使用
-v, -V, --version顯示版本-V 是原始碼中定義的短別名;文件與一般操作優先用 -v 或 --version
--verbose顯示瀏覽器自動化流程用於診斷 provider UI、登入、上傳、模型切換或等待回覆問題
-o, --output <FILE>將最終 Markdown 回覆寫入檔案同時仍會在終端機輸出渲染結果;適合保留研究紀錄
-i, --image-output <IMAGE_PATH>下載 provider 回覆中的生成圖片可指定資料夾或檔案路徑;可搭配一般 prompt、get 或 open <url>
--image <IMAGE_FILE>附加圖片檔,可重複指定支援 ChatGPT 與 Claude;搭配 Gemini 會失敗
--file <FILE>附加文件檔,可重複指定支援 PDF、Word、Excel、PowerPoint、純文字、Markdown、CSV、JSON、程式碼等;ChatGPT、Gemini 與 Claude 都可用
--timeout <SECONDS>設定等待上限必須是大於 0 的整數,預設 300 秒;同時套用於一般回覆與 login 登入偵測
--model <MODEL>送出 prompt 前切換模型比對不分大小寫與標點;模型名稱取決於 provider UI 與帳號權限
--reasoning <REASONING>切換 provider 推理模式ChatGPT 支援 instant、medium、high、xhigh(新版已無 auto);Gemini 支援 extended;Claude 不支援
-h, --help顯示 help可用 ask-bridge --help 或 ask-bridge help <COMMAND>

只有 --provider 是 global option,可放在子命令前後。其他頂層選項搭配子命令時必須放在子命令之前,例如 ask-bridge --timeout 600 login、ask-bridge --output /tmp/reply.md get <url>;不要寫成 ask-bridge login --timeout 600 或 ask-bridge get <url> --output ...。

Provider 選擇

預設使用 ChatGPT:

ask-bridge '請摘要下列錯誤訊息,列出可能原因與下一步檢查。'
ask-bridge --provider chatgpt '請分析這段程式碼的風險。'
ask-bridge -p chatgpt '請整理這份文件的待辦。'

使用 Gemini 或 Claude 時明確指定 provider:

ask-bridge --provider gemini '請比較這三個實作方向的風險與取捨。'
ask-bridge -p gemini '請摘要這份文件。' --file notes.md
ask-bridge --provider claude '請初步分析這段程式碼的風險。'
ask-bridge -p claude '請摘要這份文件。' --file notes.md

選擇原則:

  • 未指定 --provider 時,先依全域設定檔選擇 provider;設定檔不存在時使用 ChatGPT。
  • 使用 ChatGPT 作為未設定時的預設 provider。
  • 使用 Gemini 做替代觀點、快速摘要或使用者明確要求 Gemini 時。
  • 使用 Claude 做程式碼分析、長文摘要、替代觀點或使用者明確要求 Claude 時;Claude 也支援 --image 圖片輸入。
  • 若 provider 失敗,可在不增加風險的情況下改用另一個 provider 一次。
  • 不要硬編不存在的模型名稱;只有使用者指定或專案文件明確列出時才使用 --model。

Prompt 組裝

讓委派 prompt 包含明確輸出契約:

你是協助主要 Coding Agent 的研究助手。
目標:<要完成的分析或摘要>
背景:<必要上下文>
輸入資料:<貼上內容或說明附件>
請輸出:
1. 直接結論
2. 依據與不確定處
3. 可執行的下一步
限制:不要聲稱已修改本機檔案;不確定時請明確標示。

保持 prompt 聚焦。大型任務先請 provider 產生摘要或候選清單,再由本機 agent 判斷是否需要第二輪委派。

傳入資料

對短文字使用 argument:

ask-bridge '請用 5 點摘要這段錯誤訊息,並標示最可能的根因。'

對程式片段或命令輸出使用 stdin:

cargo test 2>&1 | ask-bridge '請摘要測試失敗重點,列出可能要看的檔案與函式。'
cat src/main.rs | ask-bridge '請初步檢查這段 Rust 程式碼的錯誤處理與風險。'

同時使用 prompt 與 stdin:

cat docs/spec.md | ask-bridge '請根據下列規格產生實作檢查清單。'

在非互動式 agent 環境中,若已提供 prompt argument,但 stdin 管道保持開啟且沒有送入資料,工具最多等待 2 秒後會只使用 prompt argument 繼續執行。若沒有 prompt argument,stdin 就是必要輸入;超過 2 秒仍無資料時,工具會印出等待診斷並持續等到收到資料或 EOF。

對完整文件、二進位文件或多檔案使用 --file:

ask-bridge '請摘要這份規格文件,列出實作需求與待釐清問題。' --file docs/spec.md
ask-bridge '請比較這兩份文件的差異。' --file old.md --file new.md
ask-bridge --provider gemini '請摘要這份 PDF。' --file report.pdf

對圖片使用 --image,目前支援 ChatGPT 與 Claude:

ask-bridge '請描述這張截圖中的 UI 問題,並列出可能的 CSS 原因。' --image screenshot.png
ask-bridge '請比較這兩張圖的差異。' --image before.png --image after.png
ask-bridge --provider claude '請描述這張截圖中的 UI 問題。' --image screenshot.png

同時附加圖片與文件時,使用 ChatGPT 或 Claude:

ask-bridge '請對照設計圖與規格文件,列出不一致處。' --image design.png --file spec.md

輸出與下載

將 Markdown 回覆寫入檔案:

ask-bridge '請整理這份輸入的重點與待辦。' --file notes.md --output /tmp/ask-notes.md
ask-bridge '請整理這份輸入的重點與待辦。' --file notes.md -o /tmp/ask-notes.md

下載 provider 回覆中的生成圖片:

ask-bridge '請產生一張產品概念圖。' --image-output /tmp/ask-images/
ask-bridge '請產生一張產品概念圖。' -i /tmp/product-concept.png

若可接受輸出同時包含 thread URL,也可使用 shell redirect:

ask-bridge '請整理這份輸入的重點與待辦。' --file notes.md > /tmp/ask-bridge-notes.md

一般提問完成後,終端機還會輸出目前 provider 對話的 thread URL。--output 寫入的是純 Markdown 回覆,不包含該 URL;需要後續接續或稽核對話時,另外保留終端機輸出的連結。

逾時控制

一般回覆與手動登入偵測預設最多等待 300 秒。預期長回覆時提高上限:

ask-bridge '請完整分析這份報告。' --file report.pdf --timeout 600
ask-bridge --timeout 600 login

--timeout 必須是大於 0 的整數。一般回覆逾時時,工具會停止等待並輸出警告;不要把空白或未完成的輸出當成有效回覆。登入逾時只代表仍未偵測到完成狀態,需檢查瀏覽器後再決定是否重試。

模型與推理模式切換

模型與推理模式是兩個獨立參數:

ask-bridge '證明這個數學問題。' --model 'GPT-5.6 Sol' --reasoning high
ask-bridge '快速翻譯這段話。' --reasoning instant
ask-bridge --provider gemini '用幾句話介紹 Rust。' --model '3.6 Flash'
ask-bridge --provider gemini '證明這個數學問題。' --model '3.1 Pro' --reasoning extended
ask-bridge --provider claude '用幾句話介紹 Rust。' --model Sonnet

ChatGPT 的 --reasoning 支援 instant、medium、high、xhigh 與對應中文別名(新版推理滑桿已無「自動」);ask-bridge 一律使用 ChatGPT「對話(Chat)」模式,不使用「工作(Work)」模式;Gemini 只支援 extended,且不能搭配非 Pro 模型;Claude 不支援 --reasoning。

模型只比對 provider 選單的主標籤,忽略副標題與 badge,且不會把不存在的舊版本自動對應到其他版本。若切換失敗,應依錯誤列出的目前選項修正參數,不要猜測替代模型名稱。舊用法 --model 高 與 --model 延伸思考 暫時可用,但應改成 --reasoning。

ChatGPT Agent 提及語法

使用 ChatGPT 時,prompt 可以採用 @Agent名稱 prompt正文 格式。符合格式時,ask-bridge 會先輸入 Agent mention、等待候選選單出現,再按 Tab 接受 UI 當下的預設選取項,最後輸入正文。此流程不會驗證候選是否與輸入的 Agent 名稱完全相符。

語法與限制
  • 格式:@Agent名稱 prompt正文
  • 名稱限制:Agent 名稱必須由 1 至 10 個非空白字元組成。
  • 正文限制:Agent 名稱後必須至少有一個空白,且去除前導空白後的正文不可為空。
  • Provider 限制:特殊處理只適用於 ChatGPT;Gemini 與 Claude 會將相同內容視為一般文字 prompt。
  • Fallback:格式不符合時,不會觸發 Agent mention 流程,而會按照一般 prompt 處理。
使用範例
ask-bridge --provider chatgpt \
  '@研究助手 請摘要這份規格並列出風險。' \
  --file docs/spec.md

ask-bridge --provider chatgpt \
  '@程式審查 請檢查這份程式碼的風險。' \
  --file src/main.rs

對話與瀏覽器控制

需要隔離上下文時使用 --new:

ask-bridge '請只根據本次輸入分析,不要沿用既有對話脈絡。' --new

需要沿用網頁端既有對話脈絡時,傳入對話 ID 或完整 URL:

ask-bridge --provider chatgpt --session-id 'conversation-uuid' '請接續先前的規劃。'
ask-bridge --session-url 'https://chatgpt.com/c/conversation-uuid' '請產出下一步計畫。'

完整 URL 會辨識 provider;若同時明確指定不同的 --provider,命令會停止。 不要使用對話標題猜測 session,也不要將 --session 與 --new 同時使用。

一般提問預設 --headless=true。需要觀察 Chrome 操作時使用:

ask-bridge '請回覆 ok' --headless=false
ask-bridge '請回覆 ok' --verbose --headless=false

關閉 ask-bridge 管理的 Chrome instance:

ask-bridge close

close 只應關閉 ask-bridge 使用的 debug profile 與 debug port instance。若 port 被非 ask-bridge Chrome 程序占用,工具應回報錯誤而不是關閉它。

子命令速查

公開子命令:

子命令用途範例
login開啟 provider 並等待使用者手動登入ask-bridge login、ask-bridge --provider gemini login、ask-bridge --provider claude login
close關閉 ask-bridge 管理的 Chrome instanceask-bridge close
config顯示或設定全域預設 providerask-bridge config、ask-bridge config --provider claude
update依作業系統執行官方安裝流程並重新安裝ask-bridge update
help顯示 helpask-bridge help、ask-bridge help login

隱藏或維護用子命令:

子命令用途範例
open [url]不帶 URL 時開啟 provider;帶 URL 時開啟該對話並複製最新回覆ask-bridge open、ask-bridge open 'https://chatgpt.com/c/...'
get [url]從目前 provider 或指定 URL 取得最新回覆;目前固定使用可見瀏覽器ask-bridge get、ask-bridge -o /tmp/reply.md get 'https://gemini.google.com/app/...'
dump將目前分頁 HTML 寫到 target/dump.html,供除錯使用ask-bridge --verbose dump
screenshot將目前分頁截圖寫到 target/screenshot.png,供除錯使用ask-bridge --headless=false screenshot

open、get、dump、screenshot 可能不出現在一般 --help 中。除錯或維護 ask-bridge 自動化流程時才使用隱藏子命令;一般委派任務優先使用 prompt、--file、--image、--output 與 --image-output。

update 會修改目前安裝內容並使用網路:macOS/Linux 執行 README 的官方安裝流程,Windows 則啟動更新輔助程式或回退到 PowerShell 安裝流程。不要把版本查詢誤當成更新需求;只查版本時使用 ask-bridge -v。

執行與診斷特性

  • 每次 CLI 執行會重用同一個長連線 chrome-devtools-mcp 子程序,不會為每個瀏覽器操作重啟 MCP server。
  • 專案目前固定使用 [email protected],並直接透過內建的 mcp-cli Rust library 建立 stdio 連線;不需要另外安裝 mcp-cli 執行檔。
  • MCP 連線建立上限為 120 秒,單次 MCP tool 呼叫上限為 90 秒。這兩個內部上限與使用者設定的 --timeout 不同;--timeout 只控制 provider 回覆與登入偵測等待時間。
  • MCP 設定、日誌與 Chrome profile 分別位於 ~/.config/ask-bridge/mcp_servers.json、~/.config/ask-bridge/chrome-devtools-mcp.log 與 ~/.config/ask-bridge/chrome-profile。Chrome 使用遠端除錯 port 9223。

使用回覆

將回覆視為外部建議:

  • 先閱讀並萃取可驗證的部分,再套用到本機工作。
  • 對程式建議,仍需讀原始碼、修改檔案並執行測試。
  • 對最新資訊或官方規格,必須再用可靠來源查證。
  • 對不確定或互相矛盾的結果,保留疑點,不要包裝成確定結論。

失敗處理

登入、CAPTCHA、Cloudflare 或 session 失效時,要求使用者完成 ask-bridge login,或在允許互動式瀏覽器時執行登入流程。

provider UI 變更或自動化失敗時,使用 --verbose 取得診斷資訊;必要時用 --headless=false 觀察瀏覽器狀態:

ask-bridge '請回覆 ok' --verbose
ask-bridge '請回覆 ok' --headless=false
ask-bridge --verbose dump
ask-bridge --headless=false screenshot

Gemini 圖片輸入不支援時,改用 ChatGPT 或 Claude,或改以文字描述圖片內容。不要把同一個失敗命令無限制重試。

模型切換失敗時,移除 --model 或改用 provider 預設模型,不要猜測替代模型名稱。

若看到 MCP tool 逾時、傳輸程序結束或 MCP session was reset; re-run the command,工具已重設該次執行的持久 MCP session。先保留原始錯誤,再安全地重跑命令一次;涉及送出 prompt 的失敗不要連續盲目重試,以免 provider 已收到前一次請求。

沒有 prompt 且沒有子命令時,ask-bridge 會顯示 help。若任務需要非互動輸出,優先搭配 --output 或 shell redirect,避免只依賴終端機渲染結果。

评论

支持 Markdown