PM2 GUI is a native macOS app for managing local PM2 processes with a desktop UI and a lightweight menu bar companion.
It is aimed at developers who already use pm2 locally and want a faster way to inspect processes, read logs, and run common actions without living in the terminal.
- Native macOS app built with SwiftUI
- Process list with status, CPU, memory, restarts, and uptime
- Process detail view with start, stop, restart, reload, and delete actions
- Log viewer with stdout / stderr switching, filtering, and auto refresh
- Start new apps from a script or executable path
- Optional interpreter support, including
none - PM2 daemon actions such as
save,resurrect, and environment diagnostics - Menu bar access for quick process checks and actions
- Chinese / English UI switching
To reproduce a command like:
pm2 start gitnexus --name gitnexus-mcp --interpreter none -- mcpIn the app's Start New App dialog, fill:
Name:gitnexus-mcpScript or executable path: absolute path togitnexusInterpreter:noneArguments:mcp
For a common PM2 workflow like:
pm2 start /Users/you/project/server.js --name api -- --port 3000In the app's Start New App dialog, fill:
Name:apiScript or executable path:/Users/you/project/server.jsInterpreter: leave blankArguments:--port 3000
- macOS 14 or later
pm2installed locallynodeavailable for your PM2 environment
The app shells out to your local pm2 binary. It does not bundle PM2 itself.
Unsigned build artifacts are committed in dist/:
You can open the DMG and drag PM2GUI.app into Applications.
Open the package in Xcode:
- Open Xcode
- Choose
Open Existing Project - Select
Package.swift - Run the
PM2GUIexecutable target
Or build/package from Terminal:
swift build
./scripts/package-macos-app.shPackaged outputs will be written to dist/.
Sources/: app sourceTests/: XCTest coveragescripts/: packaging and icon generation scriptsPackaging/: app icon and packaging assetsdocs/: architecture, MVP, status, and implementation notes
This project focuses on local PM2 workflows on macOS:
- inspect PM2 processes
- manage process lifecycle
- view logs
- diagnose local
pm2/nodesetup - package the app as
.appand.dmg
Remote PM2 management is out of scope for now.
- Packaging currently does not require code signing.
- The app can auto-discover common PM2 install paths on macOS.
- If PM2 or Node cannot be reached from the app environment, use the Settings page to inspect and adjust paths.



