AI 幫我用 LINE 可以,霸佔我的電腦不行






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