iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

30 天學會做一個 CLI:打造人類與 AI 都友善的現代 CLI 應用 系列

終端機一直是工程師日常開發與維運的核心介面。隨著 AI Agent 普及,純文字與標準輸入輸出的特點,更讓 CLI 成為 AI理解與操作系統的關鍵管道。現代的 CLI 需要同時兼顧兩種需求:對人類友善,操作直覺且回饋清楚;對 AI 友善,輸出穩定且易於解析。這套 30 篇教學以 Go為開發語言,帶你建立完整的設計思維做出人與AI 順暢使用的實用工具。

參賽天數 28 天 | 共 28 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 21

CLI 實作 WebSocket 即時雙向通訊

上一篇介紹了如何處理單次請求與回應的 HTTP REST API。在查詢匯率或列出資源時,CLI 發送一次 HTTP 請求、取得結果後輸出並結束執行。 但是當需...

2026-10-02 ‧ 由 evanchen 分享
DAY 22

在 CLI 實作 OAuth 2.0 授權登入

許多 CLI 工具(如 Claude Code)在執行前需先驗證使用者身分。在設計登入機制時,關鍵在於明文密碼是否有流經 CLI Process。 最直接的做法...

2026-10-03 ‧ 由 evanchen 分享
DAY 23

打造 AI Chat CLI 串流對話工具

當我們為自己的 CLI 工具整合 AI 對話功能時,通常希望提供一個能持續輸入訊息、即時看到回答的互動介面。 LLM API(如 Claude 或 OpenAI...

2026-10-04 ‧ 由 evanchen 分享
DAY 24

CLI 編輯器的鍵盤輸入:Raw Mode 與按鍵解析

在開發 CLI 工具時,除了處理 git status 這類單次執行的命令,我們經常需要打造更具互動性的介面——例如按鍵即時過濾的選單、滾動檢視日誌的 View...

2026-10-05 ‧ 由 evanchen 分享
DAY 25

CLI 編輯器的畫面控制:清除、游標移動與重繪

前一篇處理輸入:終端機把按鍵編碼成 bytes,程式從 stdin 讀取。這一篇處理輸出:程式把 bytes 寫進 stdout,終端機再把它們顯示成畫面。 像...

2026-10-06 ‧ 由 evanchen 分享
DAY 26

CLI 編輯器的檔案瀏覽:載入檔案與 Viewport

上一篇已經讓編輯器可以顯示畫面並讀取方向鍵。這一篇將開啟實際的文字檔,把內容載入記憶體,再用 viewport 決定終端機目前顯示哪幾行。完成後,程式可以開啟文...

2026-10-07 ‧ 由 evanchen 分享
DAY 27

CLI 編輯器的文字編輯:增刪、存檔與 Undo/Redo

完成了檔案載入與顯示後,接著要加入字元插入、刪除與換行,將修改後的內容安全寫回磁碟,並把每次修改記成可逆操作,讓 Ctrl+Z 與 Ctrl+Y 可以復原及重做...

2026-10-08 ‧ 由 evanchen 分享
DAY 28

CLI 測試:從 Command 單元測試到 Process 驗證

前面的章節已經做出 Command、Flag、輸出格式等功能,從這篇開始進入測試,用測試來確保 CLI 的輸入與輸出行為。也避免在重構 Flag 解析、調整輸出...

2026-10-09 ‧ 由 evanchen 分享