管理 Mac 上的開發伺服器、連接埠、Docker 和建置檔案夾
OneMacTools 的「開發與智慧代理」讓你在同一個畫面中管理 Mac 上的開發伺服器和連接埠。它依專案列出你啟動的每個伺服器及其連接埠、記憶體、CPU 和連線,標示閒置已久的伺服器,按一下就能停止。它也會顯示 Docker、Colima 和 OrbStack 的容器和空間,並找出 node_modules 等可清除的舊建置檔案夾。
本頁內容
「開發與智慧代理」畫面會顯示什麼
在側邊欄的 你的 Mac 下開啟 開發與智慧代理,或選擇 前往 › 開發與智慧代理。副標題說明了它的運作方式:只限你的程序 · 不經詢問絕不停止任何項目。它只會查看以你的身分執行的程序,絕不包括其他使用者或 macOS 本身的程序。
頂端的四個方塊分別計算代理程式工作階段、開發伺服器、閒置的伺服器和使用中的記憶體(代理和伺服器合計,若伺服器由代理啟動,不會重複計算)。下方有四個分頁:
| Tab | 用途 |
|---|---|
| 代理 | AI 程式設計代理及其啟動的所有項目。請參閱監控 AI 程式設計代理。 |
| 開發伺服器 | 正在監聽連接埠的伺服器和資料庫,依專案分組。 |
| Docker | 來自 Docker Desktop、Colima 或 OrbStack 的容器、映像檔和建置快取。 |
| 專案檔案 | 專案中的建置和下載檔案夾,例如 node_modules。 |
畫面開啟時,列表每三秒重新整理一次,離開時就會停止。工具列中的 重新整理 按鈕會立即重新讀取所有內容。本頁說明最後三個標籤頁。
如何找到開發伺服器並依專案分組
開發伺服器是指你的某個程序正在 TCP 連接埠上監聽,而且它是已知的執行環境,或在專案檔案夾中執行且不屬於任何 App。已知的執行環境包括 node、bun、deno、python、ruby、java、php、dotnet、go、vite、esbuild、uvicorn、gunicorn、puma、rails、hugo、caddy、nginx、httpd、streamlit、Jupyter 和 ollama,以及資料庫 postgres、redis-server、mysqld 和 mongod。
每個伺服器都會歸在它執行所在的專案下:即個人專屬檔案夾中最近一個含有專案檔案的檔案夾,例如 package.json、.git、pyproject.toml、requirements.txt、Cargo.toml、go.mod、Gemfile、composer.json、pom.xml、build.gradle、Package.swift、deno.json、pubspec.yaml、mix.exs 或 Podfile。Homebrew 安裝的 Postgres 在任何專案之外執行,因此歸在不在專案中。

解讀伺服器列
- 連接埠標籤,例如 :3000。按一下即可在瀏覽器中開啟
http://localhost:3000。 - 資料庫標示 Postgres、Redis、MySQL 和 MongoDB。
- 對你的網路開放(橘色)表示它在所有介面上監聽,因此不只這台 Mac,你 Wi-Fi 上的其他裝置也能連上它。
- 閒置 3 小時(橘色)表示這段時間內沒有 CPU 活動,也沒有任何連線(見下方)。
- 指令,例如
node next dev -p 3000,接著是 來自「終端機」 或 來自 Cursor(啟動它的 App)、已執行多久,以及開啟了多少連線。 - 右側為記憶體和 CPU,接著是 停止…。
如何找出 Mac 上佔用連接埠的程式
在 開發伺服器 頂端的搜尋欄位中輸入:連接埠上有什麼…(3000、8080)或名稱。輸入數字會比對以該數字開頭的連接埠(80 會找到 8000 和 8080);輸入文字則比對指令(astro、uvicorn)。一般背景知識以及在「終端機」中使用 lsof 的方法,請見指南什麼在使用我 Mac 上的連接埠?。
由 App 和 macOS 服務(而非開發工具)佔用的連接埠,會集中在底部的 其他正在監聽連接埠的 App(N) 下。展開即可查看每個 App 及其連接埠。例如 AirPlay 接收器會監聽 5000 和 7000,這就是為什麼使用 5000 連接埠的 Flask App 有時無法啟動。你無法從這裡停止這些項目;請結束該 App(或在「系統設定」中關閉 AirPlay 接收器)以釋放連接埠。
閒置的伺服器,以及如何安全地停止伺服器
當伺服器在 OneMacTools 監看期間至少 15 分鐘幾乎沒有使用 CPU,也沒有任何開啟的連線時,就會被視為閒置。閒置的伺服器方塊會計算它們的數量,每個都會有一個標示閒置多久的閒置標籤。你三天前啟動後就忘了的 Astro 文件網站,就是典型的例子。
停止伺服器
- 按一下該列的停止…。
- 閱讀確認訊息,例如 要停止連接埠 4321 上的 node 嗎? 以及 釋放 298 MB 和連接埠。需要時再從你的專案重新啟動。
- 按一下停止。綠色的一行文字會確認停止了多少個程序,一秒後列表會更新。
停止會要求程序結束,發送的是與 Ctrl-C 相同的溫和訊號,讓伺服器可以正常關閉。OneMacTools 只會停止你自己的程序,而且會再次確認程序 ID 仍屬於當初列出的同一個程式,因此絕不會誤停被重複使用的程序 ID。
失控程序警示
即使這個畫面已關閉,OneMacTools 仍會每 30 秒檢查一次你的開發程序;當某個程序佔用一個完整核心達 10 分鐘、一小時內增加 1 GB,或在連接埠上閒置一天時,就會傳送附有停止按鈕的通知。rustc、clang、tsc 和 webpack 等編譯器本來就會很忙,因此不會被干預。在「設定」›失控的程序中,你可以關閉此功能,或讓 OneMacTools 自行停止這些程序:停止卡在 CPU 滿載的程序(15 分鐘、30 分鐘或 1 小時後)和停止沒人使用的開發伺服器(1、3 或 7 天後)。兩者預設皆為永不。請參閱設定參考資料。
Docker、Colima 和 OrbStack
Docker 分頁支援 Docker Desktop、Colima 和 OrbStack。你看到的內容取決於狀態:
- 未安裝 Docker:這台 Mac 上三者都沒有安裝。
- Docker 未執行:顯示它的虛擬機器在停止時仍佔用多少磁碟空間。開啟 Docker Desktop 或啟動 Colima 可以啟動它(Colima 會執行
colima start,可能需要一分鐘)。若使用 Colima,還有拷貝「colima delete」,如果你已不再使用它並想收回空間,可以貼到「終端機」執行。 - 執行中:Docker 使用的空間 和 容器。
Docker 使用的空間
映像檔、容器、本機磁碟區和建置快取各有一列,顯示數量、大小以及 可釋放 的空間。清理… 會在執行前說明它會做什麼:
| 列 | 「清理」會移除什麼 |
|---|---|
| 影像 | 沒有任何容器使用的映像檔。需要時會重新下載或建置。 |
| 容器 | 已停止的容器。它們儲存在磁碟區以外的任何資料都會遺失。 |
| 建置快取 | Docker 的建置快取。下次建置會花比較久的時間。 |
| 本機磁碟區 | 沒有容器使用的卷宗。其中的資料(例如資料庫和上傳內容)會永久刪除。 |
容器列出每個容器及其映像檔、狀態、連接埠、記憶體和 CPU,若有 Compose 專案也會一併顯示。執行中的容器有停止…(資料會保留);已停止的容器有開始和移除…(卷宗會保留)。如果安裝了 OrbStack,OrbStack 機器會列出它的 Linux 機器,並提供開始和停止…。
清除舊的 node_modules 和建置檔案夾
每個 JavaScript 專案都帶著一個可能多達數百 MB 的 node_modules,Rust、Python 和 Flutter 專案也有各自的對應檔案夾。專案檔案會走訪你的個人專屬檔案夾(向下六層,略過「資料庫」、「應用程式」、媒體檔案夾以及各工具自己的隱藏檔案夾),並逐一專案列出建置檔案夾,由大到小排列。
只有在可重新建立該檔案夾的檔案就在旁邊時,檔案夾才會列出,因此剛好名為 build 或 target 的檔案夾絕不會被動到:
| 檔案夾 | 旁邊需要有的檔案 | 說明 |
|---|---|---|
node_modules | package.json | 下載的套件;npm install(或 yarn、pnpm、bun)會重新取回 |
.next、.nuxt、.svelte-kit、.turbo、.parcel-cache、.open-next | package.json | 框架的建置輸出與快取 |
.angular | angular.json 或 package.json | Angular 建置快取 |
.wrangler | wrangler.toml、wrangler.jsonc 或 package.json | Wrangler 的本機狀態和快取 |
target | Cargo.toml | Rust 建置輸出 |
.venv、venv | pyproject.toml、requirements.txt 等 | Python 虛擬環境 |
Pods | Podfile | CocoaPods 相依套件 |
.build | Package.swift | Swift Package Manager 建置輸出 |
.dart_tool、build、.gradle | pubspec.yaml 或 Gradle 檔案 | Dart、Flutter 和 Gradle 的輸出與快取 |
每個專案都會顯示你上次更改它的時間,依據是你自己的檔案和 Git 活動。30 天沒有動過的專案會自動勾選,日期也會變成橘色。按一下放大鏡即可在 Finder 中查看檔案夾。
- 取消勾選你即將要處理的任何項目。
- 按一下將 N 個丟到垃圾桶…並確認。對話框會顯示可釋放多少空間。
- 下次處理專案時,你的套件管理工具或建置流程會將這些資料夾產生回來。在清空垃圾桶之前,你都可以從記錄將它們放回原處。
指南在 Mac 上刪除 node_modules說明了一般做法;「專案檔案」則是用滑鼠點選就能完成的版本。若要處理整台 Mac 的空間,請見 Mac 清理。
從你的 AI 助理使用
Claude、Cursor、Codex 和其他 AI 助理也能透過 OneMacTools MCP 伺服器取得相同的讀數:連接埠上有什麼、依專案分組的開發伺服器、Docker 狀態以及舊的專案檔案。AI 助理可以在工作途中詢問「什麼在使用連接埠 3000?」,並得到與你在這裡看到的相同答案。停止任何項目仍需要你的核准(核准機制說明)。
問題
如何不用終端機就在 Mac 上結束佔用連接埠的程序?
開啟「開發與智慧代理」,選擇「開發伺服器」,在搜尋欄位中輸入連接埠號碼,然後按一下該列的「停止…」。OneMacTools 會要求伺服器正常結束並釋放連接埠。由 App 佔用的連接埠列在「其他正在監聽連接埠的 App」下;結束該 App 即可釋放。
為什麼我 Mac 上的連接埠 5000 已被佔用?
macOS 的「AirPlay 接收器」會監聽連接埠 5000 和 7000。「開發與智慧代理」會將它列在「其他監聽連接埠的 App」下。請在「系統設定」›「一般」›「AirDrop 與接力」中關閉「AirPlay 接收器」,或讓你的 App 在其他連接埠上執行。
開發伺服器「對你的網路開放」是什麼意思?
伺服器監聽所有網路介面,而不只是這台 Mac,因此同一個 Wi-Fi 上的手機和電腦都能連上。這在用手機測試時很方便,但在公共 Wi-Fi 上,你可能會想將它綁定到 localhost。
OneMacTools 會自行停止我的伺服器嗎?
除非你要求,否則不會。預設情況下,它只會通知你失控或閒置的程序。在「設定」›「失控的程序」中,你可以選擇在 15、30 或 60 分鐘後停止卡在 CPU 滿載的程序,或在 1、3 或 7 天後停止未使用的開發伺服器。
刪除 node_modules 安全嗎?
可以,只要旁邊有 package.json 即可,「專案檔案」會檢查這一點。執行 npm install(或 yarn、pnpm、bun)就能將它還原。OneMacTools 會將資料夾移到垃圾桶,在你清空垃圾桶之前,都可以從「記錄」放回原處。
「開發與智慧代理」支援 Colima 和 OrbStack 嗎?
可以。「Docker」標籤頁會讀取 Docker Desktop、Colima 或 OrbStack,可以啟動 Colima 或開啟 Docker Desktop,並列出 OrbStack 的 Linux 機器,提供「開始」和「停止」。