[{"data":1,"prerenderedAt":1468},["ShallowReactive",2],{"nav-search-articles-zh":3,"page-\u002Farticles\u002Fwitr":547,"related-\u002Farticles\u002Fwitr":1356,"article-prev-next-zh-\u002Farticles\u002Fwitr":1367},[4,15,24,32,38,44,49,58,63,68,73,79,84,89,97,102,107,112,118,123,128,134,139,144,149,154,159,164,169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,250,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,341,346,351,357,362,367,375,382,388,394,399,404,410,415,420,425,430,435,440,445,450,455,460,465,470,475,480,485,490,495,500,505,510,515,522,527,532,537,542],{"_path":5,"title":6,"description":7,"category":8,"tags":9},"\u002Farticles\u002Fllmfit","llmfit 實測：先看這台 Mac 適合跑哪些本機模型","我拿 Apple M4、16GB RAM 的乞丐版 Mac mini 實測 llmfit 1.1.12，示範硬體偵測、Score 與 tok\u002Fs 排序、模型詳細資料，以及新版的社群 benchmark 分享功能。","AI & Tools",[10,11,12,13,14],"Open Source","CLI","Local AI","LLM","Rust",{"_path":16,"title":17,"description":18,"category":8,"tags":19},"\u002Farticles\u002F100-days-10-essential-apps","每日更新 100 天後，我留下來的 10 款 App","連續整理實用工具 100 天後，我選出 Zen Browser、Mos、Handy、Kando、Recordly、Zed、MarkText、Syncthing、MOLE 與 LuLu。前八款已經進入每天的工作流，後兩款則是實用度點滿的 Mac 工具。",[10,20,21,22,23],"Productivity","Automation","Network","Security",{"_path":25,"title":26,"description":27,"category":8,"tags":28},"\u002Farticles\u002Fmoshi-vs-termius","Moshi 與 Termius 實測：手機接手 Claude Code、Codex、Grok Build 的兩種做法","我用 iPhone 透過 Tailscale 網路以 SSH 連回 Mac mini，實測 Moshi 與 Termius 怎麼接手終端機裡的 CLI Agent。真正讓工作不怕斷線的是 tmux。",[29,30,31,11,20,22],"AI Agents","Claude Code","Codex",{"_path":33,"title":34,"description":35,"category":8,"tags":36},"\u002Farticles\u002Fsharex","ShareX 21.0 實測：Windows 老牌截圖工具，老、可靠、實用","我在 Windows 實測 ShareX 21.0 的區域截圖、圖片標記、截圖後排程與 OCR。介面不新，但從快捷鍵到輸出動作都能自己決定，免費開源而且夠可靠。",[10,20,37,21],"Image Processing",{"_path":39,"title":40,"description":41,"category":8,"tags":42},"\u002Farticles\u002Fvhs","VHS 實測：把終端機錄影寫成可以重播的程式碼","Charmbracelet VHS 能用 .tape 腳本控制終端機輸入、等待、主題、尺寸與輸出格式。我實際用 662 bytes 的 Tape 產生 16.92 秒中英 Demo，並從 MP4 擷取 PNG 截圖。",[10,11,43,21,20],"Video Processing",{"_path":45,"title":46,"description":47,"category":8,"tags":48},"\u002Farticles\u002Fzen-browser","Zen Browser 實測四個月：除了 Netflix，我已經不用 Chrome","我把 Zen Browser 當主力瀏覽器用了四個月。這篇整理自動伸縮側邊欄、Workspaces、Glance、Split View、Firefox 擴充套件與我正在使用的 Zen Mods，也說明為什麼 Netflix 還是得開其他瀏覽器。",[10,20,23],{"_path":50,"title":51,"description":52,"category":53,"tags":54},"\u002Farticles\u002Flucide-animated","lucide-animated：把 Lucide Icon 變成會動的 React 元件","lucide-animated 是一套以 Lucide 與 Motion 製作的開源動態圖示。這篇整理互動預覽、shadcn CLI 安裝方式，以及如何交給 Agent 使用。","Web Dev",[10,55,56,57,29],"Web Development","React","Animation",{"_path":59,"title":60,"description":61,"category":8,"tags":62},"\u002Farticles\u002Fanydoc","AnyDoc 實測：不到 1 秒把 Word 轉成 Markdown，還能直接交給 Agent 使用","我用 AnyDoc 高速把文件轉成 Markdown。這篇整理 CLI 與 Agent Skill 的完整用法、實際保留的文件結構，以及它和 Marker、MinerU 的差別。",[29,10,11,20,14],{"_path":64,"title":65,"description":66,"category":8,"tags":67},"\u002Farticles\u002Fwitr","witr 實測：一條指令查出誰占用 Port，以及它為什麼在跑","我在 Mac 實際開了一個占用 5173 Port 的 Node 服務，再用 witr 追查程序、啟動來源與 Socket，也整理了 TUI、常用指令和公開畫面前要注意的隱私資訊。",[10,11,22,20],{"_path":69,"title":70,"description":71,"category":8,"tags":72},"\u002Farticles\u002Fsyncthing","Syncthing 實測：Mac 和 Windows 不靠雲端硬碟，自動同步資料夾","我用 Syncthing 連接 Mac 與 Windows，實際測試共享資料夾的雙向檔案同步，也記錄了加密設定錯誤與同步衝突。",[10,22,20],{"_path":74,"title":75,"description":76,"category":8,"tags":77},"\u002Farticles\u002Flosslesscut","LosslessCut 實測：5 分鐘 600 MB 影片，幾乎按下就剪完","LosslessCut 能用 FFmpeg 直接複製影音串流，不必重新編碼。我實測剪一支約 5 分鐘、600 MB 的影片，並整理免費下載方式、I／O 快捷鍵與關鍵影格限制。",[10,20,43,78],"Audio Processing",{"_path":80,"title":81,"description":82,"category":8,"tags":83},"\u002Farticles\u002Flulu","LuLu 實測：Mac App 第一次往外連時，先讓你看一眼再決定","LuLu 是免費開源的 macOS 出站防火牆。它會在沒有規則的程式建立對外連線時顯示程式、目的地與簽章資訊；本文整理安裝後該保留的預設選項，以及警示該怎麼判斷。",[10,23,22],{"_path":85,"title":86,"description":87,"category":8,"tags":88},"\u002Farticles\u002Fsnapzy","Snapzy 實測：比 Mac 內建截圖更完整的免費原生工具","Snapzy 是免費開源的 macOS 原生截圖工具，支援截圖即時標記、長截圖、OCR、螢幕錄影與內建編輯器。我實測截圖並標記功能，也整理了避免快捷鍵衝突的設定方式。",[10,20,37],{"_path":90,"title":91,"description":92,"category":8,"tags":93},"\u002Farticles\u002Fimg2threejs-codex-test","img2threejs 實測：丟一張圖片給 Codex，真的能做成 Three.js 3D 模型嗎？","我用 GPT-5.6 SOL、medium 推理測試 img2threejs。F1 賽車這類複雜物件很容易翻車，換成紅白機手把後，按鈕、視角切換與爆炸圖都有做出來。這篇整理實測結果、適用範圍與 Codex 安裝方式。",[29,10,55,94,95,31,96,37],"JavaScript","WebGL","Agent Workflow",{"_path":98,"title":99,"description":100,"category":8,"tags":101},"\u002Farticles\u002Fpake","Pake 實測：一行指令把 Threads 網站打包成約 10MB 的 Mac App","Pake 是以 Rust／Tauri 製作的開源工具，可以把網站打包成 macOS、Windows 或 Linux 桌面 App。我實測將 Threads 網站做成獨立 App，從終端機輸入網址到拖進 Applications 就能使用。",[10,11,20,14],{"_path":103,"title":104,"description":105,"category":8,"tags":106},"\u002Farticles\u002Fmole","MOLE 實測：讓 AI Agent 先分析，再幫 Mac 清出 15GB 空間","MOLE 是 macOS 的開源終端機維護工具。我實測用 mo analyze、mo status 和 mo clean --dry-run 檢查硬碟與快取，最後清出 15.29GB；它也很適合交給 AI Agent 先分析、由人確認後再清理。",[29,10,11,20],{"_path":108,"title":109,"description":110,"category":8,"tags":111},"\u002Farticles\u002Ftwinkle-tray","Twinkle Tray：在 Windows 工作列直接調整多螢幕亮度","Twinkle Tray 是一套免費的 Windows 小工具，可以從系統匣直接調整多台外接螢幕的亮度，也支援快捷鍵、排程與 DDC\u002FCI 顯示器控制。",[20,10],{"_path":113,"title":114,"description":115,"category":8,"tags":116},"\u002Farticles\u002Fmarker","Marker 實測：比 MinerU 好上手的 PDF 轉 Markdown 工具？","我在 Apple Silicon Mac 上實測 Marker 的 fast 模式。一般文字型 PDF 轉 Markdown 已經很夠用，但公式與表格仍會失手；也整理了它和 MinerU 的實際分工。",[117,10,11,12,20],"AI Tools",{"_path":119,"title":120,"description":121,"category":8,"tags":122},"\u002Farticles\u002Fzed","Zed 實測：最近試到一個很順的 AI 程式編輯器","最近把專案放進 Zed 用了一下。它的操作感很輕快，AI 又能直接接 ChatGPT、Codex 和 MCP；不是要取代 VS Code，但很適合當成另一個選擇。",[117,29,10,20,31,14],{"_path":124,"title":125,"description":126,"category":8,"tags":127},"\u002Farticles\u002Fwhatcable","WhatCable 實測：Mac 的 USB-C 線到底跑多快、能不能帶螢幕，一打開就知道","WhatCable 是 macOS 選單列工具，能直接讀出 USB-C 線材、連接埠與裝置的實際協商狀態。我用它看到 USB4／Thunderbolt 40 Gbps、240W、e-marker，以及 4K 144Hz 螢幕連線的細節。",[20,10,11],{"_path":129,"title":130,"description":131,"category":8,"tags":132},"\u002Farticles\u002Fdbx","DBX：支援 70+ 種資料庫的輕量管理工具，連 Supabase 也能直接看表格、跑 SQL","DBX 是一款約 20 MB 的輕量開源資料庫工具。我這次實際連上 Supabase，也看了它的多資料庫管理、編輯器主題、AI 助理與 MCP 整合。",[133,10,20,29,14],"Database",{"_path":135,"title":136,"description":137,"category":8,"tags":138},"\u002Farticles\u002Fopenlogi","OpenLogi 實測：免費開源的 Logitech Options+ 本機替代工具，macOS 權限與 HID 排錯","OpenLogi 是支援特定 Logitech HID++ 周邊的本機開源工具，可調整按鍵、DPI 與 SmartShift。本文整理 macOS 的 Homebrew 安裝、必要權限與一次 HID transport error 的個案排錯；Windows 則是下載後直接可用。",[10,20,14],{"_path":140,"title":141,"description":142,"category":8,"tags":143},"\u002Farticles\u002Fmos","Mos 實測：讓 macOS 外接滑鼠滾輪變得平順","Mos 是一款免費的 macOS 滑鼠工具，能把外接滑鼠滾輪的跳動補成平滑移動，也能分別設定捲動方向與各個應用程式的捲動參數。",[20,11],{"_path":145,"title":146,"description":147,"category":8,"tags":148},"\u002Farticles\u002Flively-wallpaper","Lively Wallpaper 實測：免費開源的 Windows 動態桌布，音樂同步與全螢幕自動暫停","我實測 Lively Wallpaper：一款免費開源的 Windows 動態桌布工具。可以直接放入影片、GIF、網頁與網址，也能做系統音訊視覺化；更重要的是，玩遊戲或開全螢幕程式時能自動暫停桌布。",[10,20,43,78],{"_path":150,"title":151,"description":152,"category":8,"tags":153},"\u002Farticles\u002Ftrex-ocr","TRex 實測：macOS 選取螢幕文字就複製，QR Code、Raycast 與自動化都能用","我實測 TRex：一款 macOS 選取螢幕區域後直接把文字放進剪貼簿的開源 OCR 工具。它也能讀 QR Code、條碼、支援 Raycast、快捷鍵、CLI、Shortcuts 與 Watch Mode。",[37,10,20,21,11],{"_path":155,"title":156,"description":157,"category":8,"tags":158},"\u002Farticles\u002Ftranslucenttb","TranslucentTB 實測：幾 MB 記憶體，讓 Windows 工作列變得更順眼","TranslucentTB 是一款免費開源的 Windows 工作列外觀工具，只用幾 MB 記憶體、幾乎不吃 CPU，就能在透明、模糊、壓克力與一般模式間切換。我把最大化視窗設成一般模式，其餘工作時維持模糊，兼顧閱讀性與桌面質感。",[10,20,11],{"_path":160,"title":161,"description":162,"category":8,"tags":163},"\u002Farticles\u002Fheyclicky","HeyClicky 實測：比語音輸入更進一步的螢幕感知 AI","HeyClicky 是一款住在 macOS 游標旁的 AI 助手。它會結合螢幕畫面與語音指令，協助理解目前工作內容；我實測了它的功能、免費額度與多螢幕問題。",[117,29,20,21],{"_path":165,"title":166,"description":167,"category":8,"tags":168},"\u002Farticles\u002Fmac-stats","Stats 實測：把 Mac 的 CPU、記憶體與網路狀態放進選單列","Stats 是免費開源的 macOS 選單列系統監控工具。我實測它的安裝、預設選單列配置，以及 CPU、記憶體面板；想隨時看 CPU、RAM、網路或 SSD 狀態，這款很實用。",[10,20],{"_path":170,"title":171,"description":172,"category":8,"tags":173},"\u002Farticles\u002Fwinhance","Winhance 實測：一鍵安裝後管理、移除 Windows 內建軟體","實測 Winhance 的 PowerShell 一鍵安裝、繁體中文介面與 Windows 內建 App 批次移除流程。它把常見的 debloat、系統調整和外部軟體安裝集中到同一個圖形介面。",[10,20,11],{"_path":175,"title":176,"description":177,"category":8,"tags":178},"\u002Farticles\u002Ffile-converter","File Converter 實測：Windows 右鍵直接把 PNG／JPG 轉成 WebP","File Converter 是整合進 Windows 檔案總管右鍵選單的開源轉檔工具。我實測把 PNG、JPG 圖片轉成 WebP；不必打開主程式，選檔後右鍵就能完成，也支援影片、音訊與更多圖片格式。",[10,20,37,43],{"_path":180,"title":181,"description":182,"category":8,"tags":183},"\u002Farticles\u002Ffinetune","FineTune：補上 macOS 缺少的單一 App 音量控制","FineTune 是一個免費開源的 macOS 選單列音量工具，可以針對不同 App 調整音量、切換輸出設備，還能把不同 App 指到不同音訊設備。這篇簡單記錄它解決的問題與安裝方式。",[20,10],{"_path":185,"title":186,"description":187,"category":8,"tags":188},"\u002Farticles\u002Flatest","Latest：macOS 上一眼檢查 App 更新的小工具","Latest 是一個免費開源的 macOS App 更新檢查工具，可以集中查看哪些 App 有新版本，支援 Mac App Store 與使用 Sparkle 更新框架的應用程式。功能很單純，但對想定期整理 Mac 軟體版本的人很方便。",[20,10],{"_path":190,"title":191,"description":192,"category":8,"tags":193},"\u002Farticles\u002Fmarktext","MarkText：我目前用過最順手的所見即所得 Markdown 編輯器","MarkText 是一個開源 Markdown 編輯器，最大的特色是所見即所得：不用在原始碼與預覽視窗之間來回切換，而是在同一個畫面直接寫、直接看結果。這篇記錄 macOS 與 Windows 下載方式、Apple Silicon 要選哪個檔案，以及 macOS 遇到「已損毀，無法打開」時怎麼用 xattr 解決。",[20,10],{"_path":195,"title":196,"description":197,"category":8,"tags":198},"\u002Farticles\u002Fquicklook","QuickLook 實測：把 macOS 空白鍵預覽帶到 Windows，速度比 PowerToys Peek 更順","我實測 QuickLook 這款 Windows 檔案快速預覽工具，可以用空白鍵預覽 PDF、Markdown、圖片、影片、3D 模型與多種文件格式。它像 macOS Quick Look，但在 Windows 上支援格式更廣，也比我用 PowerToys Peek 時更順手。",[20,10],{"_path":200,"title":201,"description":202,"category":8,"tags":203},"\u002Farticles\u002Fumi-ocr","Umi-OCR 實測：免費開源離線 OCR 工具，截圖、批次圖片與 PDF 都能本地辨識","我實測 Umi-OCR 這款免費開源的離線 OCR 工具，支援截圖 OCR、批次圖片辨識、PDF 文件 OCR、二維碼掃描與命令列\u002FAPI 呼叫。它不用上傳檔案，Windows 還能依照電腦效能選 Paddle 或 Rapid 引擎版本。",[37,10,20],{"_path":205,"title":206,"description":207,"category":8,"tags":208},"\u002Farticles\u002Fpicsharp","PicSharp 實測：跨平台開源圖片壓縮工具，拖進去就能批次壓縮","我實測 PicSharp 這款跨平台圖片壓縮工具，支援 macOS、Windows 與 Linux，可以直接拖曳圖片或資料夾進去批次壓縮，也能在本地壓縮與 TinyPNG 之間切換，適合整理網站圖片與文章素材。",[37,10,20],{"_path":210,"title":211,"description":212,"category":8,"tags":213},"\u002Farticles\u002Fmeetily","Meetily 實測：本地 AI 會議轉錄、逐字稿與繁體中文摘要工具","Meetily 是一款開源、隱私優先的 AI 會議助理，可以在本機錄音、轉錄並產生摘要。我實測 v0.4.0，整理安裝方式、中文轉錄模型設定、繁體中文摘要與適合使用的情境。",[117,10,12,78,20],{"_path":215,"title":216,"description":217,"category":8,"tags":218},"\u002Farticles\u002Fbuhocleaner","BuhoCleaner 實測：我在 Mac 上用了超過一年的清理與 App 移除工具","我實測 BuhoCleaner 這套 Mac 清理工具，分享用了超過一年的心得、免費版限制、付費版價格、選單列監控、垃圾檔案清理、App 完整移除與日常使用情境。",[20],{"_path":220,"title":221,"description":222,"category":8,"tags":223},"\u002Farticles\u002Ffancontrol","Fan Control 實測：Windows 上超細緻的風扇曲線與硬體溫度控制工具","我實測 Fan Control 這套 Windows 風扇控制工具，從 GitHub Releases 下載 installer、安裝後切換繁體中文、自動校正風扇、建立曲線，到實際調整監控卡片與風扇策略的使用心得。",[20],{"_path":225,"title":226,"description":227,"category":8,"tags":228},"\u002Farticles\u002Fupscayl","Upscayl 實測：免費開源的本機 AI 圖片放大工具","我實測 Upscayl 這套免費開源 AI 圖片放大工具，從 GitHub Releases 與 Homebrew 安裝、第一次選語言、選模型，到用 Digital Art 模型把 He-Man 圖片放大 4 倍的實際效果。",[37,10,12,20],{"_path":230,"title":231,"description":232,"category":8,"tags":233},"\u002Farticles\u002Fappports","AppPorts 實測：把大型 Mac App 搬到外接硬碟，還能像原本一樣啟動","我實測 AppPorts 在 macOS 上把應用程式遷移到外接 SSD 的流程，包含 GitHub Releases 下載、Gatekeeper 隔離解除、語言切換、鎖定遷移與非鎖定遷移，以及實際搬移後的使用感受。",[20,10],{"_path":235,"title":236,"description":237,"category":8,"tags":238},"\u002Farticles\u002Fmac-fan","Macs Fan Control 實測：用了超過一年還留在 Mac 上的免費風扇控制工具","我在 macOS 上長期使用 Macs Fan Control 超過一年，這篇記錄它的下載方式、GitHub README 要先看的重點、溫度感測器設定、風扇曲線邏輯，以及我自己會注意的使用界線。",[20],{"_path":240,"title":241,"description":242,"category":8,"tags":243},"\u002Farticles\u002Fmarkdown-preview","Markdown Preview：macOS 上更輕量的 .md 預覽工具","Markdown Preview 是一個專門用來打開與預覽 .md 檔案的 macOS 小工具，可以設定成 Markdown 預設開啟 App，支援 Quick Look、搜尋、字體大小、外觀切換，以及 Preview \u002F Edit \u002F Split 模式。",[20,55],{"_path":245,"title":246,"description":247,"category":8,"tags":248},"\u002Farticles\u002Fcodebase-memory","Codebase Memory MCP 實測：把整個程式碼庫變成 AI Agent 可查詢的知識圖譜","Codebase Memory MCP 是一個本機運行的程式碼知識圖譜引擎，能讓 Claude Code、Codex、Cursor 等 AI Agent 直接查詢函式、呼叫鏈、架構與影響範圍。本文實測安裝、索引、3D Graph UI 與 CLI 查詢流程。",[117,29,10,11,249,31],"Data Visualization",{"_path":251,"title":252,"description":253,"category":254,"tags":255},"\u002Farticles\u002Fdeskreen","Deskreen 同網域臨時螢幕分享工具實測：用手機或另一台電腦看你的畫面","Deskreen 可以把電腦畫面分享給同一個區域網路內的手機、平板或另一台電腦。這篇紀錄實際使用流程、適合場景，以及內網 IP 和隱私注意事項。","Tools",[10,22,20],{"_path":257,"title":258,"description":259,"category":8,"tags":260},"\u002Farticles\u002Frustdesk","RustDesk 開源遠端桌面實測：用 Windows 串流控制 macOS","RustDesk 是一款開源遠端桌面工具，可以跨平台遠端控制電腦，也支援自建伺服器。這篇記錄我從 GitHub 下載、登入帳號、開啟權限、設定固定密碼，到第一次接受連線的實測流程。",[10,22,20,14],{"_path":262,"title":263,"description":264,"category":8,"tags":265},"\u002Farticles\u002Fhandbrake","HandBrake 實測：老牌開源影片壓縮工具到現在還是很穩","HandBrake 是一款老牌開源影片轉檔與壓縮工具。我這次用 4K 影片簡單實測，原始 106.1 MB 壓到 16.6 MB，畫質保留得比我預期好，這篇記錄我的基本用法與 preset 選擇心得。",[10,43,20],{"_path":267,"title":268,"description":269,"category":8,"tags":270},"\u002Farticles\u002Fsmartsub","SmartSub 妙幕實測：我目前用過最省事的本機影片字幕翻譯工具","SmartSub 妙幕是一款本地優先的桌面字幕工具，可以完成影片轉字幕、字幕翻譯、雙語字幕與字幕燒錄。這篇記錄我實測 DeepSeek 翻譯、faster-whisper、CUDA 加速，以及它和 VideoLingo 的差異。",[117,10,43,12],{"_path":272,"title":273,"description":274,"category":8,"tags":275},"\u002Farticles\u002Fkando","Kando 實測：我近期最喜歡的跨平台開源圓盤快捷選單","Kando 是一款免費開源、支援 macOS\u002FWindows\u002FLinux 的 Pie Menu 工具，可以用 Ctrl + Space 叫出圓盤選單，用滑鼠手勢快速開啟 App、網站、檔案、熱鍵與巨集。這篇分享我的實際使用體驗與設定方式。",[10,20,21],{"_path":277,"title":278,"description":279,"category":8,"tags":280},"\u002Farticles\u002Fhorizon","Horizon 實測：讓 Codex 自動整理每日 AI 新聞","我把 Horizon 接進部落格新聞流程，讓它負責抓資料來源，再交給 Codex 寫成每日 AI 新聞摘要。這篇記錄安裝方式、基本使用流程，以及我實際測完後的想法。",[117,29,10,21,11],{"_path":282,"title":283,"description":284,"category":8,"tags":285},"\u002Farticles\u002Fmaccy","Maccy 實測：輕量、鍵盤優先的 macOS 開源剪貼簿管理工具","自己在 macOS 整理資料或開發時最常遇到的問題是頻繁複製貼上造成的視窗切換。本文實測開源的 Maccy 剪貼簿工具，分享其快捷鍵喚醒、快速搜尋、安全過濾等實際使用體驗。",[10,20],{"_path":287,"title":288,"description":289,"category":8,"tags":290},"\u002Farticles\u002Fstirling-pdf","Stirling PDF 實測：離線跑的開源 PDF 神器，免上傳雲端直接搞定 50+ 種處理需求","我最近實測了開源的 Stirling PDF。這是一款可以完全在本地運行的 PDF 編輯平台，支援合併、壓縮、簽名等多達 50 多種功能，不用擔心敏感文件被上傳到第三方雲端伺服器。",[10,20,23],{"_path":292,"title":293,"description":294,"category":254,"tags":295},"\u002Farticles\u002Faerospace","AeroSpace 實測：讓 macOS 擁有平鋪視窗管理","分享這款 AeroSpace 平鋪視窗管理工具，以及我如何透過鍵盤快捷鍵解決 macOS 視窗混亂的問題。",[10,20],{"_path":297,"title":298,"description":299,"category":8,"tags":300},"\u002Farticles\u002Fpowertoys","Microsoft PowerToys 實測：4 個用過就回不去的 Windows 效率工具","自己在 Windows 工作最常遇到的問題是缺少類似 macOS 的預覽與快速啟動功能。本文實測微軟官方推出的 PowerToys 中實用的四個工具：空白鍵預覽 Peek、快速截圖 OCR 複製、視窗永久置頂與快捷搜尋框，分享我實際的使用體驗。",[10,20],{"_path":302,"title":303,"description":304,"category":8,"tags":305},"\u002Farticles\u002Frecord-replay","Codex Record & Replay 實測：演示一遍，教 AI 學會你的本地工作流","OpenAI Codex 最近新增了 Record & Replay 功能。我實測了在本地環境下，如何透過一次演示，讓 Codex 錄製並自動執行影片壓縮等腳本工作流。",[31,21,20,117],{"_path":307,"title":308,"description":309,"category":8,"tags":310},"\u002Farticles\u002Frecordly","Recordly 實測：開源螢幕錄影與自動 Zoom-in 編輯器（macOS\u002FWindows\u002FLinux）","我最近實測了開源的 Recordly。這是一款結合錄影與後製的工具，能自動根據滑鼠活動生成變焦建議，並提供滑鼠平滑、陰影邊框等美化功能，讓製作軟體 Demo 影片變得很省時。",[10,20,43],{"_path":312,"title":313,"description":314,"category":8,"tags":315},"\u002Farticles\u002Fcodexbar","CodexBar 實測：macOS 選單列一次監控 53 個 AI 編碼服務額度","CodexBar 是一款開源的 macOS 選單列工具，可即時追蹤 Codex、Claude、Cursor、Copilot 等 AI 編碼服務的使用視窗、信用餘額與重設倒數。本文實測安裝流程、權限授權與提供者設定教學。",[117,31,30,11,10,20],{"_path":317,"title":318,"description":319,"category":8,"tags":320},"\u002Farticles\u002Foptimizerduck","optimizerDuck 實測：開源 Windows 效能與隱私最佳化工具，拒絕背景無用遙測","optimizerDuck 是一款基於 .NET 10 與 WPF 開發的開源 Windows 系統最佳化工具。本文實測其效能調校、隱私遙測封鎖、GPU 電源優化等功能，並提供 Windows SmartScreen 封鎖警告的排解步驟與繁體中文語系設定教學。",[10,20,21],{"_path":322,"title":323,"description":324,"category":8,"tags":325},"\u002Farticles\u002Fhandy","Handy 離線語音輸入法實測：搭配 Breeze ASR 25，專為台灣人設計的中英混用輸入方案","Handy 是一款免費、開源且完全離線運作的桌面語音輸入工具。本文實測在 macOS\u002FWindows\u002FLinux 環境下安裝配置，並搭配專為台灣日常中英混用情境優化的 Breeze ASR 25模型，為您打造極致隱私的語音輸入體驗。",[117,10,12,78,20],{"_path":327,"title":328,"description":329,"category":8,"tags":330},"\u002Farticles\u002F5live","Gemini 3.5 Live Translate 實測：全新雙向即時語音翻譯與 Live API 開發指南","Google 推出全新的 Gemini 3.5 Live Translate 模型，支援超過 70 種語言的雙向低延遲即時語音翻譯。本文將帶你實測 Google AI Studio 的網頁體驗、了解其運作機制，並提供 Live API 開發範例與 WebSocket 連接設定。",[117,78,13],{"_path":332,"title":333,"description":334,"category":254,"tags":335},"\u002Farticles\u002Fmap3d","Map3D 實測：一鍵生成 3D 城市地圖與 GLB 匯出指南","想要快速獲取真實城市的 3D 建築與道路模型？Map3D 基於 React-Three-Fiber 與 OpenStreetMap，提供網頁一鍵框選與直接匯出 GLB，讓 3D 地形建模變得太簡單了！",[336,337,338,339,340,95],"React-Three-Fiber","Three.js","OpenStreetMap","GLB","3D Map",{"_path":342,"title":343,"description":344,"category":254,"tags":345},"\u002Farticles\u002Flocalsend","LocalSend 跨平台開源局域網檔案傳輸工具免設定使用指南","免網路、免註冊，在 macOS、Windows、Linux、iOS 與 Android 之間以 HTTPS 局域網高速安全互傳檔案。",[10,22,20],{"_path":347,"title":348,"description":349,"category":8,"tags":350},"\u002Farticles\u002Fllmwiki","LLM Wiki 實測：用大模型打造能自動整理與更新的個人離線知識庫","每次整理筆記都覺得繁瑣？LLM Wiki 是一款基於 Andrej Karpathy 理念開發的個人知識庫工具。它能自動讀取文檔、進行兩階段思維鏈分析、生成互相連結的 Wiki 頁面，並完美兼容 Obsidian 與本地 AI 模型。",[12,117,10,13,20,29],{"_path":352,"title":353,"description":354,"category":254,"tags":355},"\u002Farticles\u002Fvibe","Vibe 實測：最適合小白的跨平台離線 AI 語音轉文字工具，簡潔直覺一鍵搞定！","嫌 Whisper 命令行太難、其他工具設定太複雜？Vibe 是一款極簡、無痛上手的離線語音轉字幕工具。功能雖然精簡，但介面清爽、極易上手，是電腦小白與新手的最佳選擇！",[78,356,12,10],"Whisper",{"_path":358,"title":359,"description":360,"category":8,"tags":361},"\u002Farticles\u002Flottie","Text-To-Lottie 實測：用 AI Agent 本地生成與即時預覽 Lottie 動畫","本文介紹如何透過 Skia CanvasKit (Skottie) 搭配 React 與 shadcn\u002Fui 控制介面，讓本地 AI 代理直接編寫 lottie.json，並透過開發伺服器即時熱重載預覽動畫。",[117,29,10,55],{"_path":363,"title":364,"description":365,"category":8,"tags":366},"\u002Farticles\u002Fhermes-desktop","Nous Hermes Desktop 桌面版原生安裝與設定教學：跨平台 AI 助理與統一記憶體實測","Nous Research 旗下的 Hermes 智慧代理從終端機走向 GUI！本文帶您實測原生三平台桌面版，詳細拆解舊用戶一鍵搬遷步驟、API 供應商配置，以及如何串接 Telegram 與 Line 打造個人 AI 助理。",[117,29,10],{"_path":368,"title":369,"description":370,"category":254,"tags":371},"\u002Farticles\u002Fmineru","MinerU 實測：超強開源 PDF 與多格式文檔解析利器（macOS\u002FWindows\u002FLinux）","面臨複雜版面、掃描件或公式時，傳統 PDF 轉文字工具總是力不從心？開源框架 MinerU 結合佈局分析與視覺語言模型 (VLM)，能一鍵將 PDF、圖片及 Office 檔案轉換為精準的 Markdown、表格與 LaTeX 公式。本文實測線上 Web 版與本地 CLI\u002FAPI 部署流程。",[372,373,374,12,10],"PDF Parser","Markdown","OCR",{"_path":376,"title":377,"description":378,"category":10,"tags":379},"\u002Farticles\u002Fheadroom","Headroom 實測：AI Agent 的上下文壓縮層，節省高達 60–95% Token 成本","專為 AI Agent 設計的開源上下文優化工具 Headroom，整合多種壓縮演算法，支援本地逆向解壓 (CCR)，大幅降低 LLM 運算開銷並提升反應速度。",[10,380,13,381],"AI Agent","Context Optimization",{"_path":383,"title":384,"description":385,"category":53,"tags":386},"\u002Farticles\u002Ftegaki","Tegaki 手寫文字動畫庫安裝與實測：網頁手寫字動態特效輕鬆實現","想要在網頁中加入自然流暢的手寫字動畫嗎？Tegaki 是一個輕量且易用的 JavaScript 庫，能將任何字型轉換成手寫筆劃動畫。",[10,55,387,94],"Frontend",{"_path":389,"title":390,"description":391,"category":8,"tags":392},"\u002Farticles\u002Fccswitch2","CC Switch 延伸應用：手機遠端控制電腦與 Codex 增強模式實測","如何利用 CC Switch v3.16.1+ 獨家功能，在保留 Codex 官方行動端登入態與遠端操控能力的同時，將實際模型請求路由至 DeepSeek 等第三方 API？手把手帶你實現手機控制電腦的 AI Agent 體驗。",[117,30,31,393,13],"CC Switch",{"_path":395,"title":396,"description":397,"category":8,"tags":398},"\u002Farticles\u002Fccswitch","CC Switch 實測：自備 API Key 一鍵切換 AI CLI 模型的本機路由神器","在終端機使用 Claude Code 或 Codex 時，如何自由切換模型、自備 API Key 或使用 DeepSeek？本篇實測 CC Switch 路由工具，手把手教學如何代理 AI CLI 並進行花費與 MCP 管理。",[117,30,31,393,13],{"_path":400,"title":401,"description":402,"category":8,"tags":403},"\u002Farticles\u002Fremoverized","Removerized：離線可用的瀏覽器端 AI 去背與畫質增強工具","Removerized 讓你在瀏覽器中直接完成去背、放大與批次處理，資料不需上傳雲端，兼顧速度與隱私。",[117,37,12],{"_path":405,"title":406,"description":407,"category":8,"tags":408},"\u002Farticles\u002Fopen-design","Open Design 實測：用本地 CLI 快速做出作品集首頁","這次我把作品集首頁的大部分畫面交給 Open Design 處理。從選本地 Coding Agent、挑設計系統、輸入 brief，到生成設計稿與交付給 VS Code，整個流程比我預期順很多。",[409,96,55],"AI Design",{"_path":411,"title":412,"description":413,"category":254,"tags":414},"\u002Farticles\u002Fpot","Pot (派了個萌的翻譯器) 實測：最完美的跨平台劃詞翻譯與 OCR 工具","尋找一款流暢、不打斷工作流的翻譯工具？Pot 支援多譯文並行比對、精準的截圖 OCR 與豐富的翻譯\u002F大模型接口，是 macOS, Windows 與 Linux 用戶的極致效率利器。",[20,117,10],{"_path":416,"title":417,"description":418,"category":254,"tags":419},"\u002Farticles\u002Frtk","RTK 終端機 Token 殺手安裝與實測：省下 70% 以上 Claude Code 費用","RTK (Rust Token Killer) 是一個基於 Rust 的高效能 CLI 代理工具，能自動過濾與壓縮終端機輸出，為 AI 輔助開發節省 60-90% 的 Token 消耗。",[29,30,20,14],{"_path":421,"title":422,"description":423,"category":254,"tags":424},"\u002Farticles\u002Ffreedomain","Digiplat 免費 DNS 二級域名申請與 Cloudflare 解析配置教學","想將個人專案或測試網站部署上線，卻不想花錢購買網域？本文將教你如何使用 Digiplat 免費申請包含 .US.KG、.DPDNS.ORG 等多種後綴的免費二級域名。",[55],{"_path":426,"title":427,"description":428,"category":8,"tags":429},"\u002Farticles\u002Fmodly","Modly 本地端 AI 圖像轉 3D 網格生成工具安裝與實測","想將 2D 圖片快速轉換為高精度的 3D 模型，又不想付費或將隱私上傳雲端？Modly 讓你在本機 GPU 上直接進行 AI 3D 生成。",[117,95,10,12],{"_path":431,"title":432,"description":433,"category":53,"tags":434},"\u002Farticles\u002Fopenvid","OpenVid 瀏覽器免安裝產品 Demo 錄影與 3D 鏡頭後製工具教學","想要為你的產品錄製精美的演示影片？OpenVid 讓你直接在瀏覽器中套用 3D 鏡頭、縮放與精美背景，一鍵導出高質感的 Demo 影片。",[10,55,43],{"_path":436,"title":437,"description":438,"category":8,"tags":439},"\u002Farticles\u002Fomnivoice","OmniVoice Studio 本地端 AI 影音配音工具實測與 macOS 安裝避坑指南","最近測試了開源版 ElevenLabs + HeyGen：OmniVoice Studio。它支援 646 種語言、本地自動影片配音，且連 Mac mini 都跑得動！本文分享實測心得、macOS 隔離區排除教學，以及繁中\u002F簡中輸入產生的語音對比。",[117,78],{"_path":441,"title":442,"description":443,"category":23,"tags":444},"\u002Farticles\u002Fshannon","Shannon AI Pentest Agent 安裝與實測指南（macOS\u002FLinux）","我用 10 個 AI agents 打自己的網站，2 小時後交出完整資安報告。Shannon 比我想像的成熟。",[29,23,21],{"_path":446,"title":447,"description":448,"category":53,"tags":449},"\u002Farticles\u002Fpretext","Pretext 高效多行文字 Canvas 排版庫優化與防 DOM 重繪技術","想精準計算段落高度、做出更自由的文字排版，卻不想一直碰 getBoundingClientRect？Pretext 提供了一條很聰明的路。",[55,387,94],{"_path":451,"title":452,"description":453,"category":254,"tags":454},"\u002Farticles\u002Faltsendme","AltSendme 跨平台 P2P 極速檔案互傳工具免伺服器部署指南","不用雲端、不用註冊，Windows 與 macOS 直接對傳。",[117,22,20],{"_path":456,"title":457,"description":458,"category":53,"tags":459},"\u002Farticles\u002Fdeckgl","Deck.gl 大規模 3D 地理數據視覺化框架與 MapLibre 整合實戰","想要在網頁上渲染數以萬計的數據點，同時保持流暢的 3D 互動？Deck.gl 是處理地理空間資料視覺化的絕佳利器。",[95,55,249,94],{"_path":461,"title":462,"description":463,"category":254,"tags":464},"\u002Farticles\u002Fantigravity-manager","Antigravity Manager 管理工具安裝教學：多帳號與 Token 額度即時監控","如果你只在意兩件事：配額看得清楚、帳號切得快速，Antigravity Manager 其實就很值得裝。",[117,20,11],{"_path":466,"title":467,"description":468,"category":10,"tags":469},"\u002Farticles\u002Fvideolingo","VideoLingo 本地 AI 影片翻譯字幕與中文配音工具部署指南","我實測了 VideoLingo，從原始影片到中文字幕與中配影片都能自動化完成。這篇整理功能、實際效果和我建議的模型設定。",[10,43,78,117],{"_path":471,"title":472,"description":473,"category":254,"tags":474},"\u002Farticles\u002Farnis","Arnis 地理 GIS 數據轉換工具安裝與 Minecraft 3D 真實地圖生成實戰","如果你曾經想過把自己的家鄉、城市甚至整片地形直接生成到 Minecraft 裡，Arnis 真的很誇張。",[10,21],{"_path":476,"title":477,"description":478,"category":10,"tags":479},"\u002Farticles\u002Flog-lottery-tw","log-lottery 開源網頁抽獎系統自定義配置與尾牙活動實用部署","支援自訂名單、獎項、圖片、背景與音樂的開源抽獎工具。我也整理了繁體中文版本，部署後打開瀏覽器就能直接使用。",[10,55,387],{"_path":481,"title":482,"description":483,"category":8,"tags":484},"\u002Farticles\u002Fhermes-hyperframes-self-intro-video","Hermes Agent x HyperFrames 實戰：AI 助理自介影片自動生成指南","叫 Hermes 自己拍一支自我介紹影片。從文案發想、HTML 動畫編寫、到渲染輸出 MP4 全部自動化。HyperFrames 是什麼？為什麼比 Remotion 更適合 AI Agent？",[29,43,21],{"_path":486,"title":487,"description":488,"category":8,"tags":489},"\u002Farticles\u002Fhermes-deepseek-v4","DeepSeek V4 Pro x Hermes Agent 自動寫自我介紹評測與部署指南","我叫 Hermes 自己寫這篇。1M context、0.87 鎂\u002F百萬 token、跨平台部署、自主截圖寫文 git push。這篇文章由 AI 從研究到發布全部自己來。",[29,13,21],{"_path":491,"title":492,"description":493,"category":254,"tags":494},"\u002Farticles\u002Fbarkod","Barkod Studio 個性化條碼與發票載具圖樣生成器安裝與設計指南","全網頁版免安裝，高質感自訂樣式。結帳時拿出鯊魚或大便造型載具，絕對是全場焦點。",[55,387,94],{"_path":496,"title":497,"description":498,"category":254,"tags":499},"\u002Farticles\u002Fstacher","Stacher 萬能影音下載器安裝教學與 yt-dlp GUI 圖形化配置指南","告別繁瑣的指令，yt-dlp 最強圖形化介面，4K 影片、音樂下載一次搞定！",[117,43],{"_path":501,"title":502,"description":503,"category":254,"tags":504},"\u002Farticles\u002Fpetdex","Petdex 點陣圖桌面電子寵物安裝指南：讓開發環境更有趣","一行 npx 指令秒裝，完全免註冊登入，給工程師帶來滿滿的心靈祥和！",[117,11],{"_path":506,"title":507,"description":508,"category":53,"tags":509},"\u002Farticles\u002Fcobe","Cobe 輕量 WebGL 地球儀配置教學與 Vue 專案整合指南","想要在網頁上放一個酷炫的 3D 地球，但又不想載入沉重的 Three.js？COBE 是你的最佳選擇。",[95,55,387,94],{"_path":511,"title":512,"description":513,"category":10,"tags":514},"\u002Farticles\u002Fsupercmd","SuperCmd 開源 Mac 快捷啟動器安裝與自定義指令配置指南","整合 Raycast 擴充、語音輸入與 AI 助手，這款開源工具能成為你的新寵嗎？",[10,20],{"_path":516,"title":517,"description":518,"category":519,"tags":520},"\u002Farticles\u002Fopenstock","OpenStock 開源股票市場回測系統安裝與 AI 策略整合教學","OpenStock 是一個由社群驅動的開源股票平台，昂貴的市場的平替工具。","AI & Finance",[10,521,133],"FinTech",{"_path":523,"title":524,"description":525,"category":8,"tags":526},"\u002Farticles\u002Fworld-monitor","World Monitor 全球即時情報監控系統本地部署與 AI 分析流整合教學","這是一篇關於 World Monitor 的深度介紹。從本地端快速部署到整合 AI 分析，教你如何打造一個包含地緣政治、軍事、金融與基礎設施的即時監控平台。",[117,22,133],{"_path":528,"title":529,"description":530,"category":8,"tags":531},"\u002Farticles\u002Fpi-mono-coding-agent","Pi Coding Agent 輕量級終端機 AI 助手安裝與工作流實戰","如果你覺得市面上的 AI 開發工具太過笨重，或是強迫你改變習慣，那你一定要試試完全由你掌控的 Pi。",[29,11],{"_path":533,"title":534,"description":535,"category":8,"tags":536},"\u002Farticles\u002Fwarp-terminal-ux-revolution","Warp Terminal 新一代 IDE 級智慧終端機安裝與開發效率優化配置","從可視化補全、滑鼠編輯到 Blocks 區塊輸出，Warp 正在把傳統終端機那套難用又反直覺的體驗，整個翻新。",[11,20],{"_path":538,"title":539,"description":540,"category":8,"tags":541},"\u002Farticles\u002Fvoicebox-local-ai-voice-studio","Voicebox 本地端 AI 語音工作室安裝指南與核心配置教學","這是一篇針對開發者設計的 Voicebox 指南。從 macOS\u002FWindows 安裝到 Voice Cloning 實作，並教你如何透過 MCP 讓 AI Agent 開口說話。",[117,78,21],{"_path":543,"title":544,"description":545,"category":8,"tags":546},"\u002Farticles\u002Fnvidia-nim-free-api","NVIDIA NIM 免費 DeepSeek-V4-Pro API 申請與多框架整合指南","不綁信用卡、沒有試用期！教你如何透過 NVIDIA NIM 無痛串接剛上市的最強開源模型 DeepSeek-V4-Pro 與 Flash 版本。",[117,13],{"_path":64,"_dir":548,"_draft":549,"_partial":549,"_locale":550,"title":65,"description":66,"date":551,"updated":551,"category":8,"image":552,"tags":553,"series":554,"readingTime":555,"difficulty":556,"local":557,"platforms":558,"gpu":563,"draft":549,"body":564,"_type":1350,"_id":1351,"_source":1352,"_file":1353,"_stem":1354,"_extension":1355},"articles",false,"","2026-08-07","\u002Fimages\u002Fvideo-posters\u002Fday_assets\u002Fwitr\u002Fwitr-demo.jpg",[10,11,22,20],"github-tech","6 min read","Easy",true,[559,560,561,562],"macOS","Linux","Windows","FreeBSD","None",{"type":565,"children":566,"toc":1340},"root",[567,575,590,630,635,669,678,683,689,715,728,733,739,751,784,789,809,814,820,825,850,863,887,922,930,935,948,954,966,1014,1027,1035,1040,1045,1050,1069,1074,1102,1107,1136,1141,1168,1173,1215,1243,1249,1254,1259,1277,1283,1295,1308,1329,1334],{"type":568,"tag":569,"props":570,"children":572},"element","h2",{"id":571},"前言",[573],{"type":574,"value":571},"text",{"type":568,"tag":576,"props":577,"children":578},"p",{},[579,581,588],{"type":574,"value":580},"開發時遇到 Port 被占用，我以前通常就是先跑 ",{"type":568,"tag":582,"props":583,"children":585},"code",{"className":584},[],[586],{"type":574,"value":587},"lsof -i :5173",{"type":574,"value":589},"，找到 PID，再回頭猜這個程序是從哪裡冒出來的。查得到「誰在跑」不難，麻煩的是後面那句：它到底為什麼會在這裡？",{"type":568,"tag":576,"props":591,"children":592},{},[593,595,604,606,612,614,620,622,628],{"type":574,"value":594},"這次看到 ",{"type":568,"tag":596,"props":597,"children":601},"a",{"href":598,"rel":599},"https:\u002F\u002Fgithub.com\u002Fpranshuparmar\u002Fwitr",[600],"nofollow",[602],{"type":574,"value":603},"witr",{"type":574,"value":605},"，名字就是「Why is this running?」的縮寫。我先在自己的 Mac 開一個 Node 服務占住 ",{"type":568,"tag":582,"props":607,"children":609},{"className":608},[],[610],{"type":574,"value":611},"5173",{"type":574,"value":613},"，接著執行 ",{"type":568,"tag":582,"props":615,"children":617},{"className":616},[],[618],{"type":574,"value":619},"witr --port 5173",{"type":574,"value":621},"。它不只抓到 Node，連 ",{"type":568,"tag":582,"props":623,"children":625},{"className":624},[],[626],{"type":574,"value":627},"launchd → ChatGPT → codex → zsh → node",{"type":574,"value":629}," 這條啟動鏈都列了出來。",{"type":568,"tag":631,"props":632,"children":634},"fullscreen-video",{"src":633},"\u002Fday_assets\u002Fwitr\u002Fwitr-demo.mp4",[],{"type":568,"tag":636,"props":637,"children":638},"ul",{},[639,649,659],{"type":568,"tag":640,"props":641,"children":642},"li",{},[643],{"type":568,"tag":596,"props":644,"children":646},{"href":598,"rel":645},[600],[647],{"type":574,"value":648},"witr GitHub 專案",{"type":568,"tag":640,"props":650,"children":651},{},[652],{"type":568,"tag":596,"props":653,"children":656},{"href":654,"rel":655},"https:\u002F\u002Fgithub.com\u002Fpranshuparmar\u002Fwitr\u002Freleases",[600],[657],{"type":574,"value":658},"witr 官方 Releases",{"type":568,"tag":640,"props":660,"children":661},{},[662],{"type":568,"tag":596,"props":663,"children":666},{"href":664,"rel":665},"https:\u002F\u002Fpranshuparmar.github.io\u002Fwitr\u002F",[600],[667],{"type":574,"value":668},"witr 瀏覽器 Playground",{"type":568,"tag":576,"props":670,"children":671},{},[672],{"type":568,"tag":673,"props":674,"children":677},"img",{"alt":675,"src":676},"witr Processes TUI 顯示程序清單與啟動鏈，右下角敏感參數值已模糊","\u002Fday_assets\u002Fwitr\u002Fwitr-processes.png",[],{"type":568,"tag":576,"props":679,"children":680},{},[681],{"type":574,"value":682},"影片只在終端機帳號與私人工作路徑上做了小範圍柔焦，Port、PID、程序名稱、啟動鏈和一般網路資訊都保留。第一張圖右下角原本還有啟動參數的 PIN 與 Key，所以只有那兩個值一定得遮；witr 真的會挖出不少本機資訊，公開截圖前還是要多看一次。",{"type":568,"tag":569,"props":684,"children":686},{"id":685},"它和-lsofps-差在哪裡",[687],{"type":574,"value":688},"它和 lsof、ps 差在哪裡？",{"type":568,"tag":576,"props":690,"children":691},{},[692,698,700,706,707,713],{"type":568,"tag":582,"props":693,"children":695},{"className":694},[],[696],{"type":574,"value":697},"ps",{"type":574,"value":699},"、",{"type":568,"tag":582,"props":701,"children":703},{"className":702},[],[704],{"type":574,"value":705},"top",{"type":574,"value":699},{"type":568,"tag":582,"props":708,"children":710},{"className":709},[],[711],{"type":574,"value":712},"lsof",{"type":574,"value":714}," 和系統監視工具都能告訴我目前有哪些程序、誰占用了 Port。witr 的重點不是把這些工具再做一次，而是把散在不同地方的資訊串成原因。",{"type":568,"tag":576,"props":716,"children":717},{},[718,720,726],{"type":574,"value":719},"查一個 Port 時，它會先找到對應 PID，再往上追父程序、啟動服務、Shell 或容器。最後整理出程序名稱、使用者、完整指令、啟動時間、工作目錄、Git 儲存庫和 Socket。看到 ",{"type":568,"tag":582,"props":721,"children":723},{"className":722},[],[724],{"type":574,"value":725},"Why It Exists",{"type":574,"value":727}," 那一行，就不用自己拿著 PID 到處對答案。",{"type":568,"tag":576,"props":729,"children":730},{},[731],{"type":574,"value":732},"它目前是 Apache-2.0 授權的開源專案，支援 macOS、Linux、Windows 與 FreeBSD。我這次在 Mac 使用的是 v0.3.3，也是官方 Releases 目前列出的最新版。",{"type":568,"tag":569,"props":734,"children":736},{"id":735},"mac-安裝最簡單",[737],{"type":574,"value":738},"Mac 安裝最簡單",{"type":568,"tag":576,"props":740,"children":741},{},[742,744,749],{"type":574,"value":743},"完整版本與其他平台的安裝檔都在 ",{"type":568,"tag":596,"props":745,"children":747},{"href":654,"rel":746},[600],[748],{"type":574,"value":658},{"type":574,"value":750},"。Mac 有 Homebrew 的話，直接一行就能裝：",{"type":568,"tag":752,"props":753,"children":757},"pre",{"className":754,"code":755,"language":756,"meta":550,"style":550},"language-bash shiki shiki-themes one-dark-pro","brew install witr\n","bash",[758],{"type":568,"tag":582,"props":759,"children":760},{"__ignoreMap":550},[761],{"type":568,"tag":762,"props":763,"children":766},"span",{"class":764,"line":765},"line",1,[767,773,779],{"type":568,"tag":762,"props":768,"children":770},{"style":769},"--shiki-default:#61AFEF",[771],{"type":574,"value":772},"brew",{"type":568,"tag":762,"props":774,"children":776},{"style":775},"--shiki-default:#98C379",[777],{"type":574,"value":778}," install",{"type":568,"tag":762,"props":780,"children":781},{"style":775},[782],{"type":574,"value":783}," witr\n",{"type":568,"tag":576,"props":785,"children":786},{},[787],{"type":574,"value":788},"安裝完成先確認版本：",{"type":568,"tag":752,"props":790,"children":792},{"className":754,"code":791,"language":756,"meta":550,"style":550},"witr --version\n",[793],{"type":568,"tag":582,"props":794,"children":795},{"__ignoreMap":550},[796],{"type":568,"tag":762,"props":797,"children":798},{"class":764,"line":765},[799,803],{"type":568,"tag":762,"props":800,"children":801},{"style":769},[802],{"type":574,"value":603},{"type":568,"tag":762,"props":804,"children":806},{"style":805},"--shiki-default:#D19A66",[807],{"type":574,"value":808}," --version\n",{"type":568,"tag":576,"props":810,"children":811},{},[812],{"type":574,"value":813},"Windows 可以用 Winget，Linux 也有 APT、安裝腳本和其他套件管理器。官方 README 列的方法很多，我覺得沒必要全部抄一遍；到 Releases 或 README 選自己原本就在用的安裝方式就好。",{"type":568,"tag":569,"props":815,"children":817},{"id":816},"我先故意占住-5173-port",[818],{"type":574,"value":819},"我先故意占住 5173 Port",{"type":568,"tag":576,"props":821,"children":822},{},[823],{"type":574,"value":824},"為了讓結果比較好懂，我先在本機啟動一個很小的 Node HTTP Server：",{"type":568,"tag":752,"props":826,"children":828},{"className":754,"code":827,"language":756,"meta":550,"style":550},"node -e 'require(\"http\").createServer((req,res)=>{res.end(\"witr demo\\n\")}).listen(5173,\"127.0.0.1\")'\n",[829],{"type":568,"tag":582,"props":830,"children":831},{"__ignoreMap":550},[832],{"type":568,"tag":762,"props":833,"children":834},{"class":764,"line":765},[835,840,845],{"type":568,"tag":762,"props":836,"children":837},{"style":769},[838],{"type":574,"value":839},"node",{"type":568,"tag":762,"props":841,"children":842},{"style":805},[843],{"type":574,"value":844}," -e",{"type":568,"tag":762,"props":846,"children":847},{"style":775},[848],{"type":574,"value":849}," 'require(\"http\").createServer((req,res)=>{res.end(\"witr demo\\n\")}).listen(5173,\"127.0.0.1\")'\n",{"type":568,"tag":576,"props":851,"children":852},{},[853,855,861],{"type":574,"value":854},"這個服務會一直占用 ",{"type":568,"tag":582,"props":856,"children":858},{"className":857},[],[859],{"type":574,"value":860},"127.0.0.1:5173",{"type":574,"value":862},"。接著另外開一個終端機執行：",{"type":568,"tag":752,"props":864,"children":866},{"className":754,"code":865,"language":756,"meta":550,"style":550},"witr --port 5173\n",[867],{"type":568,"tag":582,"props":868,"children":869},{"__ignoreMap":550},[870],{"type":568,"tag":762,"props":871,"children":872},{"class":764,"line":765},[873,877,882],{"type":568,"tag":762,"props":874,"children":875},{"style":769},[876],{"type":574,"value":603},{"type":568,"tag":762,"props":878,"children":879},{"style":805},[880],{"type":574,"value":881}," --port",{"type":568,"tag":762,"props":883,"children":884},{"style":805},[885],{"type":574,"value":886}," 5173\n",{"type":568,"tag":576,"props":888,"children":889},{},[890,892,897,899,904,906,912,914,920],{"type":574,"value":891},"我的結果直接顯示 Target 是 ",{"type":568,"tag":582,"props":893,"children":895},{"className":894},[],[896],{"type":574,"value":839},{"type":574,"value":898},"，Socket 正在監聽 ",{"type":568,"tag":582,"props":900,"children":902},{"className":901},[],[903],{"type":574,"value":860},{"type":574,"value":905},"，來源是 ",{"type":568,"tag":582,"props":907,"children":909},{"className":908},[],[910],{"type":574,"value":911},"zsh",{"type":574,"value":913},"。最有意思的是啟動鏈一路往上追到 ",{"type":568,"tag":582,"props":915,"children":917},{"className":916},[],[918],{"type":574,"value":919},"launchd",{"type":574,"value":921},"，中間經過 ChatGPT、Codex 和 zsh，最後才是實際占用 Port 的 Node 程序。",{"type":568,"tag":576,"props":923,"children":924},{},[925],{"type":568,"tag":673,"props":926,"children":929},{"alt":927,"src":928},"使用 witr --port 5173 找到 Node 程序、啟動鏈與監聽中的 Socket","\u002Fday_assets\u002Fwitr\u002Fwitr-port-trace.png",[],{"type":568,"tag":576,"props":931,"children":932},{},[933],{"type":574,"value":934},"這剛好就是我想看的東西。如果只是想關掉 Port，拿到 PID 就夠了；但碰到背景服務、開發伺服器或容器自己重啟，知道誰把它叫起來，才比較不會殺完一次又再出現。",{"type":568,"tag":576,"props":936,"children":937},{},[938,940,946],{"type":574,"value":939},"測完記得回到原本執行 Node 的終端機按 ",{"type":568,"tag":582,"props":941,"children":943},{"className":942},[],[944],{"type":574,"value":945},"Control + C",{"type":574,"value":947},"。不要為了清 Port 直接亂殺不認識的系統程序。",{"type":568,"tag":569,"props":949,"children":951},{"id":950},"不加參數就是完整-tui",[952],{"type":574,"value":953},"不加參數就是完整 TUI",{"type":568,"tag":576,"props":955,"children":956},{},[957,959,964],{"type":574,"value":958},"直接執行 ",{"type":568,"tag":582,"props":960,"children":962},{"className":961},[],[963],{"type":574,"value":603},{"type":574,"value":965},"，會打開終端機互動介面。上方分成四頁：",{"type":568,"tag":967,"props":968,"children":969},"ol",{},[970,981,992,1003],{"type":568,"tag":640,"props":971,"children":972},{},[973,979],{"type":568,"tag":582,"props":974,"children":976},{"className":975},[],[977],{"type":574,"value":978},"Processes",{"type":574,"value":980},"：程序清單、CPU、記憶體和啟動鏈。",{"type":568,"tag":640,"props":982,"children":983},{},[984,990],{"type":568,"tag":582,"props":985,"children":987},{"className":986},[],[988],{"type":574,"value":989},"Ports",{"type":574,"value":991},"：目前監聽中的 Port 與擁有它的程序。",{"type":568,"tag":640,"props":993,"children":994},{},[995,1001],{"type":568,"tag":582,"props":996,"children":998},{"className":997},[],[999],{"type":574,"value":1000},"Containers",{"type":574,"value":1002},"：Docker、Podman、Kubernetes 等容器資訊。",{"type":568,"tag":640,"props":1004,"children":1005},{},[1006,1012],{"type":568,"tag":582,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":574,"value":1011},"Locks",{"type":574,"value":1013},"：檔案鎖與開啟中的檔案。",{"type":568,"tag":576,"props":1015,"children":1016},{},[1017,1019,1025],{"type":574,"value":1018},"可以用方向鍵移動、Enter 看詳細資料，也能按 ",{"type":568,"tag":582,"props":1020,"children":1022},{"className":1021},[],[1023],{"type":574,"value":1024},"\u002F",{"type":574,"value":1026}," 搜尋。我這台 Mac 當時一次列出五百多個程序，直接滑其實有點多；如果已經知道 Port 或 PID，我還是比較喜歡從精準指令開始。TUI 適合不知道問題在哪裡，想先掃一遍整台機器的時候。",{"type":568,"tag":576,"props":1028,"children":1029},{},[1030],{"type":568,"tag":673,"props":1031,"children":1034},{"alt":1032,"src":1033},"witr 程序詳細頁顯示啟動來源、Socket、資源用量與環境變數","\u002Fday_assets\u002Fwitr\u002Fwitr-process-detail.png",[],{"type":568,"tag":576,"props":1036,"children":1037},{},[1038],{"type":574,"value":1039},"Unix 系統還能在介面裡對程序送出 Kill、Terminate、Pause、Resume 或調整優先權。這些動作真的會影響程序，不確定用途就先查，不要把 TUI 當工作管理員一路結束。",{"type":568,"tag":569,"props":1041,"children":1043},{"id":1042},"幾個我覺得最實用的查法",[1044],{"type":574,"value":1042},{"type":568,"tag":576,"props":1046,"children":1047},{},[1048],{"type":574,"value":1049},"查程序名稱：",{"type":568,"tag":752,"props":1051,"children":1053},{"className":754,"code":1052,"language":756,"meta":550,"style":550},"witr node\n",[1054],{"type":568,"tag":582,"props":1055,"children":1056},{"__ignoreMap":550},[1057],{"type":568,"tag":762,"props":1058,"children":1059},{"class":764,"line":765},[1060,1064],{"type":568,"tag":762,"props":1061,"children":1062},{"style":769},[1063],{"type":574,"value":603},{"type":568,"tag":762,"props":1065,"children":1066},{"style":775},[1067],{"type":574,"value":1068}," node\n",{"type":568,"tag":576,"props":1070,"children":1071},{},[1072],{"type":574,"value":1073},"只看一行啟動鏈：",{"type":568,"tag":752,"props":1075,"children":1077},{"className":754,"code":1076,"language":756,"meta":550,"style":550},"witr --port 5173 --short\n",[1078],{"type":568,"tag":582,"props":1079,"children":1080},{"__ignoreMap":550},[1081],{"type":568,"tag":762,"props":1082,"children":1083},{"class":764,"line":765},[1084,1088,1092,1097],{"type":568,"tag":762,"props":1085,"children":1086},{"style":769},[1087],{"type":574,"value":603},{"type":568,"tag":762,"props":1089,"children":1090},{"style":805},[1091],{"type":574,"value":881},{"type":568,"tag":762,"props":1093,"children":1094},{"style":805},[1095],{"type":574,"value":1096}," 5173",{"type":568,"tag":762,"props":1098,"children":1099},{"style":805},[1100],{"type":574,"value":1101}," --short\n",{"type":568,"tag":576,"props":1103,"children":1104},{},[1105],{"type":574,"value":1106},"用樹狀方式看父子程序：",{"type":568,"tag":752,"props":1108,"children":1110},{"className":754,"code":1109,"language":756,"meta":550,"style":550},"witr --pid 12345 --tree\n",[1111],{"type":568,"tag":582,"props":1112,"children":1113},{"__ignoreMap":550},[1114],{"type":568,"tag":762,"props":1115,"children":1116},{"class":764,"line":765},[1117,1121,1126,1131],{"type":568,"tag":762,"props":1118,"children":1119},{"style":769},[1120],{"type":574,"value":603},{"type":568,"tag":762,"props":1122,"children":1123},{"style":805},[1124],{"type":574,"value":1125}," --pid",{"type":568,"tag":762,"props":1127,"children":1128},{"style":805},[1129],{"type":574,"value":1130}," 12345",{"type":568,"tag":762,"props":1132,"children":1133},{"style":805},[1134],{"type":574,"value":1135}," --tree\n",{"type":568,"tag":576,"props":1137,"children":1138},{},[1139],{"type":574,"value":1140},"需要交給其他程式處理時，可以輸出 JSON：",{"type":568,"tag":752,"props":1142,"children":1144},{"className":754,"code":1143,"language":756,"meta":550,"style":550},"witr --port 5173 --json\n",[1145],{"type":568,"tag":582,"props":1146,"children":1147},{"__ignoreMap":550},[1148],{"type":568,"tag":762,"props":1149,"children":1150},{"class":764,"line":765},[1151,1155,1159,1163],{"type":568,"tag":762,"props":1152,"children":1153},{"style":769},[1154],{"type":574,"value":603},{"type":568,"tag":762,"props":1156,"children":1157},{"style":805},[1158],{"type":574,"value":881},{"type":568,"tag":762,"props":1160,"children":1161},{"style":805},[1162],{"type":574,"value":1096},{"type":568,"tag":762,"props":1164,"children":1165},{"style":805},[1166],{"type":574,"value":1167}," --json\n",{"type":568,"tag":576,"props":1169,"children":1170},{},[1171],{"type":574,"value":1172},"它也能從檔案與容器往回查：",{"type":568,"tag":752,"props":1174,"children":1176},{"className":754,"code":1175,"language":756,"meta":550,"style":550},"witr --file \u002Fpath\u002Fto\u002Flocked-file\nwitr --container redis\n",[1177],{"type":568,"tag":582,"props":1178,"children":1179},{"__ignoreMap":550},[1180,1197],{"type":568,"tag":762,"props":1181,"children":1182},{"class":764,"line":765},[1183,1187,1192],{"type":568,"tag":762,"props":1184,"children":1185},{"style":769},[1186],{"type":574,"value":603},{"type":568,"tag":762,"props":1188,"children":1189},{"style":805},[1190],{"type":574,"value":1191}," --file",{"type":568,"tag":762,"props":1193,"children":1194},{"style":775},[1195],{"type":574,"value":1196}," \u002Fpath\u002Fto\u002Flocked-file\n",{"type":568,"tag":762,"props":1198,"children":1200},{"class":764,"line":1199},2,[1201,1205,1210],{"type":568,"tag":762,"props":1202,"children":1203},{"style":769},[1204],{"type":574,"value":603},{"type":568,"tag":762,"props":1206,"children":1207},{"style":805},[1208],{"type":574,"value":1209}," --container",{"type":568,"tag":762,"props":1211,"children":1212},{"style":775},[1213],{"type":574,"value":1214}," redis\n",{"type":568,"tag":576,"props":1216,"children":1217},{},[1218,1220,1226,1227,1233,1235,1241],{"type":574,"value":1219},"同一個查詢後面還能加上 ",{"type":568,"tag":582,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":574,"value":1225},"--verbose",{"type":574,"value":699},{"type":568,"tag":582,"props":1228,"children":1230},{"className":1229},[],[1231],{"type":574,"value":1232},"--env",{"type":574,"value":1234}," 或 ",{"type":568,"tag":582,"props":1236,"children":1238},{"className":1237},[],[1239],{"type":574,"value":1240},"--warnings",{"type":574,"value":1242},"。平常我不會一開始就把環境變數全印出來，先看一般輸出，缺什麼再加參數，畫面比較不會被資訊塞滿。",{"type":568,"tag":569,"props":1244,"children":1246},{"id":1245},"截圖或貼-log-前先把敏感資訊遮掉",[1247],{"type":574,"value":1248},"截圖或貼 Log 前，先把敏感資訊遮掉",{"type":568,"tag":576,"props":1250,"children":1251},{},[1252],{"type":574,"value":1253},"這次整理素材時，我原本也覺得只是程序清單，應該沒什麼好藏。真的放大檢查才發現，畫面裡有本機帳號、完整磁碟路徑、Git 分支、區網 IP、遠端連線位址和環境變數。某些程序的完整 Command 甚至可能帶著 Token、PIN 或其他啟動參數。",{"type":568,"tag":576,"props":1255,"children":1256},{},[1257],{"type":574,"value":1258},"這次我沒有把整個使用者欄位或詳細面板蓋掉，因為那樣連工具在做什麼都看不到。真正一定要處理的是第一張圖右下角的 PIN 與 Key；影片則只柔焦終端機帳號、工作目錄與 Git 路徑，其他對理解功能有幫助的內容都保留。",{"type":568,"tag":576,"props":1260,"children":1261},{},[1262,1264,1269,1270,1275],{"type":574,"value":1263},"witr 是拿來調查自己電腦的工具，但它輸出的內容不等於適合直接貼到網路。尤其使用 ",{"type":568,"tag":582,"props":1265,"children":1267},{"className":1266},[],[1268],{"type":574,"value":1232},{"type":574,"value":699},{"type":568,"tag":582,"props":1271,"children":1273},{"className":1272},[],[1274],{"type":574,"value":1225},{"type":574,"value":1276},"，或打開 TUI 詳細頁時，公開前最好把整張圖重新看過一次。",{"type":568,"tag":569,"props":1278,"children":1280},{"id":1279},"我會在什麼時候用它",[1281],{"type":574,"value":1282},"我會在什麼時候用它？",{"type":568,"tag":576,"props":1284,"children":1285},{},[1286,1288,1293],{"type":574,"value":1287},"如果只是偶爾查一次 Port，",{"type":568,"tag":582,"props":1289,"children":1291},{"className":1290},[],[1292],{"type":574,"value":712},{"type":574,"value":1294}," 當然還是很快，我不會為了每個 PID 都硬換工具。witr 比較適合我已經找到程序，卻還想知道它是從 Shell、服務、容器還是其他工具啟動的時候。",{"type":568,"tag":576,"props":1296,"children":1297},{},[1298,1300,1306],{"type":574,"value":1299},"下次再看到 ",{"type":568,"tag":582,"props":1301,"children":1303},{"className":1302},[],[1304],{"type":574,"value":1305},"EADDRINUSE",{"type":574,"value":1307},"，我會先跑：",{"type":568,"tag":752,"props":1309,"children":1310},{"className":754,"code":865,"language":756,"meta":550,"style":550},[1311],{"type":568,"tag":582,"props":1312,"children":1313},{"__ignoreMap":550},[1314],{"type":568,"tag":762,"props":1315,"children":1316},{"class":764,"line":765},[1317,1321,1325],{"type":568,"tag":762,"props":1318,"children":1319},{"style":769},[1320],{"type":574,"value":603},{"type":568,"tag":762,"props":1322,"children":1323},{"style":805},[1324],{"type":574,"value":881},{"type":568,"tag":762,"props":1326,"children":1327},{"style":805},[1328],{"type":574,"value":886},{"type":568,"tag":576,"props":1330,"children":1331},{},[1332],{"type":574,"value":1333},"至少不用停在「Node 占用了 Port」這一步，後面的啟動來源也一起有答案。",{"type":568,"tag":1335,"props":1336,"children":1337},"style",{},[1338],{"type":574,"value":1339},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":550,"searchDepth":1199,"depth":1199,"links":1341},[1342,1343,1344,1345,1346,1347,1348,1349],{"id":571,"depth":1199,"text":571},{"id":685,"depth":1199,"text":688},{"id":735,"depth":1199,"text":738},{"id":816,"depth":1199,"text":819},{"id":950,"depth":1199,"text":953},{"id":1042,"depth":1199,"text":1042},{"id":1245,"depth":1199,"text":1248},{"id":1279,"depth":1199,"text":1282},"markdown","content:articles:witr.md","content","articles\u002Fwitr.md","articles\u002Fwitr","md",[1357,1361,1364],{"_path":16,"title":17,"description":18,"date":1358,"category":8,"tags":1359,"score":1360},"2026-08-19",[10,20,21,22,23],3,{"_path":25,"title":26,"description":27,"date":1362,"category":8,"tags":1363,"score":1360},"2026-08-18",[29,30,31,11,20,22],{"_path":39,"title":40,"description":41,"date":1365,"category":8,"tags":1366,"score":1360},"2026-08-13",[10,11,43,21,20],[1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467],{"_path":5,"title":6},{"_path":16,"title":17},{"_path":25,"title":26},{"_path":33,"title":34},{"_path":39,"title":40},{"_path":45,"title":46},{"_path":50,"title":51},{"_path":59,"title":60},{"_path":64,"title":65},{"_path":69,"title":70},{"_path":74,"title":75},{"_path":80,"title":81},{"_path":85,"title":86},{"_path":90,"title":91},{"_path":98,"title":99},{"_path":103,"title":104},{"_path":108,"title":109},{"_path":113,"title":114},{"_path":119,"title":120},{"_path":124,"title":125},{"_path":129,"title":130},{"_path":135,"title":136},{"_path":140,"title":141},{"_path":145,"title":146},{"_path":150,"title":151},{"_path":155,"title":156},{"_path":160,"title":161},{"_path":165,"title":166},{"_path":170,"title":171},{"_path":175,"title":176},{"_path":180,"title":181},{"_path":185,"title":186},{"_path":190,"title":191},{"_path":195,"title":196},{"_path":200,"title":201},{"_path":205,"title":206},{"_path":210,"title":211},{"_path":215,"title":216},{"_path":220,"title":221},{"_path":225,"title":226},{"_path":230,"title":231},{"_path":235,"title":236},{"_path":240,"title":241},{"_path":245,"title":246},{"_path":251,"title":252},{"_path":257,"title":258},{"_path":262,"title":263},{"_path":267,"title":268},{"_path":272,"title":273},{"_path":277,"title":278},{"_path":282,"title":283},{"_path":287,"title":288},{"_path":292,"title":293},{"_path":297,"title":298},{"_path":302,"title":303},{"_path":307,"title":308},{"_path":312,"title":313},{"_path":317,"title":318},{"_path":322,"title":323},{"_path":327,"title":328},{"_path":332,"title":333},{"_path":342,"title":343},{"_path":347,"title":348},{"_path":352,"title":353},{"_path":358,"title":359},{"_path":363,"title":364},{"_path":368,"title":369},{"_path":376,"title":377},{"_path":383,"title":384},{"_path":389,"title":390},{"_path":395,"title":396},{"_path":400,"title":401},{"_path":405,"title":406},{"_path":411,"title":412},{"_path":416,"title":417},{"_path":421,"title":422},{"_path":426,"title":427},{"_path":431,"title":432},{"_path":436,"title":437},{"_path":441,"title":442},{"_path":446,"title":447},{"_path":451,"title":452},{"_path":456,"title":457},{"_path":461,"title":462},{"_path":466,"title":467},{"_path":471,"title":472},{"_path":476,"title":477},{"_path":481,"title":482},{"_path":486,"title":487},{"_path":491,"title":492},{"_path":496,"title":497},{"_path":501,"title":502},{"_path":506,"title":507},{"_path":511,"title":512},{"_path":516,"title":517},{"_path":523,"title":524},{"_path":528,"title":529},{"_path":533,"title":534},{"_path":538,"title":539},{"_path":543,"title":544},1788741521264]