Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

如果你是 Mac 用戶,工作離不開終端機與 AI 工具,常常希望「複製下來的這段字」可以直接變成檔案丟進 Finder 或上傳對話框,PasteMemo 值得放進你的工具清單;但如果你只是要一套一般的剪貼簿歷史工具,TechMoon 之前介紹過的 Paster 與 ElegantClipboard 大概已經夠用。我 clone 了它背後的 Swift 原始碼專案,發現官方網站上「全離線、零網路連線
用 AI 摘要這篇文章:
如果你是 Mac 用戶,工作離不開終端機與 AI 工具,常常希望「複製下來的這段字」可以直接變成檔案丟進 Finder 或上傳對話框,PasteMemo 值得放進你的工具清單;但如果你只是要一套一般的剪貼簿歷史工具,TechMoon 之前介紹過的 Paster 與 ElegantClipboard 大概已經夠用。我 clone 了它背後的 Swift 原始碼專案,發現官方網站上「全離線、零網路連線、無追蹤分析」這串陳述,跟實際程式行為並不完全一致,需要拆開來說清楚。
一句話結論:PasteMemo 的「複製即文件」與 AI 工作流整合是真的有料,但它預設會打匿名分析 ping、會檢查更新、會為了連結預覽抓網頁中繼資料。要真正達到「零網路連線」,得手動到設定裡打開「離線模式」。
目錄
很多人看到「剪貼簿管理器」就直接聯想到 Windows 上那一類常駐工具, PasteMemo 比較不一樣的地方是它從一開始就鎖定兩個場景:第一是把終端機與 AI 對話框當主要戰場,第二是把「複製」這個動作直接升級成「產生檔案」。它的核心設定就兩條:你在終端機複製了一段指令,按 ⇧↵ 它會貼上去後自動補一個 Enter;你截了一張圖,按快速鍵它會把這張圖寫成一個實實在在的 png 檔,丟到你正在用的 Finder 資料夾裡。
這不是行銷話術。我把官方的 Swift 原始碼專案拉下來讀,handlePasteImageToFolder 這個方法確實會去抓 Finder 目前選到的資料夾,把剪貼簿裡的圖片位元組寫進去、檔名套上 PasteMemo_<timestamp> 的命名規則,再透過 NSWorkspace.selectFile 把剛剛寫出的檔案在 Finder 裡亮出來。如果是你在 Finder 裡用 ⌘C 複製的「真檔案」,它會走另一條路徑保留原始檔名與中繼資料;如果是從瀏覽器或設計軟體複製的純圖片位元組,它就自己生一個乾淨檔名。判定是真的檔案還是純影像,是程式自動分流的。

「貼上後自動補 Enter」這件事看起來小,但對每天在終端機打指令的人很實用。它的實作方式是在 RelayPaster.swift 裡用 CGEvent 在 HID 層合成完整的 ⌘ 鍵按下、V 鍵按下、V 鍵放開、⌘ 鍵放開四連事件,再依設定補發一個 Enter 或 Tab。原始碼註解還特別提到,為了讓 Microsoft Remote Desktop 與某些遠端桌面也能正常收到這個組合鍵,修了裝置相關的左 command 旗標(對應 Issue #60)。這個級別的細節,代表開發者真的在自己每天用的場景裡磨過它。
也因為它是原生 macOS 應用而不是 Electron 包裝,這類倚賴 HID 層事件、剪貼簿底層 API、輔助使用權限的功能才能做到這個精度。Electron 路線的剪貼簿工具遇到遠端桌面、Accessibility 權限、CGEvent 注入這類系統級整合通常會卡住,原生 Swift 不會。對應的代價是它只活在蘋果生態裡,沒有跨平台的選項。歷史保留時間可以設成永久,或 1 到 365 天自動清除,這個取捨留給使用者自己拿捏。
PasteMemo 的官方 README 與網站都明明白白寫著「Fully Offline, Zero network connections」「No tracking, no analytics」。這句話是這篇文章最重要的誠實軸,因為我把原始碼整個掃過之後,發現它在預設情況下並不成立。我把會發出網路呼叫的元件依嚴重程度列出來,每一條都附上檔案與行號。
Sources/Engine/UsageTracker.swift 第 23 行定義了一個分析端點:https://stats.pastememo.lifedever.com/ping。第 49 至 50 行的 isEnabled 判斷寫得很清楚:當 ANALYTICS_ENABLED_KEY 沒被設定過時,預設回傳 true,也就是分析功能是採「預設開啟、選擇關閉」的 opt-out 模式。第 82 至 90 行進一步把要送出去的欄位組成 query string,包含應用程式版本、系統語言、macOS 版本、機器架構(arm64 或 x86_64)、一個寫在 usageTracker.deviceId 裡會持續存在的裝置識別碼 did,以及觸發來源(launch、quick、main)。頻率是每天一次,以亞洲上海時區的日界線為基準。註解明白寫著這個時區選擇是為了對齊「server-side dashboard」的每日活躍分桶,所以後端確實有一套分析儀表板在收這些資料。
這條 ping 不會送剪貼簿內容,只送機器與版本資訊,但 did 是會跨天持有的識別碼,足以用來做每日活躍與回訪分析。對應到官方「No tracking, no analytics」這句,與程式行為是有落差的。
Sources/Engine/UpdateChecker.swift 第 33 行設定 latestJsonURL = "https://www.lifedever.com/PasteMemo/latest.json"。Sources/App/AppDelegate.swift 第 98 至 99 行顯示應用程式啟動時會呼叫 UpdateChecker.shared.checkForUpdates() 與 startPeriodicChecks()。設定頁 SettingsView.swift 第 1026 行的 updateCheckInterval 預設是 24 小時,可選 6、12、24、72 小時或關閉。fetchLatestJSON 還會自動在 URL 後加上時間戳做 cache-bust,避開 CDN 邊緣快取。這條檢查本身是匿名、不帶裝置識別碼的,但伺服器端能看到你的 IP。
當你複製一個網址,PasteMemo 會去抓這個網址的頁面標題、favicon 與 OpenGraph 中繼資料,做成一張漂亮的預覽卡片。這個邏輯寫在 Sources/Engine/LinkMetadataFetcher.swift 第 91、132、211 行的幾個 URLSession.shared.bytes 與 data(for:) 呼叫。觸發條件是你「主動複製連結」,不是無聲無息背景發生的,但這仍然屬於網路行為。
Sources/Engine/Backup/WebDAVBackupDestination.swift 提供了一個可選的 WebDAV 備份目的地。這是使用者自己填 URL、帳密才會啟用的功能,但一旦啟用,你的剪貼簿歷史就會被推到你指定的 WebDAV 伺服器。對應到 ElegantClipboard 介紹過的「本機 SQLite 加選用 WebDAV 同步」路線,PasteMemo 走的是同一條設計哲學,但是更偏備份性質。
講完四種網路呼叫,我要補一個對 PasteMemo 比較公平的細節。它的程式碼裡有一個全域的主開關 offlineModeEnabled,定義在 Sources/Views/Settings/SettingsView.swift 第 661 與 893 行,預設值是 false。當使用者到「設定 → 隱私 → 離線模式」把它打開,所有前面提到的網路行為都會被短路掉:UsageTracker.isEnabled 會直接回 false、LinkMetadataFetcher 第 37 行會提早 return、ClipboardManager.swift 第 907 行也會提早 return。換句話說,官方的「Fully Offline」不是完全不存在,只是它是一個需要主動開啟的模式,而不是預設狀態。
這個落差是這篇文章最該講清楚的事:剪貼簿的「內容」本身,也就是你複製的文字、圖片、檔案位元組,在 PasteMemo 的程式碼裡確實沒有被任何一條網路呼叫送出去,分析 ping 只送機器與版本資訊。但「Zero network connections」這句話的條件是「必須先開啟離線模式」,預設情況下這句話不成立。我會建議官方在 README 加註一行「requires enabling Offline Mode in Settings」會更精確。
會把這條講得這麼重,是因為剪貼簿工具本質上就是一把鑰匙等級的東西。你複製的密碼、雙因素驗證碼、API token、客戶郵件、合約段落、私訊內容,全部都會經過它。PasteMemo 在隱私這一塊有兩個正面設計值得記下:第一是 Ignored Apps 機制,可以把密碼管理員(1Password、Bitwarden 這類)整個排除在剪貼簿監聽之外;第二是 Sensitive Detection,會嘗試辨識密碼與敏感資料、在介面上自動遮蔽。這兩個都做在 client 端,不靠雲端辨識。但對應到前面提到的分析 ping,這也是為什麼「分析只送機器資訊,不送剪貼簿內容」這個邊界很重要:它把剪貼簿內容留在本機,但同時還是有一條對外的網路呼叫存在,這兩件事並不矛盾,只是需要分開理解。

v1.7.0(2026-05-15 發布)加入了 AI Agent Bridge,這是 PasteMemo 跟其他剪貼簿工具最不一樣的地方。它的實作不是把資料丟去某個雲端 AI 服務,而是在你本機跑一個獨立的執行檔 pastememo-mcp,這個執行檔扮演 MCP(Model Context Protocol)伺服器,把 AI 客戶端的 stdio 介面橋接到 PasteMemo 主程式的 Unix socket。Sources/MCPProxy/main.swift 開頭幾行就定義了 socket 路徑:~/Library/Application Support/com.lifedever.pastememo/mcp.sock。換句話說,Claude Code 或 Cursor 之所以能「讀到你的剪貼簿歷史」,是因為它們透過 MCP 協定去敲你本機的 PasteMemo,全程不經過任何外部伺服器。
實際能被 AI 客戶端呼叫的工具有四個,定義在 Sources/Bridge/MCPTools/ 目錄:ListRecentAppsTool 列出剪貼簿來源應用程式、GetCurrentTool 取得目前剪貼簿內容、SearchHistoryTool 全文搜尋歷史、GetItemTool 取得指定項目。全部都是唯讀,不能寫入也不能刪除。對會在 Claude Code 或 Cursor 裡做長任務、需要頻繁參考剛剛複製過什麼的人,這個整合是真的有生產力價值的,而不是把 AI 兩個字塞進 release notes 充數。會擔心隱私的人,記得 MCP 客戶端本身可能會把它讀到的剪貼簿內容送去它自己的模型推理伺服器,這部分不在 PasteMemo 的控制範圍。
整套快速操作的面板設計也圍繞「手不離鍵盤」這個目標。按下 ⌘⇧V(快速鍵可改,支援 F1 到 F12)叫出面板後,⌘1 到 ⌘9 直接貼上對應位置的項目,↑↓ 在歷史裡移動,⌘K 開啟命令面板,⌘F 把焦點丟到搜尋框,Esc 關閉。搜尋還支援空格切分多關鍵字的並集比對,中文也適用(例如輸入「學習 筆記」會找到兩個詞同時出現的項目),這個是 v1.7.2 加進來的,對歷史一長就要靠搜尋才能翻到東西的場景很實用。⌘T 一鍵置頂、置頂後可連續按 ⌘1 到 ⌘9 快速連貼多筆,這個是 v1.7.3 加的,對「在多個應用程式之間穿插貼上」這種資料輸入工作流是明顯幫使用者想過的設計。
PasteMemo 只支援 macOS 14(Sonoma)以上,Apple Silicon 與 Intel 都有對應的 dmg,但沒有 Windows、Linux、iOS 版本,這是一個明確的生態邊界。如果你的工作橫跨 Mac 與 Windows,之前介紹的 ElegantClipboard 是 Windows 端的對照組,兩者並不互通;如果你要的是 Mac 與手機之間的剪貼簿同步,可以參考 UniClipboard 的跨裝置路線或 AndroMeld 把 Android 掛進 Mac Finder 的做法。PasteMemo 走的是純單機路線, Issue #68 就有用戶請求加入跨裝置同步與 WebDAV 雙向功能,目前還在 open 狀態。
授權方面,我特別把它拆清楚,因為網路上不少介紹文把 PasteMemo 直接寫成「開源工具」。實際上它分成兩個 GitHub 專案:lifedever/PasteMemo 是 108 顆星的官方網站與下載頁原始碼,採「All Rights Reserved」沒有授權;真正包含應用程式 Swift 原始碼的是 lifedever/PasteMemo-app,252 顆星、27 forks、6 個 open issues,採 GPL-3.0 授權。也就是說,原始碼是公開可讀的,但它是 copyleft:你可以讀、可以 fork、可以自己編來用,但如果要再散布或做成衍生服務,必須遵守 GPL-3.0 的條件。把它單純稱為「開源工具」並不夠精確,更貼切的說法是「GPL-3.0 copyleft 佛心公開原始碼的免費 Mac 應用」。
發布模型方面,PasteMemo 不在 Mac App Store 上架(至少穩定版沒有),主要透過 Homebrew Cask 與官網直接下載 dmg。Homebrew 的裝法是兩行:brew tap lifedever/tap 加 brew install --cask pastememo。它有一個 TestFlight beta 通道給想搶先的人。這個分發方式對習慣 CLI 的開發者很順手,但對一般用戶會多一道「第一次開啟時右鍵選打開」的門檻,因為它不是蘋果公證的 App Store 包。
TechMoon 之前介紹過的剪貼簿工具已經不少,PasteMemo 加入後,整個集群的差異軸其實變得相當清楚。我把它們整理成下面這個表,重點不是誰「最好」,而是各自佔了不同的生態位置。
| 工具 | 平台 | 差異化主軸 | 適合誰 |
|---|---|---|---|
| PasteMemo(本篇) | macOS 14+ | 複製即文件、貼上即檔案路徑、MCP Server 整合 AI 客戶端 | 終端機與 AI 工作流的開發者 |
| Paster | Mac 為主 | OCR、桌面貼圖、區網分享 | 需要把剪貼簿內容釘在桌面、跨區網分享的人 |
| UniClipboard | 跨裝置 | 多設備剪貼簿同步 | Mac、手機、平板之間要互通的人 |
| ElegantClipboard | Windows | 本機 SQLite、繁中原生介面、選用 WebDAV 同步 | Windows 用戶、想長期保存剪貼簿歷史的人 |
| AndroMeld | Mac 接 Android | Android 檔案掛進 Finder、雙向剪貼簿 | 同時用 Mac 與 Android 的人 |
從這個表看得出來,PasteMemo 佔的位置相當窄卻相當深:它是這個集群裡唯一把「複製即文件」與「貼上後自動補 Enter」當成一級功能打磨的,也是唯一提供 MCP Server 讓 AI 客戶端直接讀剪貼簿歷史的。如果你是它的目標受眾,這個深度是有價值的;如果你的需求偏向 Paster 那種桌面貼圖或 UniClipboard 那種跨裝置同步,PasteMemo 並不是來取代它們的。

Relay 接力模式是另一個我認為被嚴重低估的功能。它的使用情境是這樣:你有一份表單要填十個欄位,或要批次把多個值貼進試算表與資料庫介面。你先連續複製好幾段內容,PasteMemo 把它們排成一個可視的佇列,每次 ⌘⇧V 貼上「目前這一筆」,貼完佇列前進一格,直到清空。佇列可以手動建立,也可以用分隔符號(逗號、換行等)把一段長文字自動拆成多筆。對重複性的資料輸入工作,這個比開外部自動化工具更輕量,也更容易在過程中回頭檢查佇列狀態。
最直接的方式是打開「設定 → 隱私」裡的「離線模式」主開關,這個開關一開,前面提到的四種網路呼叫全部會被關閉,包括分析 ping、更新檢查、連結預覽抓取。如果你只想關分析、保留更新檢查與連結預覽,可以單獨關閉同一個設定頁裡的「匿名使用統計」切換(對應 analyticsEnabled 這個鍵),它的預設值是開啟的,所以要手動切到關。我個人會建議第一次安裝就先檢查這兩個開關,不要預設相信 README 的「全離線」陳述。
我把客觀資料列出來讓你自己判斷。lifedever/PasteMemo-app 在 2026-04-01 建立,截至 2026-07-07 已累積 252 顆星、27 個 fork、30 個以上 release,最新版本 v1.7.9 在 2026-06-30 推出,過去兩個月大約每 3 到 7 天就有一個新版本。開發者 lifedever 同時維護 TaskTick、Markify、health-tick 等多個獨立開發者專案,是一個有持續出貨紀錄的 indie dev,不是 side project 放著爛的那種。Issue 列表裡的回覆與 release notes 常常具名感謝回報問題的使用者(例如 v1.7.9 修了剪映遮擋面板的問題,感謝 @JazZ301;v1.7.3 感謝 @vvair),代表開發者有在認真對待社群反饋。
本文基於截至 2026-07-07 的 GitHub 專案 lifedever/PasteMemo-app(v1.7.9,pushed 2026-06-30,GPL-3.0)與其官方網站 lifedever.com,加上對 Swift 原始碼關鍵檔的審計,包括 Sources/Engine/UsageTracker.swift、Sources/Engine/UpdateChecker.swift、Sources/Engine/LinkMetadataFetcher.swift、Sources/Engine/Backup/WebDAVBackupDestination.swift、Sources/Relay/RelayPaster.swift、Sources/Views/QuickPanel/QuickPanelView.swift、Sources/MCPProxy/main.swift、Sources/Bridge/MCPTools/ 等。第一手元素包括:clone 後讀原始碼與網路呼叫審計、查 GitHub Issues(#60、#68、#72、#78 等)、查 Release notes(v1.7.0 到 v1.7.9)、官網首頁與產品頁查證、對照 TechMoon 既有剪貼簿集群。本文未親自跑完整的 build 與簽章封裝流程,內文引用的快速面板與 Relay 模式截圖取自官方 README 提供給 jsDelivr CDN 的公開素材,非我自己跑出來的畫面。未涵蓋範圍包括長期使用穩定性、你具體工作流下的表現、與 macOS 以外平台的任何相容性,這些請自行驗證。ahhhhhfs 來源頁因站方暫時無法連線(HTTP 522 持續超過兩小時,非 anti-bot),以 Wayback Machine 2026-05-05 快照對照來源角度,事實以 live GitHub 專案與官網為主。
如果你今天的工作重心真的就在終端機與 AI 對話框,希望「複製」這個動作直接幫你長出檔案、貼上去自動補 Enter、還能讓 Claude Code 與 Cursor 直接讀你剛剛複製了什麼,那 PasteMemo 確實是當前這個集群裡最對你胃口的一個,不妨透過 Homebrew 裝來試試看,並且記得第一次啟動就先檢查離線模式那個開關要怎麼設。