line-cua-mcp
讓 AI 讀寫本機 LINE,全程不搶你的滑鼠和鍵盤
- 起點
- 案子的需求跟一改再改的細節全散在 LINE 對話裡,做到一半還得回頭翻。既有的開源工具能用,但每次一動就把 LINE 搶到前景、奪走鍵盤焦點,我打到一半的字還會跑進 LINE。
- 產出
- 改走 macOS Accessibility API:不模擬滑鼠鍵盤,直接跟系統說「按下這一格」。讀訊息直接讀本機那份加密資料庫,拿到的是完整歷史而不是畫面上那幾則;送訊息預設只留草稿、預設只允許 1:1。
作品集 · Day 1–297 公開建造記錄
這 297 天裡我沒有為了做作品集而做東西——每一個都是自己卡住了、受不了了,才動手。 下面 19 個是真的做出來、而且到現在還在用的,其中 6 個附源碼。 每張卡片都連得回當天那篇,裡面有完整的做法跟踩到的雷。
19個
做出來、還在用的工具
6個
附開源碼
47篇
寫得到做法的文章
297天
每天公開一篇 AI 實作
代表作 · 4
讓 AI 讀寫本機 LINE,全程不搶你的滑鼠和鍵盤
195 題考古題,每題都有解析的證照練習網站
讓 M 系列 Mac 讀得到 EZ100PU 自然人憑證讀卡機
Claude Code 和 Codex 共用同一套 skill,還能按專案開關
公開記錄
這些工具的做法、踩到的雷和結果都寫成文章發在社群上。下面是每一篇發出去之後,真的有人在看的紀錄。
LinkedIn 另外曝光 9.3K 次
其他作品 · 15
自動維護 Claude Code 的權限白名單
針對常見框架和 tech stack 先把安全的指令 mapping 進 settings.json 的白名單,只有超出預期的指令才需要你親自決定放不放行。
每天早上自動掃 200 篇貼文,篩完摘要推到 Telegram
Cronjob 定時收集 → 本地 LLM 篩出有興趣的主題 → 整理摘要 → 推到 Telegram。用看一篇文章的時間掃完 200 篇。整條線是拿 SDD + BDD + TDD 一路寫下來的。
六個 AI 專案住進一座像素小鎮,一眼看完誰還在忙
每個專案一間房間、每隻 AI 一個坐在桌前的角色,頭上掛著現在的狀態。WebSocket 保持即時連線,誰從閒置變成 working,畫面馬上動。把要記的東西從腦子搬到畫面上。
你正在看的這個網站——文章發完就自動跟著上線
Astro 6 + Tailwind v4 部署在 Vercel,網域走 Cloudflare Registrar。100Days 內容以 git submodule 掛進來,GitHub Actions 定時 bump submodule pointer,Vercel 接手自動 build——100Days 那邊一行都不用改。
關鍵字 + 語意雙模式,零月費、不用資料庫
搜「AI 焦慮」切到語意模式,連在講「擔心被取代」、「跟 AI 共存」的篇章都撈得出來——就算文章裡根本沒有「焦慮」兩個字。預設停在關鍵字(快、準),找不到再切語意。
用瀏覽器遙控家裡那台 Mac 上的 Claude Code
手機或筆電開個網頁,就能寫文、跑完整條 pipeline、看三個平台的草稿、按下發佈。跑在自己的 MBP 上、只在 Tailscale 私網裡通,用的是 Claude Code 訂閱額度而不是另外付一筆 API 錢。
看到活動截個圖,Raycast 一鍵丟進 Google 日曆
剪貼簿是圖就讀圖、是網址就抓網頁;也能直接框選螢幕。AI 把名稱、時間、地點抽成結構化欄位,順手比對有沒有撞期——然後停在這裡等你確認。從一開始就定死:AI 可以抽、可以建議,但絕不自己寫進行事曆。
三層機制,讓 Claude 每次回話前先讀過我的筆記
UserPromptSubmit hook 在每次送出前用 fd + rg 撈出最相關的筆記注入背景;便宜的先跑、貴的用到才呼叫;寫入端有守門人,不讓 AI 亂改第二大腦。Day 180 把 151 則筆記整包搬到 Google 的 OKF 開放規格。
一鍵派出六隻 sub-agent 平行掃描專案資安
一個 custom command,呼叫時同時派出 6 個獨立 sub-agent,各自負責不同的掃描面向,全部平行跑完再彙整成一份報告。
讓 Claude Code 用你已經登入的瀏覽器叫 Gemini 生圖
建一個專用的 debug profile 走 CDP 連上去(跟你平常的 Chrome 完全獨立,不會把 cookies 複製到暫存目錄)。後來改成 headless 全背景執行,不彈任何視窗。Day 76 再補上正體中文標題排版——AI 生圖寫中文幾乎都會缺筆畫,所以拆成兩步做。
會自我進化的 App 廣告自動點擊系統
iPhone 定時截圖傳給 Mac,Mac 判斷完回指令。第一層先比對已知的「X」按鈕圖,命中就秒點;沒見過的才呼叫 Claude 看圖。每次 Claude 破解一個新廣告,那個按鈕就自動存回第一層的樣本庫——跑越久越少需要呼叫 Claude。
幫模型路由加上 Strategy Pool,額度用完自動換手
看到社群有個加 strategy pool 的 PR,但有 conflict、不見得會被 merge,就 fork 一版改在自己的 branch 上。設好 candidates 順序後,第一個模型額度用完就自動接到下一個。
開源前那一串雜事,一句話跑完
把「只有我看得懂的私人專案」帶到「可以安全公開的 repo」,包含最容易漏掉也最危險的那一步,還有工程師最常略過的那關:你到底有沒有權利開源。
抓出 AI 中文裡「聽起來合理、但沒人這樣用」的詞
不靠清單,改用機制判斷:母語者是從腦裡「取」一個講定的固定講法,AI 是現場「組」一個聽起來合理的搭配。用這條線去掃,只回報候選、不自動改。
書桌上的 MBP 當本地模型主機,Air 只當前端
Ollama 沒有 API key、沒有任何驗證,「誰連得到那個 port」等於「誰能用你的 LLM」。所以把它綁在 Tailscale 的介面 IP 上,網路層直接當驗證層——咖啡店的 Wi-Fi 掃不出這個 port。MagicDNS 解名字就連得到,Raycast 接上去當前端。