Help us improve
Share bugs, ideas, or general feedback.
Analyzes project to detect services (Vite, Next.js, Express, FastAPI/Flask, Go), generates PM2 ecosystem config, Python wrappers, and slash commands for start/stop/restart/monitor/logs.
npx claudepluginhub xu-xiang/everything-claude-code-zhHow this command is triggered — by the user, by Claude, or both
Slash command
/everything-claude-code:pm2The summary Claude sees in its command listing — used to decide when to auto-load this command
# PM2 初始化 (Init) 自动分析项目并生成 PM2 服务命令。 **命令 (Command)**: `$ARGUMENTS` --- ## 工作流 (Workflow) 1. 检查 PM2(如果缺失,通过 `npm install -g pm2` 安装) 2. 扫描项目以识别服务(前端/后端/数据库) 3. 生成配置文件和单个命令文件 --- ## 服务检测 (Service Detection) | 类型 (Type) | 检测方式 (Detection) | 默认端口 (Default Port) | |------|-----------|--------------| | Vite | vite.config.* | 5173 | | Next.js | next.config.* | 3000 | | Nuxt | nuxt.config.* | 3000 | | CRA | package.json 中的 react-scripts | 3000 | | Express/Node | server/backend/api 目录 + package.json | 3000 | | FastAPI/Flask | requirements.txt / pyproject.toml | 8000 | | Go | go.mod / main.g...
/pm2Analyzes project structure to detect frontend, backend, and database services, then generates PM2 ecosystem.config.cjs and per-service start/stop/restart command files.
/serviceAuto-detects project runtime (Node.js, Python, Go, Rust, Java, C#) and package manager to start, stop, restart, view logs, or list dev services. Supports --port and multi-service projects.
/initDetects project tech stack from root files (Shopify priority, then Next.js, React, etc.) and creates or updates project.json.
/headlessGenerates .claude/scripts/headless.sh and .claude/skills/headless/SKILL.md tailored to the project for managing dev servers as supervised background processes in grove instances.
/pmOrchestrates sub-agents for project workflows, restores and preserves session context from memory, reports progress, and drives PDCA cycles. Accepts [request] and --strategy, --verbose flags.
Share bugs, ideas, or general feedback.
自动分析项目并生成 PM2 服务命令。
命令 (Command): $ARGUMENTS
npm install -g pm2 安装)| 类型 (Type) | 检测方式 (Detection) | 默认端口 (Default Port) |
|---|---|---|
| Vite | vite.config.* | 5173 |
| Next.js | next.config.* | 3000 |
| Nuxt | nuxt.config.* | 3000 |
| CRA | package.json 中的 react-scripts | 3000 |
| Express/Node | server/backend/api 目录 + package.json | 3000 |
| FastAPI/Flask | requirements.txt / pyproject.toml | 8000 |
| Go | go.mod / main.go | 8080 |
端口检测优先级 (Port Detection Priority): 用户指定 > .env > 配置文件 > 脚本参数 > 默认端口
project/
├── ecosystem.config.cjs # PM2 配置
├── {backend}/start.cjs # Python 包装器 (如果适用)
└── .claude/
├── commands/
│ ├── pm2-all.md # 启动全部 + 监控 (monit)
│ ├── pm2-all-stop.md # 停止全部
│ ├── pm2-all-restart.md # 重启全部
│ ├── pm2-{port}.md # 启动单个 + 日志 (logs)
│ ├── pm2-{port}-stop.md # 停止单个
│ ├── pm2-{port}-restart.md # 重启单个
│ ├── pm2-logs.md # 查看所有日志
│ └── pm2-status.md # 查看状态
└── scripts/
├── pm2-logs-{port}.ps1 # 单个服务日志
└── pm2-monit.ps1 # PM2 监控器 (monitor)
必须使用 .cjs 扩展名
module.exports = {
apps: [
// Node.js (Vite/Next/Nuxt)
{
name: 'project-3000',
cwd: './packages/web',
script: 'node_modules/vite/bin/vite.js',
args: '--port 3000',
interpreter: 'C:/Program Files/nodejs/node.exe',
env: { NODE_ENV: 'development' }
},
// Python
{
name: 'project-8000',
cwd: './backend',
script: 'start.cjs',
interpreter: 'C:/Program Files/nodejs/node.exe',
env: { PYTHONUNBUFFERED: '1' }
}
]
}
框架脚本路径 (Framework script paths):
| 框架 (Framework) | 脚本 (script) | 参数 (args) |
|---|---|---|
| Vite | node_modules/vite/bin/vite.js | --port {port} |
| Next.js | node_modules/next/dist/bin/next | dev -p {port} |
| Nuxt | node_modules/nuxt/bin/nuxt.mjs | dev --port {port} |
| Express | src/index.js 或 server.js | - |
const { spawn } = require('child_process');
const proc = spawn('python', ['-m', 'uvicorn', 'app.main:app', '--host', '0.0.0.0', '--port', '8000', '--reload'], {
cwd: __dirname, stdio: 'inherit', windowsHide: true
});
proc.on('close', (code) => process.exit(code));
启动所有服务并打开 PM2 监控面板。
```bash
cd "{PROJECT_ROOT}" && pm2 start ecosystem.config.cjs && start wt.exe -d "{PROJECT_ROOT}" pwsh -NoExit -c "pm2 monit"
```
停止所有服务。
```bash
cd "{PROJECT_ROOT}" && pm2 stop all
```
重启所有服务。
```bash
cd "{PROJECT_ROOT}" && pm2 restart all
```
启动 {name} ({port}) 并打开日志。
```bash
cd "{PROJECT_ROOT}" && pm2 start ecosystem.config.cjs --only {name} && start wt.exe -d "{PROJECT_ROOT}" pwsh -NoExit -c "pm2 logs {name}"
```
停止 {name} ({port})。
```bash
cd "{PROJECT_ROOT}" && pm2 stop {name}
```
重启 {name} ({port})。
```bash
cd "{PROJECT_ROOT}" && pm2 restart {name}
```
查看所有 PM2 日志。
```bash
cd "{PROJECT_ROOT}" && pm2 logs
```
查看 PM2 状态。
```bash
cd "{PROJECT_ROOT}" && pm2 status
```
Set-Location "{PROJECT_ROOT}"
pm2 logs {name}
Set-Location "{PROJECT_ROOT}"
pm2 monit
ecosystem.config.cjs (而非 .js)windowsHide: truestart wt.exe -d "{path}" pwsh -NoExit -c "command"基于 $ARGUMENTS 执行初始化:
ecosystem.config.cjs{backend}/start.cjs (如果适用).claude/commands/ 中生成命令文件.claude/scripts/ 中生成脚本文件生成文件后,将 PM2 章节追加到项目的 CLAUDE.md(如果不存在则创建):
## PM2 服务 (Services)
| 端口 (Port) | 名称 (Name) | 类型 (Type) |
|------|------|------|
| {port} | {name} | {type} |
**终端命令 (Terminal Commands):**
```bash
pm2 start ecosystem.config.cjs # 首次启动
pm2 start all # 首次之后
pm2 stop all / pm2 restart all
pm2 start {name} / pm2 stop {name}
pm2 logs / pm2 status / pm2 monit
pm2 save # 保存进程列表
pm2 resurrect # 恢复保存的列表
```
CLAUDE.md 更新规则:
所有文件生成后,输出:
## PM2 初始化完成 (Init Complete)
**服务 (Services):**
| 端口 (Port) | 名称 (Name) | 类型 (Type) |
|------|------|------|
| {port} | {name} | {type} |
**Claude 命令:** /pm2-all, /pm2-all-stop, /pm2-{port}, /pm2-{port}-stop, /pm2-logs, /pm2-status
**终端命令 (Terminal Commands):**
## 首次启动(带配置文件)
pm2 start ecosystem.config.cjs && pm2 save
## 首次之后(简化命令)
pm2 start all # 启动全部
pm2 stop all # 停止全部
pm2 restart all # 重启全部
pm2 start {name} # 启动单个
pm2 stop {name} # 停止单个
pm2 logs # 查看日志
pm2 monit # 监控面板
pm2 resurrect # 恢复保存的进程
**提示 (Tip):** 首次启动后运行 `pm2 save` 以启用简化命令。