Pinky 開源:把手機交給 AI 代理操作,付款前停下等你點頭

RSSHub 作者 DIYgod 於 2026-11-08 公開開源專案 Pinky(Apache-2.0):讓 Claude Code 等代理經 MCP 操作 iPhone 與 Android,付款等風險步驟由閘道停等真人點選、代理無法自我核可;銀行與密碼管理 app 預設隱形、驗證碼先遮罩再給代理讀。官方驗收清單列明真人真機僅三例,Windows 身分確認等尚未有人實試,四天內已釋出 92 個版本,現階段仍標 pre-alpha。

用 AI 摘要這篇文章:

2026 年 11 月 8 日上午 11 時 19 分(臺北時間),RSSHub 的作者 DIYgod 在 X 上貼出一個新專案:Pinky,讓任何 AI 代理操作你的 iPhone 和 Android 手機,Mac、Windows、Linux 都能跑,開源免費,他自己的說法是「付款前會停下來等你點頭」。這條貼文背後的時間軸更長一些:GitHub 儲存庫 11 月 6 日建立,第一個公開版本 11 月 7 日中午上架,到 11 月 10 日晚間,儲存庫已累積 92 個 release、約 1,655 顆星,最密集的單日(11 月 10 日)發布了 33 個版本;這段時間軸以 UTC 計,臺北時間加八小時。換句話說,這是一個只有四天大的 pre-alpha 專案,但它挑的題目一點都不小:當你把手機交給 AI 代理,核可的權力應該放在哪一層。

Pinky 的 GitHub releases 頁面:版號採日期加當日序號,左側清單可見連續多個 2026.1111 與 2026.1110 版本Pin
releases 頁的版本節奏:版號用日期加當日序號,左側目錄連續列出同一天的多個版本(頁面擷取於 2026-11-10)。

Pinky 的答案是放在閘道。它是一個安裝在電腦上的桌面應用程式,一邊用 MCP(Model Context Protocol,讓 AI 工具呼叫外部服務的通訊協定,其他服務也靠它接 AI 代理,例如Supabase 的 MCP 開放筆記本)接受 Claude Code、Codex、Cursor 或任何支援 MCP 的代理指揮,另一邊透過 adb 和 Apple 的開發者通道操作真實手機,中間的每個動作都先過自己的檢查,對代理一共提供 19 個 phone_ 開頭的工具。授權採 Apache-2.0,以 Go 語言撰寫,不需要註冊帳號。讓 AI 碰手機這件事先前也有土砲路線,例如用 7 美元 ESP32 板子讓 AI 操作 iPhone的做法,Pinky 則是想把整件事做成一般人也裝得起的桌面軟體。

核可權在閘道這一層,不在代理的指令裡

Pinky 對「付款前會停」的實作方式,是這次發布最值得看清的部分。README 原文寫得很直接:核可由 Pinky 的閘道強制執行,並非寫進給代理的指令裡。風險規則跑在代理與手機之間的那一層,付款、交易、轉帳預設要等你在 Pinky 視窗裡按下允許才會繼續;設定裡可以再把傳訊息、下單、刪除、通話、安裝、離開 app 的連結、變更設定這些動作加進停等清單,甚至設成每個動作都先問。

從代理的角度看,被攔下的步驟只會拿到 approval_pending 狀態,手機上什麼都不會發生,而且它手上沒有任何可以送出的東西能把等待變成同意:核可 id 是一次性、綁定工作階段、裝置、租約與工具呼叫的。面板開啟後你有 60 秒可以決定,沒有回應就視為拒絕。放行前 Pinky 還會重讀一次螢幕,比對目標按鈕的角色、標籤、狀態與位置(容許幾像素誤差),畫面變了就回 stale 不執行,避免代理按下的是幾秒前看到、內容已經換掉的按鈕。每個動作的回應時間上限 45 秒,太慢的步驟會以 uncertain 回給代理,要它自己複查,而不是讓客戶端逾時砍掉整個任務。

Pinky 的 MCP 文件列出核可規則:60 秒未回應視為拒絕、核可 id 單次使用並綁定工作階段、放行前重讀螢幕比對Pin
docs/mcp.md 的核可規則:60 秒未回應視為拒絕、核可 id 單次使用且綁定工作階段與裝置,放行前重讀螢幕比對按鈕位置。

官方也把這套機制的界線講明白:風險按鈕靠 10 種語言的標籤辨識,不尋常的按鈕可能漏網,所以另外提供「每個動作都先問」與「唯讀模式」兩道更嚴的開關。對照目前常見的「在提示詞裡囑咐代理先問我」路線,差異就在位置:囑咐約束的是代理的行為傾向,閘道約束的是動作能不能抵達手機,螢幕上的文字再怎麼慫恿代理,也改不動規則層的判斷。同樣把危險步驟交回人手的設計,瀏覽器領域已經有人做在產品裡,例如OpenCode Browse 讓 AI 用你的瀏覽器、登入與付款交回你手上,兩邊的取捨可以對照著看。

Pinky 官方 README 的兩張安全設計卡:左卡說明風險步驟由閘道停等真人允許,右卡說明銀行錢包與密碼管理 app 預設對代理隱形Pin
官方 README 的安全設計卡:風險步驟在閘道層停等真人點選,銀行、錢包與密碼管理 app 預設畫進代理看不見的區域(GitHub README,2026-11-10 版)。

銀行 app、密碼欄與驗證碼:先畫進代理看不見的區域

核可機制之外,Pinky 預設把一整類內容劃出代理的視野。銀行、電子錢包與密碼管理 app 對代理隱形,連通知欄與鎖定畫面上的通知都遮掉;任務真的需要銀行或錢包 app 時會先問你,而且只對該次任務放行,密碼管理器則永遠不開放。密碼欄與一次性驗證碼欄位不能輸入,簡訊、郵件或通知裡出現的驗證碼會先遮成圓點再送達,官方文件給的例子是「Your code is 482913」到代理眼前變成「Your code is ••••••」,代理拿到的截圖也以灰箱蓋住同一段。

錄影與截圖的流向同樣分層。每個任務的每一步都有文字記錄、截圖與螢幕錄影,預設在本機保留 30 天;錄影裡的驗證碼與被封鎖的 app 維持原始樣貌,所以留在你的電腦上,代理要在一個任務的報告裡拿到錄影檔,每一次都要你當場允許,沒有「永遠允許」可以勾。手機的解鎖 PIN 也是同樣邏輯:在 Pinky 存一次,之後每次從電腦解鎖都要用 Touch ID、Windows Hello 或鑰匙圈密碼確認,代理全程看不到 PIN。

官方驗收清單:真人試過三台真機,Windows 的身分確認還沒有人試

README 把狀態標為 pre-alpha,並指到一份值得整篇讀的文件:docs/ACCEPTANCE.md,官方自己在裡面逐項記錄每個功能是怎麼驗的,是真機、模擬器、CI 還是「還需要真人試」。真人已驗的部分有明確數字:Mi 10 Pro 在背景顯示上讓 Claude Code 算 8 乘 9,38 秒完成、花了 0.21 美元,約 1.4 秒一次點選;iPhone 13 mini(iOS 27.0.1)上在拼音輸入法開啟的狀態下搜設定裡的 Wi-Fi,45 秒、0.25 美元;鎖定的 iPhone 經 Touch ID 從電腦解鎖後接著算 12 乘 12,76 秒、0.27 美元。端到端跑過真機的組合,官方列了三個:一支 Android 手機走 USB、一支 iOS 27 的 iPhone、一支走 helper 的 iPhone XS Max(iOS 18.7.11)。

還沒有真人試過的,清單也寫得很直白:Windows 的 Windows Hello 與 Linux 的 Secret Service 這兩種 PIN 存放方式只在 CI 跑過;小米、三星、OPPO 等品牌的鎖定畫面解鎖只用「依已知資訊寫的測試」覆蓋,Pinky 沒把握讀出數字鍵盤時會停手不輸入;iPhone 上讀 app 記錄檔只用了虛構的當機報告測過;遠端代理功能是用假手機驗的;Android 17 的背景顯示「用測試驗過,還沒用眼睛看過」。文件本身也在漂:驗收清單寫作當下註明 Intel 版尚未建置,但 release 資產從第一版就附了 amd64 安裝包,清單腳步落後發布管線,這正是 pre-alpha 的日常。

iOS 17.4 是底線,27 是分水嶺

iPhone 使用者要先對版本號,因為不同 iOS 能做到的事差很多,官方把支援矩陣完整列在 README:

iOS 版本連線方式能做什麼官方測過的機型
27 以上Xcode Device Hub 協定,手機不安裝任何東西捏合縮放以外的全部功能;輸入用貼上再還原剪貼簿iPhone 13 mini(iOS 27.0.1)
17.4 到 26,裝 helperWebDriverAgent helper,從 Xcode 裝一次(這段版本自動,27 可選)全部功能,且不分享螢幕,拒絕螢幕共享的銀行 app 照常可用;讀螢幕較慢,主畫面約 7 秒、點一下 0.5 到 0.8 秒iPhone 13 mini(27.0.1)、iPhone XS Max(18.7.11,Windows)與模擬器
17.4 到 26,不裝 helper僅開發者服務觀看畫面(每秒數格)、讀螢幕(OCR,僅 macOS)、開啟 app 與連結;不能點選、滑動、輸入同組服務僅在 iOS 27.0.1 驗過,27 以下真機未驗
17.3 以下不支援17.4 之前連線需要管理員權限,iOS 16 以前需要的開發者映像檔現在的 Xcode 已不附無

helper 的成本要算進去:它是 Appium 的 WebDriverAgent,用你自己的 Apple ID 簽章,免費帳號七天效期、付費開發者帳號一年,到期前兩天 Pinky 會提醒重裝,過期後該手機會顯示為需要設定並說明原因。另一個容易踩的坑是螢幕共享:iPhone 串流時 iOS 會告知 app 螢幕正在共享,部分銀行 app(官方點名 DBS 與招商銀行)會拒絕執行,相機也會被系統擋成黑畫面、掃碼失效。Pinky 的處理是你沒在看手機頁面時 30 秒後停止串流;裝了 helper 的話,遇到這類 app 會把任務搬去不分享螢幕的 helper,結束再回來。檔案傳輸(phone_files)則只有 Android 有。

Android 的條件:讀螢幕 70 毫秒的代價是無障礙服務

Android 這邊的底層是 adb 加內建的 scrcpy server,另外附一支 companion app,裝上手機後把讀螢幕從約 2 秒縮到約 70 毫秒,任何語言都能直接輸入而不必經過剪貼簿。Android 13 以上,任務跑在隱藏的第二顯示上,手機自己的螢幕可以關著鎖著,你的手機維持你的手機;Android 17 是例外,背景顯示會跟著螢幕一起停,所以任務期間保持甦醒但螢幕全黑;Android 10 不提供背景顯示(Android 11 之前讀不到內容),11 與 12 未驗證、預設用主畫面。小程式、遊戲、地圖這類沒進無障礙樹的文字,在 macOS 與 Windows 上用像素 OCR 補讀,被封鎖的 app 只在任務放行後讀一次,鎖定畫面永不讀,也不留圖。

companion 的無障礙服務是 Android 端主要的相容性風險。銀行 app 會偵測側載 app 的無障礙服務(惡意軟體常濫用它),官方點名馬來西亞與新加坡的銀行業分別自 2024、2023 年起拒絕在這類服務開啟時執行,微信、抖音、小紅書也看得到服務存在,讓代理去用可能違反它們的條款。Pinky 的對策是服務只在任務進行中開啟,結束或你接管後幾秒內關閉,要用的話先按接管或結束任務;台灣銀行 app 的實際反應目前沒有實測資料。隨時接管是整個設計的另一面:點一下投印畫面代理就暫停,自己碰手機也會暫停,全停的快捷鍵是 ⌥⌘.(Windows 與 Linux 為 Ctrl+Alt+.)。手機不在家,也能靠 Tailscale 通道遠端連,代價是串流降到約 1 Mbit/s。

閘道防得住代理的誤動作,防不住能跑指令的代理

官方 FAQ 裡有一條誠實到少見的自問自答:能以你身分執行指令的代理,本來就能繞過 Pinky 直連 adb 碰手機,閘道規則擋不下它。官方給的建議是把這類代理關進無法存取手機的沙箱,或者反過來把手機接在另一台電腦上、讓代理透過 HTTP 連入 Pinky。HTTP 遠端代理預設關閉,打開也只聽本機的 127.0.0.1:7465,要連外得自己改。每個新代理第一次連線也要先經你核可、只拿到你給的範圍,可以再用 app 白名單與唯讀模式收緊。威脅模型想清楚再接:閘道防的是代理的誤動作與畫面上的誘導,防不了對你電腦有完整權限的東西。

就影響來看,這次發布值得記住的點在於把「該先問人」從提示詞工程的責任搬到架構層,而且是開源、可審計的實作,別的手機代理產品可以直接抄這套閘道核可的設計。但真機證據目前只有官方自己的三例,按鈕辨識的漏網率沒有數字,第三方重現為零,評價它的穩定度還太早。

現在該不該把手機接上:三種情況

日常已經在用 Claude Code、Codex 或 Cursor,電腦是 macOS 13 以上、Windows 10 或 11(64 位元)、Ubuntu 20.04 與 Debian 11 以上的人,可以裝來試。下載點在 GitHub releases,Mac 也可以 brew install –cask diygod/tap/pinky;Windows 安裝程式還沒簽章,SmartScreen 會跳警告,要走「更多資訊、仍要執行」。動手前先讀 ACCEPTANCE.md 對照哪些功能驗過,從非金融的小任務開始,沒有測試機可以用 –fake 的兩台假手機,或從 Add phone 的 Virtual phone 起一台模擬器。

iPhone 還在 17.3 以下,或者需要它當日常唯一手機代理方案的人,這波先不用動,等真人驗證補齊、發布節奏放緩再說。介意遙測的人要知道它預設開著:匿名使用計數器與當機報告約每日回傳一次(隨機安裝 id),設 DO_NOT_TRACK=1 或在設定裡可以關;官方文件列明回傳內容永不包含畫面、輸入文字、app 名稱、手機識別碼、PIN 與檔名。

還懸著的事與回查時點

幾件事暫時沒有答案。10 語言按鈕辨識的漏網機率,官方只給了「可能漏網」的提醒而沒有數字;台灣銀行 app 對無障礙服務與 USB 偵錯的實際反應未有實測;所有端到端證據都來自官方,第三方重現為零。版本節奏本身就是變數:版號用上海時區的日期加當日序號,四天 92 個版本,本文的細節對應 11 月 10 日的 v2026.1111.3 與當日文件,星數(約 1,655)與 fork 數(177)也是 11 月 10 日晚間的數字。建議一週後,或官方宣布脫離 pre-alpha 時回查一次再決定要不要納入日常。

授權與專案狀態

以 Apache-2.0 開源,程式語言是 Go,視窗由 egoist 的 mygo 框架直接用 GPU 繪製,沒有 Electron 也沒有 webview;安裝包 16 到 22 MB(v2026.1111.3 的 arm64 為 17.3 MB、amd64 為 20.1 MB),官方規格標示待機約 70 MB 記憶體、Mac 上 0% CPU。app 會自己檢查更新,先驗 checksum,Mac 版另外驗開發者簽章與 Apple 公證,才換版,新版起不來就回滾;Mac 的 dmg 已用開發者 ID 簽章並通過公證。作者 DIYgod 是 RSSHub 的作者,該專案超過 4.6 萬顆星,Pinky 是他四天前才公開的新作品。

參考來源:Pinky 儲存庫與 README、MCP 工具與核可規則文件、官方驗收清單 ACCEPTANCE.md、遙測內容清單 TELEMETRY.md、DIYgod 的發布貼文、Releases 版本紀錄。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 2408

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...