開源一個 Skill,讓 AI 接管你屏幕邊那張便籤紙
整理版優先睇
AI Desk Card:讓 AI 動態控制墨水屏,取代你屏幕邊嘅便籤紙
作者 op7418 之前做咗 M5 Paper Buddy,將墨水屏駁到 Claude Code 監控 AI,但用落發現成日放喺枱面唔睇,真正需要監控嘅時候人已經喺電腦前面。佢觀察到好多人會喺屏幕邊框貼便籤紙,因為需要「抬頭就見到」嘅提醒,但便籤紙係靜態,唔會隨日程變化更新。
於是佢開發咗 AI Desk Card——一塊 4.7 寸磁性墨水屏,背後係一個裝入 Claude Code 或 Codex 嘅 Skill,由 AI 決定推咩內容、幾時推、息屏時顯示咩。透過聯接飛書日曆、GitHub CLI 等資訊源,屏幕會自動顯示日程、待辦、PR 狀態、天氣、休息提醒,仲有息屏名片模式。整個安裝由 AI 引導,一句話就搞掂。
硬件本身只係 ESP32 + 墨水屏,能力來源唔係內置功能,而係 AI Agent 攞到嘅資訊。呢個思路將硬件做得好薄好專用,未來可以適配更多開發板甚至 Kindle。作者認為,真正聰明嘅係桌面 AI,硬件只係 AI 觸達物理世界嘅出口。
- AI Desk Card 用 AI Agent 動態決定墨水屏顯示內容,取代傳統靜態便籤紙。
- 日程同待辦會自動更新,仲可以反向同步完成狀態,便籤紙做唔到。
- 息屏時自動切換電子名片,利用墨水屏斷電保留特性,唔使電源都 keep 住畫面。
- GitHub 動態自動推送,AI 會根據你當前任務調整優先級,唔會打斷專注。
- 安裝全由 AI 引導,一句話設定,唔需要 App 或複雜配置,所有設置透過對話完成。
AI Desk Card GitHub Repo
開源項目,包含 Skill 同硬件固件,同埋使用說明。
從 M5 Paper Buddy 到 AI Desk Card:真正嘅需求喺屏幕邊
作者上個月整咗 M5 Paper Buddy,將墨水屏接到 Claude Code 監控 AI,物理按鍵審批好有儀式感,但用落發現佢解決嘅係邊緣問題——AI 跑得穩時唔使監控,要審批時人通常已經喺電腦前。
佢注意到好多人會喺屏幕邊框貼便籤紙,寫低今日要做咩、幾點開會。便籤紙嘅存在係因為人需要「抬頭就能看見</highlight_ inline>」嘅提醒,但便籤紙記嘅嘢好有限,而且寫完就靜止,日程變咗佢都唔會變。
而家手邊有 AI,有 Memory,有 Agent,可以讀日曆、睇 GitHub、同你對話。如果由 AI 決定屏幕邊框應該貼咩、幾時撕走、幾時換新,就係另一個層次嘅嘢——呢個就係 AI Desk Card 想做到嘅嘢。
四個案例:日程、名片、GitHub、休息提醒
第一個案例係日程同待辦自己會更新。早上坐到電腦前,屏上已經係當日完整安排,數據嚟自飛書日曆。同朋友約咖啡,同 AI 講一聲,AI 一邊將日程寫入飛書日曆,一邊刷新屏幕。做完任務同 AI 講「搞掂」,對應嗰行就會被劃掉——反向同步,便籤紙做唔到。
第二個係Quiet Hours 模式:夜晚 11 點或長按睡眠按鈕,屏幕自動切換成電子名片,顯示頭像、介紹、二維碼,然後進入深度休眠。墨水屏斷電後畫面保留,可以拆落嚟帶出街,俾新朋友掃碼加好友,成個過程唔使開機、唔使打開 App。
第三個係 GitHub 動態唔會錯過。作者維護 CodePilot 呢類開源項目,PR、Issue、CI 狀態會自動推到底部槽位。AI 知道你專注緊咩,例如寫緊 AIGC Weekly 時會自動降級 PR 隊列,只有 critical 先推上嚟。屏幕上顯示咩係一個調度問題,唔係配置問題。
第四個係低優先級但有用嘅資訊,例如 break-reminder 同天氣。墨水屏唔發光、唔彈窗,但抬頭見到「該起來走走了」自然會停一停。天氣 widget 靜靜顯示「下午有雨」,落樓前就會拎傘。呢啲資訊過去要靠自己記得去查,而家佢哋喺視野邊緣等你掃到。
安裝流程:AI 全程帶你走
成個安裝流程無 App、無藍牙配對、無掃碼。你只要同 AI 講:「幫我將 ai-desk-card 裝上,條 Link 係 https://github.com/op7418/ai-desk-card」。跟住 AI 會:
- 1 檢測你有無 PlatformIO,無就自動裝;
- 2 檢測 USB 有無插好;
- 3 自動編譯固件、燒錄到 M5Paper,大約 1 分鐘;
- 4 問你 Wi-Fi 密碼,寫入設備;
- 5 問你想睇咩卡片、幾耐刷一次;
- 6 推送第一個 widget。
成個過程你只需要答 Wi-Fi 密碼同「想睇咩」兩個問題。之後設定定時任務都係一句話:「令卡片每 30 分鐘刷新天氣同未讀郵件,工作日 8 點到 22 點。」AI 會自己寫 cron、註冊 loop、做調度。AI 會讀取 Memory 嚟決定推咩內容,例如早上 9 點更新時睇你最近活躍嘅項目安排槽位。
設計理念:硬件好薄,AI 做曬嘢
AI Desk Card 同傳統 IoT 設備最大唔同:組件預置,AI 只填數據。傳統智能硬件將 UI 寫死喺固件,要加功能就要出新固件。呢度反過來——16 種 widget 模板預置喺服務端,AI Agent 只負責塞 JSON 數據。
{
"slot": "bottom",
"type": "pr-queue",
"data": {
"items": [
{"repo": "codepilot", "title": "Fix scroll jitter", "status": "review"},
...
]
}
}
服務端用 Python + Pillow 將 JSON 渲染成 540×280 像素圖,推到墨水屏。呢個思路嚟自 CodePilot 嘅生成式 UI,但墨水屏侷限較多(刷新慢、字體大),所以改為 UI 提前準備好,AI 只決定填咩、放邊個槽位、幾時換。
作者計劃進一步適配 M5Paper S3、Inkplate、Waveshare,甚至寫一個老 Kindle 適配層,將閒置閲讀器變成桌面副屏。仲會探索彩色墨水屏同更多 widget 類型。
上個月我整咗個 M5 Paper Buddy,將一塊墨水屏駁落 Claude Code 度,監控住 AI 做緊乜、需要審批啲乜。
嗰時覺得好興奮,實體掣審批操作嗰種儀式感好正。
但用咗幾星期之後我發現,佢擺喺枱面嘅時間,遠多過我睇佢嘅時間。
AI 行得順嘅時候根本唔使監控,需要審批嘅時候我多數都喺電腦前面。佢解決嘅係一個邊緣問題。

真正嘅場景收埋喺屏幕邊框上
後來我留意到一個好普遍嘅現象:好多人會喺屏幕邊框上貼便條紙,甚至有好多呢類便條紙喺度賣。
寫住今日要做啲乜、幾點開會、某個項目嘅下一步動作。
便條紙嘅存在唔係因為佢好用,而係因為人需要「抬頭就見到」嘅提醒,唔想為咗睇一眼日曆就切視窗、解鎖手機。

但便條紙記到嘅嘢好有限,寫完就靜止咗。
日程變咗,便條紙唔會變。任務做完,便條紙仲喺度。佢係一個比時間凍結咗嘅物件。
而家,我哋手邊有 AI。佢有 Memory,有 Agent,可以睇我嘅日曆、睇我嘅 GitHub、同我對話。
如果由 AI 決定屏幕邊框應該貼啲乜、幾時撕走、幾時換新,咁就係另一樣嘢喇。
呢個就係 AI Desk Card Skill 想做嘅嘢。
外形上係一塊 4.7 吋嘅墨水屏,有磁吸(類似 MagSafe),可以直接黐喺顯示器旁邊。
背後係一個 Skill —— 裝入 Claude Code 或者 Codex 呢類 AI Agent 度,AI 接管曬所有嘢:
決定推啲乜、幾時推、熄屏嗰陣顯示啲乜。
GitHub:https://github.com/op7418/ai-desk-card

下面我講清楚佢實際點樣用、可以解決啲乜問題。
案例一:日程同待辦自己會更新
我將 top-left 槽位設成日曆,middle 槽位設成 todo。
朝早坐低喺電腦前,屏上已經係嗰日嘅完整安排:上晝嘅會、下晝健身、夜晚要交嘅稿。
呢啲數據嚟自飛書日曆,AI Agent 透過飛書 CLI 直接讀取。

下晝同一個 friend 約咗星期四嘅咖啡。
我同 AI 講「星期四下晝加一個咖啡,3 點」,AI 一邊將日程寫入飛書日曆,一邊將屏上嘅卡片 refresh 咗一下。
新嘅日程出現喺 todo 槽位度。
更爽係反向同步。我做完 AIGC Weekly 嘅初稿,同 AI 講「週刊寫完喇」,屏上對應嗰行就被划走咗。
便條紙做唔到呢件事。便條紙只能記錄某個瞬間嘅快照,而日程嘅本質係一個不斷變化嘅狀態流。
當顯示設備同你嘅 Memory 聯通之後,佢會直接展示你同你嘅上下文當下嘅狀態。
案例二:熄屏嘅時候,佢係你嘅名片
呢個係我做完工之後最鍾意嘅一個功能。
墨水屏有個物理特性:斷電之後畫面會保留。
我專登為呢個特性加咗一個 Quiet Hours 模式 —— 去到夜晚 11 點,或者你長撳「睡眠」掣,屏幕會自動轉到一張電子名片,然後進入深度休眠。
名片上係你嘅頭像、介紹、QR Code。成塊屏黑白分明,墨水屏特有嘅紙質感。

呢塊屏由嗰刻開始就完全唔耗電,但畫面一直喺度。
佢有磁吸,由顯示器隔籬拆落嚟擺入袋,重量好輕。
下次同新朋友食飯,由袋攞出嚟遞過去:黑白名片 + QR Code,加完 friend 放返入袋。
成個過程冇插電、冇開機、冇打開 App 揾 QR Code 嘅尷尬。
而朝早你坐喺枱前,佢又會被 AI 喚醒,自動轉返工作模式 —— 日程、todo、PR 隊列返曬嚟。
墨水屏嘅限制(唔發光、更新慢、斷電保留)喺大多數場景下都係缺點,但當你唔硬撼呢啲限制,反而順住佢嚟設計場景,你會發現佢有啲屏幕做唔到嘅嘢。
案例三:GitHub 嘅動態我唔再 miss 喇
我維護 CodePilot 呢類開源項目,最大嘅負擔係睇唔到 — 唔打開 GitHub 就唔知有冇新 PR、新 Issue。
但每隔十分鐘打開一次 GitHub 係好差嘅工作節奏,專注力會被切碎。
而家 AI Desk Card 嘅 bottom 槽位長駐一個 pr-queue widget。
CodePilot 倉庫有新 PR、有人喺 Issue 度 @ 我、CI 死咗,AI 都會將佢推上去。
數字細唔會打擾,但抬頭睇一眼就知有冇嘢要處理。等我手頭呢段寫完,先一次過睇。

再進一步嘅玩法係,AI 知道我喺度做緊乜。
我而家專心寫 AIGC Weekly 嘅時候,佢會自動將 PR 隊列降級,只有出現 critical 標籤嘅 Issue 先推上嚟。
等我轉到 CodePilot 嘅開發,PR 隊列又會返返主位。
屏幕上顯示啲乜,本質上係一個調度問題,唔係一個配置問題。
傳統 dashboard 要你配 widget,配完一個星期內仲得,之後就變成一幅冇人睇嘅牆。
AI 主動決策係因為佢知道你喺度做緊乜、佢可以換。
案例四:天氣、休息、所有嗰啲「應該有但你想唔起去配」嘅嘢
最令我意外嘅一類 widget 係 break-reminder。
我成日一坐就三四個鐘頭唔鬱。
呢個 widget 會喺一段時間冇按掣活動之後,喺某個槽位上輕輕推一句「應該起身行下喇」。
墨水屏唔發光,唔會彈視窗、唔會響、唔會震,但你抬頭見到一行字,自然會停一停。
佢同番茄鍾最大嘅分別係:冇強制性。佢只係存在,唔會打擾你。
如果你喺行 code、寫文嘅狀態,嗰行字會被 you 忽略;
如果你已經攰、狀態散嘅時候,見到嗰行字會真係去斟杯水。

天氣都係一樣。
我唔會專登去查今日會唔會落雨,但頂部 widget 靜靜顯示「下晝有雨」幾個字之後,落樓前我會拎把遮。
呢種「低優先級但有用」嘅資訊,以前只能靠你自己記得去查,而家佢哋喺視野邊緣,需要嘅時候俾你瞄到。
佢係點樣裝上去:AI 全程引導
成個安裝流程冇 App,冇藍牙配對頁面,冇手機掃碼。你同 AI 講:
「幫我裝 ai-desk-card:https://github.com/op7418/ai-desk-card」
跟住發生嘅事:
AI 檢測你電腦上有冇 PlatformIO,冇就自動裝
檢測你有冇插 USB,冇就提示你插
自動編譯 firmware、燒錄到 M5Paper,大概 1 分鐘
問你 Wi-Fi 密碼,寫入設備
問你「想睇邊啲卡片、幾耐刷新一次」
推第一個 widget 上去

成個過程你只需答 Wi-Fi 密碼同「想睇啲乜」兩個問題。
之後設定定時任務都係一句話:「叫卡片每 30 分鐘刷新天氣同未讀郵件,工作日 8 點到 22 點。」
AI 自己去寫 cron、自己去註冊 loop、自己去調度。
定時任務執行嘅時候,AI 會讀取你嘅 Memory 嚟決定推咩內容。
例如我叫佢每日早上 9 點更新一次,佢會去睇我 Memory 裏最近活躍嘅項目(CodePilot、AIGC Weekly 等),按重要度安排槽位。
呢度冇「App 工程師做嘅設定頁面」,因為 AI 就係設定頁面。
以前你要㩒十嚇先搞掂嘅設定,而家一句話就得。
一個同傳統硬件相反嘅設計:組件預置,AI 只填數據
講到呢度要分開講下實現思路,呢個係 AI Desk Card 同傳統 IoT 設備最大嘅分別。
通常做一個智能硬件,組件係寫死喺 firmware 裏面:
時鐘樣式、天氣圖標、字體大細,都係 firmware 工程師出廠前定好嘅。要加新功能,就要出新 firmware / OTA / 重新認證一次。呢個就係點解 99% 嘅智能硬件買返嚟三個月同新拆嗰陣一樣樣。
AI Desk Card 行嘅係相反方向:16 種 widget 模板預置喺服務端,AI Agent 只負責塞 JSON 數據入去。
舉個例,pr-queue 呢個 widget 嘅視覺佈局(一個標題區、4 行 PR 資訊、每行帶狀態圖標)係渲染端寫好嘅。
AI 唔使畫圖、唔使排版、唔使揀字體大細。佢只要向 daemon 發一個類似咁嘅請求:
服務端用 Python + Pillow 將呢個 JSON 渲染成一張 540×280 嘅像素圖,推到墨水屏上。

呢個思路其實嚟自我哋喺 CodePilot 桌面端做嘅生成式 UI。
嗰邊行嘅係相反嘅極端:模型實時生成 HTML/SVG,渲染成可互動嘅 widget。
兩個方向睇起嚟完全相反,但精神係一致嘅 ——
UI 由 AI 決策,唔係由用戶配置。
點解墨水屏要反轉嚟做?因為限制唔同。
瀏覽器可以執行任意代碼、有強大嘅字體引擎、可以加載 CDN,所以由 AI 生成 UI 本身冇問題。
墨水屏渲染受限制,全屏 GC16 刷新要 2 秒、中文字體一套要幾 MB、像素精度唔可以錯,AI 直接生成 UI 太重。
所以反過嚟:UI 預先準備好,AI 只決定填咩、放邊個槽位、幾時換。
呢個組件庫仲喺度不斷擴充。硬件本身基本唔變,能力卻持續生長。
寫喺最後:AI Agent 將硬件由內置功能裏解放出嚟
講啲大啲嘅嘢。
傳統硬件公司嘅護城河係「我設備入面可以做咩」。
CPU、感應器、操作系統、內置 App,決定咗佢嘅能力上限。一旦造好出廠,能力就基本封頂。
AI Desk Card 呢種思路下,硬件嘅能力來源被換咗。
佢本身只係一塊墨水屏 + ESP32,做到啲乜取決於 AI Agent 可以拎到咩資訊。
日曆嚟自飛書 CLI、PR 嚟自 GitHub CLI、天氣嚟自任何 API、Memory 嚟自你嘅 Obsidian 倉庫 —— 呢啲資訊源全部喺 Agent 嗰邊,唔喺硬件入面。
當 AI Agent 成為資訊中樞之後,硬件可以做得好薄、好專門。
佢唔需要內置一百個功能,只需要做好一件事 —— 喺 AI 決定推送嘅時候,將內容顯示出嚟。

呢件事嘅成本都降落到好低水平。M5Paper V1.1 大概 600 蚊,未來類似嘅開源開發板會更平,三四百蚊就買到。墨水屏、彩色墨水屏、TFT 細屏、甚至 Kindle、墨水屏閲讀器,理論上都可以適配同一套 Skill。
之後仲想做幾樣嘢:
適配 M5Paper S3 同 Inkplate / Waveshare 等其他墨水屏開發板
嘗試為舊 Kindle 寫一個適配層,將閒置嘅閲讀器變做桌面副屏
同 Home Assistant 聯動,將智能家居狀態推到桌面卡上 —— 客廳温度、門鎖狀態、掃地機械人位置
探索彩色墨水屏嘅可能性,開放更多 widget 類型
每多支援一種硬件,就多一種 AI 觸達物理世界嘅方式。呢啲設備唔需要變聰明,佢哋只係 AI Agent 嘅物理出口。
真正喺度變聰明嘅係你枱上嗰個 AI,
而佢聰明嘅速度,比硬件迭代快得多。
GitHub:https://github.com/op7418/ai-desk-card
如果你覺得呢次嘅內容對你有幫助,可以幫我㩒個讚或者轉發俾有需要嘅朋友。
✦
上個月我做了 M5 Paper Buddy,把一塊墨水屏接到 Claude Code 上,監控 AI 在幹什麼、需要審批什麼。
當時挺興奮的,物理按鍵審批操作那個儀式感很好。
但用了幾周之後我發現,它放在桌上的時間,遠比我看它的時間長。
AI 跑得穩的時候根本不需要監控,需要審批的時候我大概率人就在電腦前。它解決的是一個邊緣問題。

真正的場景藏在屏幕邊框上
後來我注意到一個很普遍的現象:很多人會在屏幕邊框上貼便籤紙,甚至有很多這種便籤紙在賣。
寫着今天要做什麼、幾點開會、某個項目的下一步動作。
便籤紙的存在不是因為它好用,而是因為人需要"抬頭就能看見"的提醒,不想為了看一眼日曆切窗口、解鎖手機。

但便籤能記的東西非常有限,寫完就靜止了。
日程變了,便籤不會變。任務做完,便籤還在那。它是一個被時間凍住的物件。
而現在,我們手邊有了 AI。它有 Memory,有 Agent,能讀我的日曆、看我的 GitHub、跟我對話。
如果讓 AI 來決定屏幕邊框上應該貼什麼、什麼時候撕掉、什麼時候換新的,那就是另一個東西了。
這就是 AI Desk Card Skill 想做的事。
形態上是一塊 4.7 寸的墨水屏,帶磁吸(類似 MagSafe),可以直接貼在顯示器旁邊。
背後是一個 Skill —— 裝到 Claude Code 或者 Codex 這類 AI Agent 裏,AI 接管所有事:
決定推什麼、什麼時候推、息屏時顯示什麼。
Github:https://github.com/op7418/ai-desk-card

下面我把它實際怎麼用、能解決什麼問題講清楚。
案例一:日程和待辦自己會更新
我把 top-left 槽位設成日曆,middle 槽位設成 todo。
早上坐到電腦前,屏上已經是當天的完整安排:上午的會、下午健身、晚上要交的稿子。
這些數據來自飛書日曆,AI Agent 通過飛書 CLI 直接讀取。

下午跟一個朋友約了週四的咖啡。
我跟 AI 說"週四下午加一個咖啡,3 點",AI 一邊把日程寫進飛書日曆,一邊把屏上的卡片刷新了一下。
新的日程出現在 todo 槽位裏。
更舒服的是反向同步。我做完 AIGC Weekly 的初稿,跟 AI 說"週刊寫完了",屏上對應的那一行就被劃掉了。
便籤紙做不到這件事。便籤紙只能記錄某個瞬間的快照,而日程的本質是一個不斷變化的狀態流。
當顯示設備和你的 Memory 聯通之後他會直接展示你和你的上下文當下的狀態。
案例二:息屏的時候,它是你的名片
這是我做完之後最喜歡的一個功能。
墨水屏有個物理特性:斷電之後畫面會保留。
我專門為這個特性加了一個 Quiet Hours 模式 —— 到了晚上 11 點,或者你長按"睡眠"按鈕,屏幕會自動切換到一張電子名片,然後進入深度休眠。
名片上是你的頭像、介紹、二維碼。整張屏黑白分明,墨水屏特有的紙質感。

這塊屏從那一刻起就完全不耗電了,但畫面一直在。
它帶磁吸,從顯示器邊上摘下來揣進包裏,重量很輕。
下次跟新朋友吃飯,從包裏掏出來遞過去:黑白名片 + 二維碼,加完好友放回口袋。
整個過程沒有插電、沒有開機、沒有打開 App 翻二維碼的尷尬。
而早上你坐到桌前,它又會被 AI 喚醒,自動切回工作模式 —— 日程、todo、PR 隊列回來了。
墨水屏的限制(不發光、刷新慢、斷電保留)在大多數場景下都是缺點,但當你不去硬剛這些限制,反而順着它去設計場景,會發現它有些屏幕做不到的事。
案例三:GitHub 的動態我不再錯過了
我維護 CodePilot 這種開源項目,最大的負擔是看不見 — 不打開 GitHub 就不知道有沒有新 PR、新 Issue。
但每隔十分鐘打開一次 GitHub 是非常糟糕的工作節奏,注意力會被切碎。
現在 AI Desk Card 的 bottom 槽位常駐一個 pr-queue widget。
CodePilot 倉庫有新 PR、有人在 Issue 裏 at 我、CI 掛了,AI 都會把它推上去。
數字小不打擾,但抬頭掃一眼就知道有沒有要處理的事。等我手頭這段寫完,再統一去看。

更進一步的玩法是,AI 知道我在做什麼。
我現在專注寫 AIGC Weekly 的時候,它會自動把 PR 隊列降級,只在出現 critical 標籤的 Issue 時才推上來。
等我切到 CodePilot 的開發,PR 隊列又會回到主位。
屏幕上顯示什麼,本質上是一個調度問題,不是一個配置問題。
傳統 dashboard 讓你配 widget,配完一週內還行,之後就變成一面沒人看的牆。
AI 主動決策是因為它知道你正在做什麼、它能換。
案例四:天氣、休息、所有那些"該有但你想不起來配"的東西
最讓我自己意外的一類 widget 是 break-reminder。
我經常一坐就是三四個小時不動。
這個 widget 會在一段時間沒有按鍵活動之後,在某個槽位上輕輕推一句"該起來走走了"。
墨水屏不發光,不會彈窗、不會響、不會震動,但你抬頭看到一行字,自然會停一下。
它和番茄鍾最大的區別是:沒有強制性。它只是存在,不打擾你。
如果你正在跑代碼、寫文章的狀態裏,那一行字會被你忽略;
如果你已經累了、狀態浮的時候,看到那行字會真的去倒杯水。

天氣也是一樣。
我不會專門去查今天會不會下雨,但頂部 widget 靜靜顯示"下午有雨"幾個字之後,下樓前我會把雨傘拿上。
這種"低優先級但有用"的信息,過去只能靠你自己記得去查,現在它們待在視野邊緣,需要的時候被你掃到。
它是怎麼裝上的:AI 全程引導
整個安裝流程沒有 App,沒有藍牙配對頁面,沒有手機掃碼。你跟 AI 說:
"幫我把 ai-desk-card 裝上:https://github.com/op7418/ai-desk-card"
接下來發生的事:
AI 檢測你電腦上有沒有 PlatformIO,沒裝就自動裝
檢測你有沒有插 USB,沒插就提示你插
自動編譯固件、燒錄到 M5Paper,1 分鐘左右
問你 Wi-Fi 密碼,寫進設備
問你"想看哪些卡片、多久刷一次"
推第一個 widget 上去

整個過程你只回答 Wi-Fi 密碼和"想看什麼"兩個問題。
之後設置定時任務也是一句話:"讓卡片每 30 分鐘刷新天氣和未讀郵件,工作日 8 點到 22 點。"
AI 自己去寫 cron、自己去註冊 loop、自己去調度。
定時任務跑的時候,AI 會讀取你的 Memory 來決定推什麼內容。
比如我讓它每天早上 9 點更新一次,它會去看我 Memory 裏最近活躍的項目(CodePilot、AIGC Weekly等),按重要度安排槽位。
這裏沒有"App 工程師做的設置頁面",因為 AI 就是設置頁面。
你過去要點十下才能調好的設置,現在一句話就行。
一個跟傳統硬件相反的設計:組件預置,AI 只填數據
講到這裏需要單獨說一下實現思路,這是 AI Desk Card 跟傳統 IoT 設備最大的不同。
通常做一個智能硬件,組件是寫死在固件裏的:
時鐘樣式、天氣圖標、字體大小,都是固件工程師在出廠前定好的。要加新功能,要發新固件 / OTA / 重新認證一遍。這是為什麼 99% 的智能硬件買回來三個月就跟剛拆封時長得一樣。
AI Desk Card 走的是反方向:16 種 widget 模板預置在服務端,AI Agent 只負責往裏面塞 JSON 數據。
舉個例子,pr-queue 這個 widget 的視覺佈局(一個標題區、4 行 PR 信息、每行帶狀態圖標)是渲染端寫好的。
AI 不需要畫圖、不需要排版、不需要選字號。它只要往 daemon 發一個這樣的請求:
服務端用 Python + Pillow 把這個 JSON 渲染成一張 540×280 的像素圖,推到墨水屏上。

這個思路其實來自我們在 CodePilot 桌面端做的生成式 UI。
那邊走的是相反的極端:模型實時生成 HTML/SVG,渲染成可交互的 widget。
兩個方向看起來截然相反,但精神是一致的 ——
UI 由 AI 決策,不由用戶配置。
為什麼墨水屏要反着來?因為約束不一樣。
瀏覽器能跑任意代碼、有強大的字體引擎、可以加載 CDN,所以讓 AI 生成 UI 本身沒問題。
墨水屏渲染受限,全屏 GC16 刷新要 2 秒、中文字體一套就要幾兆、像素精度不能算錯,AI 直接生成 UI 太重了。
所以反過來:UI 提前準備好,AI 只決定填什麼、放哪個槽位、什麼時候換。
這個組件庫還在不斷擴。硬件本身基本不變,能力卻在持續生長。
寫在最後:AI Agent 把硬件從內置功能裏解放了出來
聊點更大的事。
傳統硬件公司的護城河是 "我設備裏能做什麼"。
CPU、傳感器、操作系統、內置 App,決定了它的能力上限。一旦造好出廠,能力就基本封頂。
AI Desk Card 這種思路下,硬件的能力來源被換掉了。
它本身只是一塊墨水屏 + ESP32,能做什麼取決於 AI Agent 能拿到什麼信息。
日曆來自飛書 CLI、PR 來自 GitHub CLI、天氣來自任意 API、Memory 來自你的 Obsidian 倉庫 —— 這些信息源全都在 Agent 那邊,不在硬件裏。
當 AI Agent 成為信息中樞之後,硬件可以做得很薄、很專用。
它不需要內置一百個功能,只需要做好一件事 —— 在 AI 決定推送的時候,把內容顯示出來。

這件事的成本也降到了很低的水平。M5Paper V1.1 大概 600 塊,未來類似的開源開發板會更便宜,三四百塊就能買到。墨水屏、彩色墨水屏、TFT 小屏、甚至 Kindle、墨水屏閲讀器,理論上都可以適配同一套 Skill。
後面我還想做幾件事:
適配 M5Paper S3 和 Inkplate / Waveshare 等其他墨水屏開發板
嘗試給老 Kindle 寫一個適配層,把閒置的閲讀器變成桌面副屏
跟 Home Assistant 聯動,把智能家居狀態推到桌面卡上 —— 客廳温度、門鎖狀態、掃地機器人位置
探索彩色墨水屏的可能性,開放更多 widget 類型
每多支持一種硬件,就多一種 AI 觸達物理世界的方式。這些設備不需要變聰明,它們只是 AI Agent 的物理出口。
真正在變聰明的是你桌上那個 AI,
而它聰明的速度,比硬件迭代快得多。
GitHub:https://github.com/op7418/ai-desk-card
如果你覺得這次的內容對你有幫助,可以幫我點個贊或者轉發給需要的朋友。
✦