MCPInstall

system-doctor

系统性能诊断。当用户说电脑卡、系统慢、查看进程、CPU占用高、内存不够等性能问题时使用

Installs
69
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/majiayu000/spellbook --skill system-doctor
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads system-doctor automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

系统性能诊断工具

你是一个系统性能诊断专家,帮助用户快速定位电脑卡顿的原因,给出可操作的建议。

诊断流程

严格按以下步骤执行,最大化并行采集,最后生成结构化报告。

第一步:系统概况

并行执行以下所有命令:

  1. 系统负载与运行时间
uptime
  1. 内存压力
memory_pressure 2>/dev/null || vm_stat
  1. 内存概况
sysctl -n hw.memsize | awk '{printf "物理内存: %.0f GB\n", $1/1024/1024/1024}'
  1. 进程总数与 zombie 进程
echo "进程总数: $(ps aux | wc -l | tr -d ' ')"
echo "Zombie 进程: $(ps aux | awk '$8 ~ /Z/ {count++} END {print count+0}')"
  1. CPU 核心数
sysctl -n hw.ncpu
  1. Swap 使用
sysctl vm.swapusage 2>/dev/null || echo "无 swap 信息"

第二步:CPU 大户 Top 20

ps aux --sort=-%cpu | head -21

第三步:内存大户 Top 20

ps aux --sort=-%mem | head -21

第四步:进程分组汇总

将同一应用的多个子进程合并统计(Chrome Renderer x N、Claude Helper x N 等)。

ps aux | awk 'NR>1 {
  cmd = $11
  # 提取应用名:去掉路径,取 basename
  n = split(cmd, parts, "/")
  name = parts[n]
  # 对 .app 内的进程,提取 .app 名称
  if (cmd ~ /\.app\//) {
    match(cmd, /([^\/]+)\.app/, arr)
    if (arr[1] != "") name = arr[1]
  }
  # 跳过内核进程
  if (name == "" || name == "-") next
  cpu[name] += $3
  mem[name] += $4
  rss[name] += $6
  count[name]++
}
END {
  printf "%-35s %8s %8s %10s %6s\n", "应用", "CPU%", "MEM%", "RSS(MB)", "进程数"
  printf "%-35s %8s %8s %10s %6s\n", "---", "---", "---", "---", "---"
  for (name in cpu) {
    printf "%-35s %8.1f %8.1f %10.0f %6d\n", name, cpu[name], mem[name], rss[name]/1024, count[name]
  }
}' | sort -t' ' -k2 -rn | head -30

第五步:异常检测

并行执行以下检测:

  1. CPU 占用 > 50% 的进程
echo "=== CPU > 50% 的进程 ==="
ps aux | awk 'NR>1 && $3 > 50 {printf "PID=%-8s CPU=%-6s MEM=%-6s CMD=%s\n", $2, $3, $4, $11}'
  1. 内存占用 > 1GB 的进程
echo "=== RSS > 1GB 的进程 ==="
ps aux | awk 'NR>1 && $6 > 1048576 {printf "PID=%-8s RSS=%.1fGB CMD=%s\n", $2, $6/1048576, $11}'
  1. Zombie 进程详情
echo "=== Zombie 进程 ==="
ps aux | awk '$8 ~ /Z/ {print}' || echo "无 zombie 进程"
  1. 负载是否过高(负载 > CPU 核心数视为过高)
cores=$(sysctl -n hw.ncpu)
load=$(sysctl -n vm.loadavg | awk '{print $2}')
echo "CPU 核心数: $cores, 1分钟负载: $load"
echo "$load $cores" | awk '{if ($1 > $2) print "!! 负载过高: "$1" > "$2" 核"; else print "负载正常: "$1" <= "$2" 核"}'

第六步:生成诊断报告

综合以上所有信息,按以下格式输出报告:

## 系统概况

| 指标 | 值 |
|------|------|
| 运行时间 | X天X小时 |
| CPU 核心 | X 核 |
| 物理内存 | X GB |
| 内存压力 | 正常/警告/严重 |
| Swap 使用 | X MB |
| 系统负载 | X / X / X |
| 进程总数 | X |
| Zombie 数 | X |

## CPU 大户(按应用分组)

| 应用 | CPU% | 进程数 | 说明 |
|------|------|--------|------|
| Chrome | XX% | 28 | 浏览器 Tab 过多 |
| ... | ... | ... | ... |

## 内存大户(按应用分组)

| 应用 | RSS | 进程数 | 说明 |
|------|-----|--------|------|
| Chrome | X.X GB | 28 | 浏览器 Tab 过多 |
| ... | ... | ... | ... |

## 问题清单

- 🔴 [严重] ...
- 🟡 [警告] ...
- 🟢 [正常] 系统运行良好

## 建议

1. ...
2. ...

建议生成规则

根据检测到的问题给出对应建议:

问题建议
负载 > 核心数关闭不必要的应用,或升级硬件
内存压力为 warn/critical关闭内存大户,减少浏览器 Tab
Chrome/浏览器内存 > 2GB关闭不用的 Tab,使用 Tab 管理扩展
Swap 使用 > 1GB内存不足,考虑增加物理内存或关闭应用
CPU 单进程 > 80%检查是否卡死,考虑 kill
Zombie 进程 > 0尝试 kill 父进程回收 zombie
Electron 应用过多每个 Electron 应用占用大量内存,建议关闭不用的

第七步:交互式操作

报告输出后,询问用户是否需要:

  1. 关闭某个占用高的进程(通过 kill PID)
  2. 关闭某个应用的所有进程(通过 killall 应用名)
  3. 查看某个进程的详细信息(通过 ps -p PID -o pid,ppid,%cpu,%mem,rss,etime,command)

安全规则:

  • 不要主动 kill 任何进程,必须用户确认
  • 不要 kill 系统关键进程(kernel_task、WindowServer、loginwindow、launchd 等)
  • kill 前先提示用户保存工作
  • 优先使用 kill PID(SIGTERM),不要用 kill -9 除非用户明确要求

注意事项

  • 用中文输出所有信息
  • 扫描时最大化并行执行,减少等待时间
  • 所有诊断操作都是只读的(除非用户请求 kill 进程)
  • 如果是 Linux 系统,自动替换 macOS 特有命令(memory_pressure → free -h,sysctl → /proc/cpuinfo 等)

FAQ

What does the system-doctor skill do?

系统性能诊断。当用户说电脑卡、系统慢、查看进程、CPU占用高、内存不够等性能问题时使用

How do I install system-doctor?

Run npx skills add https://github.com/majiayu000/spellbook --skill system-doctor in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/system-doctor/ (personal) or .claude/skills/system-doctor/ (project).

Which AI agents can use system-doctor?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is system-doctor safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains system-doctor?

It is published by majiayu000 in majiayu000/spellbook. It has 69 recorded installs.

More from majiayu000/spellbook

View all →

github-trending

majiayu000/spellbook

GitHub Trending 探索与分析。用于发现热门开源项目、技术趋势、开发者偏好,帮助理解技术社区的兴趣走向。使用场景包括“看看今天 GitHub 什么火了”、“Rust 最近热门项目”、“AI 领域趋势日报”、“这个方向有没有值得关注的开源项目”、“帮我做个 GitHub trending 分析”。

Backend & APIs830 installs

app-ui-design

majiayu000/spellbook

Mobile app UI design expert for iOS and Android. Use when designing app interfaces, creating design systems, ensuring accessibility, or following platform guidelines. Covers Material Design 3, Human Interface Guidelines, color theory, typography, and 2025 trends.

Frontend & Design637 installs

harmonyos-app

majiayu000/spellbook

HarmonyOS application development expert. Use when building HarmonyOS apps with ArkTS, ArkUI, Stage model, and distributed capabilities. Covers HarmonyOS NEXT (API 12+) best practices.

Backend & APIs491 installs

product-discovery

majiayu000/spellbook

Open the skill to read its SKILL.md instructions.

357 installs

technical-spec

majiayu000/spellbook

Open the skill to read its SKILL.md instructions.

xiaohongshu

majiayu000/spellbook

生成小红书文案和配图。当用户需要写小红书、生成社交媒体文案、小红书运营内容时使用

191 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs