AI 幫我用 LINE 可以,霸佔我的電腦不行
之前一直在用一個別人開源的小工具,叫 line-desktop-mcp,可以讓 Claude、n8n 這類 AI 直接讀寫我自己的 LINE。它不是官方那種要申請開發者帳號、拿 Channel Access Token、而且只能操作 Bot 帳號的版本,而是直接驅動我電腦上那個已經登入好的 LINE Desktop。它能用,在 GitHub 上也是開源的。
但它有一個我一直受不了的毛病:每次它一動作,就把我整台電腦搶走。所以這次的 session,我乾脆用 cua 自己重做了一版——目標只有一個,讓 AI 在背景安靜地操作 LINE,我這邊照樣打字、照樣開會,全程不被打斷。
舊版是在假裝有一個人坐在我電腦前
舊版的做法叫 GUI scripting。說白一點,它就是在「模擬一個真人在操作」:先用 AppleScript 把 LINE 叫到最前面(activate),再把滑鼠移過去點、用 keystroke 把字打進當下有 focus 的視窗。
問題就出在這。它每次收發訊息,都得先把 LINE 搶到前景、奪走鍵盤焦點。我只要同時在做別的事——比如正在另一個視窗打字——它一發動,LINE 就啪地跳到我面前,我打到一半的字還可能直接跑進 LINE 裡。等於它工作的那幾秒,我只能把手收回來,看著電腦自己動。一個說要幫我省事的工具,卻要求我全程不准碰電腦,這很荒謬。
新版改走 Accessibility,不再搶滑鼠
新版改用 cua-driver(c/ua 那套 computer-use 驅動的核心)。關鍵差別是:它不模擬滑鼠鍵盤,而是走 macOS 的 Accessibility(AX)API——也就是螢幕報讀軟體在用的那層語意介面。
在 AX 這層,每個按鈕、每個輸入框都是一個有名字、有編號的元件。所以新版不是「把游標移到某個座標再點下去」,而是直接跟系統說「按下搜尋結果那一格」「把這段字寫進輸入框那個元件」。結果就是:游標不動、焦點不搶,連 LINE 縮在背景、被我丟到另一個桌面(Space)都照樣操作。我這邊完全無感,它在底下已經把訊息送出去了。
座標那套還有個老問題:視窗一移動、一改大小、換個螢幕,座標就全錯。走 AX 鎖的是元件本身,穩定得多。
cua 不是魔法,誠實講一下卡在哪
重做的過程不是一路順,最卡的是「讀訊息」。LINE 的 AX tree 裡,聊天記錄的文字根本沒被攤出來,我直接抓不到。最後是退一步,用一個一樣不搶 focus 的方式繞過去:全選、複製,再去讀剪貼簿,讀完把你原本的剪貼簿內容還回去。
所以 AX 不是萬靈丹,有些 app 就是沒把資料放在那層,你還是得自己想 workaround。但「不搶走使用者的電腦」這條底線,我全程守住了。
真正想分享的,是這條分界
我願意花時間,把一個別人已經做出來、而且能用的東西自己重寫一遍,是因為背後有一條我越來越在意的線:一個 agent,到底是「接管」你的電腦,還是「跟你共存」。
示範影片裡那種游標自己亂飛、視窗自己亂跳的 demo 很炫,但你真要它每天幫你做事,第一個受不了的就是——那我自己還能不能用這台電腦?當我們把越來越多事情交給 AI 跑,「它在忙的時候,我能不能照常工作」就不再是加分題,而是它能不能進到日常的及格線。
cliclick 那套是拿來表演的,AX 這套才是拿來天天用的。這就是我寧可自己重寫一版的原因。
最近開始做免費的一對一諮詢,幫你把 AI 接進自己的工作流——有需要的話可以約:https://www.dawsonwang.com/
cua GitHub:https://github.com/trycua/cua