用 AI 協作把 Joplin 筆記流程做成 CLI:從切換桌面到單一 VS Code 視窗的知識管理工作流

我最近完成並發佈了一個小專案:把日常開發學習的筆記流程,收斂成三個指令(learn / til / weekly),讓「寫 Markdown → 一鍵產生筆記 → 自動同步」在終端機完成。整個腳本開發過程幾乎採用 vibe coding 節奏:先跑起來、再重構、邊用邊修,把體感摩擦降到最低。

靈感:Threads 上的 AI + Markdown 知識管理

起點很單純:我在 Threads 看到有人分享「用 AI 協作 + Markdown 格式筆記」來做知識管理的做法,強調的是可累積、可搜尋、可重用。那一刻我意識到,我平常已經在用 VS Code、Copilot、Perplexity 來加速開發了,卻還在用相對原始的方式記錄與沉澱知識;如果能把這兩條流程(開發與筆記)再黏緊一點,長期效益會非常大。

痛點:從切換視窗到單一視窗

我過去的流程大概經歷了三個階段:

  1. 第一階段:寫到一半要記筆記,就切換視窗、切換 macOS 桌面、把內容貼進筆記工具。

  2. 第二階段:開始刻意降低滑鼠依賴,練習用鍵盤快速鍵操作,讓「開發」跟「記錄」切換更快,但仍然有上下文切換的成本。

  3. 第三階段(這次):目標是「單一 VS Code 視窗完成整個流程」,終端機直接產生筆記到指定筆記本,並把格式做成一致的 Markdown 模板。

要解的其實不是技術難題,而是日常流程裡那些看似微小、累積起來很可觀的摩擦。

技術選擇:為什麼最終選擇全 CLI 方案

一開始我想過用 Joplin API + VS Code 的 Joplin 套件混合使用,因為理論上這樣可以直接在 VS Code 裡操作筆記。

但實測後發現:

  • API 產生的筆記只有標題,內容為空

  • 筆記不屬於任何筆記本,會散落在根目錄

  • 混合使用 API 與 CLI 時會有同步衝突,無法確保一致性

嘗試了幾種組合後,我發現只有 全 CLI 方案 才能真正做到:

  • 筆記內容完整寫入

  • 正確進入指定筆記本

  • 自動同步不衝突

  • 完全自動化的工作流

這個「踩坑→試錯→收斂」的過程其實很典型:最簡單、最穩定的方案,往往是最原生、最直接的那一條路。

Joplin 本身就提供終端機版本,能用 mkbook 建筆記本、use 切筆記本、mknote 建筆記、set 寫入內容等指令直接操作資料結構,這讓「腳本化筆記」變得可行且乾淨。 joplinapp 另外,Joplin 對 Markdown 的支援很完整,並且可以同時顯示 Markdown 原文與渲染後的內容,這正好符合我想用純文字累積知識的方向。 joplinapp

解法:把筆記流程變成指令

因此我把常用場景收斂成三個命令:

  • learn "標題":建立一篇「學習文章/長文整理」到指定筆記本(例如 post/Blog)。

  • til "概念":把「Today I Learned」以固定格式追加到當天的每日筆記(不存在就自動建立)。

  • weekly "週報標題":自動計算當週日期範圍,產生週回顧模板(統計、下週計畫、反思)。

內容來源則統一從剪貼簿讀取:我在 VS Code 寫好 Markdown(或請 AI 協作整理)後複製,接著只要下一條指令就能落到正確的筆記本與格式中。

開發過程:vibe coding 的迭代節奏

這個專案很適合用 vibe coding 的方式推進,因為需求非常「使用者體感導向」:只要覺得卡,就回來改腳本;只要覺得順,就立刻固定成模板。

整體節奏大概是:

  1. 先做出能跑的版本:能成功產生筆記、寫入內容、同步。

  2. 再做一致性與可維護性:把 learn / til / weekly 全面重構成同一套配置檔讀取、--help 說明、錯誤訊息、Debug 模式、跨平台日期處理。

  3. 最後才做「可發佈」:驗證腳本語法、確認權限、完成 commit、補齊文件與安裝流程、加入 MIT 授權,讓別人 clone 後就能用。

我也用實際的端到端輸出來驗證:三個指令都成功回報 Note ID、正確進到指定筆記本,並完成同步;這種「每次改完就用真實流程跑一次」的回饋速度,是這次能很快打磨到順手的關鍵。

實際效果:從三步驟到一步驟

改善前的流程:

1. 在 VS Code 寫 Markdown
2. 切換到 Joplin Desktop(Command + Tab / 切換桌面)
3. 找到正確筆記本
4. 新增筆記
5. 貼上內容
6. 加標籤、設定格式
7. 等待同步
8. 切回 VS Code 繼續開發

改善後的流程:

1. 在 VS Code 寫 Markdown → pbcopy
2. 終端機執行:til "概念名稱"
   ✅ 自動建立/追加到今日筆記
   ✅ 自動進入正確筆記本
   ✅ 自動套用格式與標籤
   ✅ 自動同步
3. 繼續開發

上下文切換從 8 步降到 2 步,而且完全不離開 VS Code 視窗。

推廣:適合誰、怎麼開始

如果你符合其中一個狀況,這套流程特別值得試:

  • 你本來就以 VS Code + Terminal 為主工作環境,想把知識管理變成「開發流程的一部分」。

  • 你討厭記筆記時的上下文切換,但又不想降低筆記品質與一致性。

  • 你想把 AI 協作產出的內容(摘要、重構、重點整理)快速沉澱成可搜尋、可回顧的 Markdown 筆記。

  • 你正在用或想試用 Joplin 做為主力筆記工具,並希望透過 CLI 提升效率。

最小可行的使用方式

# 1. 安裝(一行指令)
curl -fsSL https://raw.githubusercontent.com/YOUR_USERNAME/joplin-dev-workflow/main/install.sh | bash

# 2. 在 VS Code 寫好一段 Markdown → 複製到剪貼簿
echo "Promise.allSettled() 不會因為單一失敗而中斷" | pbcopy

# 3. 執行指令
til "Promise.allSettled() 特性"

# 4. 打開 Joplin → 筆記已經在正確位置、帶著一致格式 ✅

未來規劃:從手動複製到全自動生成

目前的版本採用 剪貼簿工作流:需要先寫好或整理好內容,再複製並執行指令。

但這只是第一步。

等我學習了更多 AI 工具與整合技術後,下一階段想嘗試的是:

🔮 自動掃描 + AI 生成技術筆記

讓系統自動掃描以下來源:

  • Git commit 記錄:分析 commit message、diff、新增/修改的檔案

  • 既有筆記內容:從 Joplin 筆記庫中抓取相關脈絡與關鍵字

  • Copilot 對話記錄:提取開發過程中與 AI 的技術討論

然後自動生成「技術筆記初稿」,只需要:

  1. 審稿:檢查 AI 生成的內容是否準確

  2. 編輯:補充脈絡、調整結構、加入個人見解

  3. 發佈:一鍵同步到 Joplin

為什麼這很重要?

現在我會在 Perplexity、Copilot、Claude 等多個 AI 對話中反覆討論同一個技術問題,每次都要「下指令 → 得到回應 → 整理成筆記」。

如果能讓系統自動整合這些對話、commit、既有筆記,產出結構化的技術筆記初稿,我就可以把時間花在「思考與驗證」而非「複製貼上與格式整理」。

這會是一個更接近「AI 協作知識管理」終極形態的實驗。

技術挑戰

  • 如何從 Copilot/Cursor 等工具提取對話記錄?

  • 如何解析 Git commit 並關聯到技術脈絡?

  • 如何用 LLM 整合多個來源並產生結構化筆記?

  • 如何設計「審稿介面」讓人類快速確認與編輯?

目前還在探索階段,但這是我希望這個專案演進的方向。

如果你對這個方向有興趣、有經驗或有建議,非常歡迎交流!

開放與協作

專案已發佈在 GitHub,採用 MIT License,歡迎使用、修改、提 issue 或 PR:

🔗 GitHub Repository: https://github.com/gcake119/joplin-dev-workflow

如果你也在思考如何降低「開發與知識管理之間的摩擦」,或對這套流程有任何建議與改進想法,非常歡迎交流!


寫於 2026.02.16,使用 Perplexity + VS Code + Joplin CLI 完成全文,並透過 learn 一鍵產生為筆記。 🚀