Agent skill

macOS Load Doctor

by daymade in daymade/claude-code-skills

Diagnoses macOS system-level slowness, heat and fleet-wide timeouts: high load average, leaked per-session child processes (MCP servers, helpers), fork storms, busy loops.

MITAuto-check passedAgent Workflows

Install macOS Load Doctor

skills CLI
$ npx skills add daymade/claude-code-skills --skill macos-load-doctor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install daymade/claude-code-skills macos-load-doctor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/daymade/claude-code-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/daymade-macos/macos-load-doctor .claude/skills/macos-load-doctor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
macos-load-doctor
GitHub stars
1.4k
Token cost
~2k tokens
SKILL.md length
1,102 words
Files
3 (incl. scripts, references)
Skills in repo
103
Repo updated
First seen
Licence
MIT

At a glance

Diagnoses macOS system-level slowness, heat and fleet-wide timeouts: high load average, leaked per-session child processes (MCP servers, helpers), fork storms, busy loops.

  • Works in 5 steps: Load first, always → Process census — run the bundled script → Attribute the owner → …
  • The Mac feels slow
  • SKILL.md covers The one rule that orders…, Triage (READ-DO, in order), Common leak patterns and Troubleshooting
  • Runs Shell scripts from its folder; calls bash

What it does

macOS Load Doctor is an agent skill from daymade/claude-code-skills. Diagnoses macOS system-level slowness, heat and fleet-wide timeouts: high load average, leaked per-session child processes (MCP servers, helpers), fork storms, busy loops. Use when the Mac feels slow or hot, fans spin up, or everything times out at once (电脑发烫/卡顿/负载高/全部超时). Not for single-app bugs, network slowness (use tunnel-doctor), launchd watchdog design (use macos-watchdog), or disk-full (use macos-cleaner).

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/incident-playbook.md` and `scripts/load_census.sh`).

It sits in Agent Workflows, covering MCP servers. It works with macOS and Model Context Protocol. The repository describes itself as: Professional Claude Code skills marketplace featuring production-ready skills for enhanced development workflows. The licence is MIT.

When your agent uses it

  • The Mac feels slow
  • Everything times out at once (电脑发烫/卡顿/负载高/全部超时)

Example prompts

  • “Use the macos-load-doctor skill to diagnose macOS system-level slowness, heat and fleet-wide timeouts: high load average, leaked per-session child…”
  • “/macos-load-doctor”

Requirements

  • A Bash shell

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Load first, always
  2. Process census — run the bundled script
  3. Attribute the owner
  4. Classify the shape before proposing a fix
  5. Act within the boundary

What it can do on your machine

Read from SKILL.md and the folder at commit 872127b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

macOS Load Doctor loads about 2k tokens when it runs, and up to ~3.4k if it reads all its reference files. Until then it costs about 109 tokens; SKILL.md has 1,102 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~109
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from daymade/claude-code-skills at commit 872127b, republished under its MIT licence (© daymade). 1,102 words, ~2,020 tokens.

Download SKILL.mdSave it as .claude/skills/macos-load-doctor/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
macos-load-doctor
description
Diagnoses macOS system-level slowness, heat and fleet-wide timeouts: high load average, leaked per-session child processes (MCP servers, helpers), fork storms, busy loops. Use when the Mac feels slow or hot, fans spin up, or everything times out at once (电脑发烫/卡顿/负载高/全部超时). Not for single-app bugs, network slowness (use tunnel-doctor), launchd watchdog design (use macos-watchdog), or disk-full (use macos-cleaner).

macOS Load Doctor

Find what is making the Mac slow or hot, attribute it to an owner, and act within the shared-machine boundary. The skill's job is a correct, evidence-backed attribution — not process cleanup.

The one rule that orders everything else

A fleet-wide symptom is an environment problem until proven otherwise. When independent apps, hooks or agents all start timing out or crawling at the same time, none of them is the suspect — something is starving them all. Check the machine first; debug individuals only after the machine reads clean.

Triage (READ-DO, in order)

1. Load first, always
bash
sysctl -n vm.loadavg; uptime

Expected: three numbers, e.g. { 3.12 4.01 5.20 }. Read against the core count, not an absolute: single digits are calm on a modern Mac; tens are busy; hundreds mean the run queue is many times oversubscribed and everything on the machine is a victim — hooks time out, keystrokes lag, pushes stall. A load in the hundreds with no obvious culprit in the CPU column usually means hundreds of small processes, not one big one.

2. Process census — run the bundled script
bash
bash scripts/load_census.sh

It prints three readings, each answering a different question:

  • By parent (PPID aggregation) — who is accumulating children? One parent holding hundreds of children is a leak, and it is self-sustaining: no automatic mechanism ever terminates a live process somebody else spawned (launchd reaps zombies; it never kills live adoptees), so unless the spawner or the user kills them, they accumulate for days. This is the signature of per-session/per-thread spawners (MCP servers, per-tab helpers) that never reap.
  • By cumulative CPU time — who has been burning for hours? A GUI app or helper with days of CPU time at ~100% is a busy loop, not a spike.
  • By instantaneous %CPU — who is burning right now? Catches the active storm that the cumulative view dilutes.
3. Attribute the owner

Trace the parent chain of the suspect until it ends at something ownable:

bash
ps -o pid,ppid,etime,command -p <pid>     # then repeat on its PPID
launchctl list | awk '$2 != "-" && $2 != "0"'   # jobs with abnormal last-exit codes

The launchctl filter also prints its header line, and many system daemons sit at status -9 (SIGKILL) permanently — that is routine noise, not a crash loop. The respawn-loop signal is a job whose PID keeps changing between runs, not any single status value.

Attribution answers three questions: which product/session owns it, is it supposed to be long-lived (a daemon) or short-lived (a helper that forgot to die), and who is allowed to stop it.

4. Classify the shape before proposing a fix
ShapeSignatureTypical cause
Leakchild count of one parent grows monotonically over hoursspawner never reaps (per-thread MCP servers, per-session helpers)
Stormmany processes with seconds-short etimes, high fork rateunthrottled loop (test replay, batch scan, retry without backoff)
Busy loopone process at ~100% with days of cumulative timeapp polling without sleep
Cascadeload high but suspects scattereda system service amplifying each new process (security scans, file-sync, Spotlight)

The fix is different for each: a leak wants the spawner fixed or restarted, a storm wants throttling at the loop, a busy loop wants the app relaunched or its scan disabled, a cascade wants fewer new processes, not faster ones.

Show full SKILL.md (590 more words)Show less
5. Act within the boundary

On a shared machine, diagnosis is read-only; remediation has an owner.

  • Never terminate another session's, agent's or user's processes. A "service restart" whose side effect is killing the daemon's children is the same action in a nicer wrapper — it counts as terminating them.
  • What you may do yourself: throttle your own loops, renice your own processes, stop your own background jobs.
  • Terminating or restarting another session's, agent's, service's or user's process requires the current user's explicit authorization. Coordinate ownership with peers, but their agreement does not grant that authorization. Pause only the intervention that needs approval; continue the authorized read-only investigation that does not depend on it.
  • For a named alert, reconstruct its recorded window, measurement units and trigger calculation before attributing the cause. Another process being hotter does not explain why this alert fired. Keep alert validity and the machine's actual workload as separate conclusions.
  • For a diagnosis or remediation request, progress reports do not end the task. Do not send a closing answer with the cause unknown while an authorized probe can still distinguish the competing explanations. Diagnosis completes when a specific mechanism explains the requested symptom or alert and has evidence that discriminates those explanations; an approved repair continues through independent readback. A standalone snapshot-only request can end after that snapshot; a status question during active diagnosis gets a progress update while investigation continues. An explicit pause is honored. If an external condition blocks all remaining probes, name it and the missing evidence as unfinished, rather than claiming completion.
  • Once the current user authorizes an intervention, execute and verify it; handing an already authorized action back as another report is not completion.
  • After any remediation (yours or the owner's), read back: re-run sysctl -n vm.loadavg and the census. A command receipt is not recovery; the load and the child count are.

Common leak patterns

Short table in this file for the shapes seen repeatedly; worked cases with real probe outputs and the reasoning chain live in references/incident-playbook.md — read it when the census shows something you have not seen before, or when you need a precedent for the report you are about to write.

  • Per-thread MCP spawners: an agent runtime starts the full configured MCP set per conversation thread and never reaps them; hundreds of proxy/helper processes accumulate under one daemon over days. GUI-flavored MCP servers additionally hammer WindowServer.
  • Unthrottled batch loops: a replay/fuzz/migration loop with no rate limit is indistinguishable from a fork bomb to the rest of the machine — same rate, same heat, same cascading security-scan load.
  • GUI busy loops: a menu-bar or settings app polling without sleep — one core at 100% for days, invisible until cumulative-time census.
  • Respawn loops: a launchd job crashing and restarting every few seconds — launchctl list shows a non-zero last-exit code and a PID that keeps changing.

Troubleshooting

  • Load is high but every reading looks normal: the suspects are short-lived — measure the fork rate directly: two ps -Ao pid= snapshots a few seconds apart, count the PIDs that appear only in the second (comm -13 <(sort old.txt) <(sort new.txt) | wc -l, divided by the interval). Dozens per second is a storm; a few is normal churn.
  • The obvious big-CPU process is innocent: WindowServer, a terminal, or a screen-sharing client at high CPU is often downstream of the real cause (hundreds of GUI app copies each needing window service). Keep tracing.
  • Everything points at a system service: that is the cascade shape — the fix is reducing the rate of new work reaching it, not the service itself.

© daymade, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts, references) in daymade-macos/macos-load-doctor of daymade/claude-code-skills.

  • SKILL.md
  • references/incident-playbook.md
  • scripts/load_census.sh

Open the folder on GitHubat commit 872127b

Compare with similar skills

macOS Load Doctor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

macOS Load Doctor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
macOS Load Doctor this skilldaymade/claude-code-skills1.4k—~2kAutomated safety check: PassMIT
Binggo MCPluovicter-collab/bilibinggo500—~1.2kAutomated safety check: PassProprietary
Cortex Mem MCPsopaco/cortex-mem313—~2.8kAutomated safety check: PassMIT
Mps Project ManagementJetBrains/MPS1.7k—~2.2kAutomated safety check: PassApache-2.0
Premiere Pro MCPhetpatel-11/Adobe_Premiere_Pro_MCP668—~1.3kAutomated safety check: PassMIT
Gearcoleco Romhackingdrhelius/Gearcoleco142—~3.9kAutomated safety check: PassGPL-3.0

Similar skills

  • Binggo MCP

    luovicter-collab/bilibinggo

    Operates the local Binggo (bilibinggo) Bilibili lottery helper console strictly through binggo MCP tools.

    500 GitHub stars~1.2k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Cortex Mem MCP

    sopaco/cortex-mem

    Persistent memory enhancement for AI agents. An agent skill from sopaco/cortex-mem.

    313 GitHub stars~2.8k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • Official

    Open an MPS project in a running or freshly started MPS instance when MCP tools fail because no project is open (welcome screen), close an open project with mpsmcpcloseproject, or create a new empty…

    1.7k GitHub stars~2.2k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Premiere Pro MCP

    hetpatel-11/Adobe_Premiere_Pro_MCP

    Install, verify, troubleshoot, and operate the Adobe Premiere Pro MCP server.

    668 GitHub stars~1.3k tokensUpdated 15 days ago
    Agent WorkflowsAuto-check passed
  • Gearcoleco Romhacking

    drhelius/Gearcoleco

    Hack, modify, and translate ColecoVision and Super Game Module ROMs using the Gearcoleco emulator MCP server.

    142 GitHub stars~3.9k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • Carnet

    jfarcand/mirroir-mcp

    Work the private register (mirroir-carnet) from a session — claim an issue before touching it so peers see who holds it and which session, release or close it when done, file new issues in the one…

    246 GitHub stars~2.8k tokensUpdated 4 days ago
    Agent WorkflowsAuto-check passed

More from daymade/claude-code-skills

All 103 skills in this repo
  • Video Comparer

    daymade/claude-code-skills

    This skill should be used when comparing two videos to analyze compression results or quality differences.

    1.4k GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check: notes
  • CLI Demo Generator

    daymade/claude-code-skills

    Generates professional animated CLI demos as GIFs using VHS terminal recordings.

    1.4k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Doc To Markdown

    daymade/claude-code-skills

    Converts DOCX/PDF/PPTX and saved HTML/HTM to high-quality Markdown with automatic post-processing.

    1.4k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Interaction Design Board

    daymade/claude-code-skills

    Generates several distinct, clickable HTML interaction prototypes for one product surface into a Design Board and collects selection/remix feedback before implementation.

    1.4k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Auto Repo Setup

    daymade/claude-code-skills

    Diagnoses and repairs repository setup and guarded Git workflows for Claude Code or Codex — environment repair, startup sync, hook auditing, collaborator handoff.

    1.4k GitHub stars~2.8k tokensUpdated today
    Auto-check: notes
  • Bigdata Skill

    daymade/claude-code-skills

    Pulls Bigdata.com (RavenPack) financial and news data via the official bigdata-client SDK and /v1/ REST endpoints — structured financials, prices, analyst estimates, entity-sentiment series…

    1.4k GitHub stars~3.7k tokensUpdated today
    Auto-check passed

Categories

Questions about macOS Load Doctor

What does macOS Load Doctor do?

Diagnoses macOS system-level slowness, heat and fleet-wide timeouts: high load average, leaked per-session child processes (MCP servers, helpers), fork storms, busy loops. macOS Load Doctor is an agent skill from daymade/claude-code-skills. Diagnoses macOS system-level slowness, heat and fleet-wide timeouts: high load average, leaked per-session child processes (MCP servers, helpers), fork storms, busy loops.

When should I use macOS Load Doctor?

macOS Load Doctor fits situations like: the Mac feels slow; everything times out at once (电脑发烫/卡顿/负载高/全部超时).

How do I install macOS Load Doctor in Claude Code?

Run `npx skills add daymade/claude-code-skills --skill macos-load-doctor -a claude-code`. Or copy the skill folder (daymade-macos/macos-load-doctor in daymade/claude-code-skills) into .claude/skills/macos-load-doctor in your project. Claude Code loads it when a task matches its description.

How do I install macOS Load Doctor in Codex?

Run `npx skills add daymade/claude-code-skills --skill macos-load-doctor -a codex`. Or copy the skill folder (daymade-macos/macos-load-doctor in daymade/claude-code-skills) into .agents/skills/macos-load-doctor in your project. Codex loads it when a task matches its description.

Can I use macOS Load Doctor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add daymade/claude-code-skills --skill macos-load-doctor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/macos-load-doctor, .gemini/skills/macos-load-doctor, .github/skills/macos-load-doctor and .opencode/skills/macos-load-doctor in your project.

What does macOS Load Doctor need to run?

Going by SKILL.md and its folder, macOS Load Doctor needs a shell for the scripts in its folder and the command-line tools its instructions call (bash). Our summary lists: A Bash shell.

Does macOS Load Doctor access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is macOS Load Doctor safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does macOS Load Doctor use?

macOS Load Doctor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does macOS Load Doctor use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.

What are the alternatives to macOS Load Doctor?

Skills that share tags, products or a category with macOS Load Doctor: Binggo MCP (luovicter-collab/bilibinggo, 500 stars), Cortex Mem MCP (sopaco/cortex-mem, 313 stars), Mps Project Management (JetBrains/MPS, 1.7k stars) and Premiere Pro MCP (hetpatel-11/Adobe_Premiere_Pro_MCP, 668 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains macOS Load Doctor?

daymade (a GitHub user) maintains it in daymade/claude-code-skills, which has 1,447 GitHub stars. The repository holds 103 skills in this directory. The repository was last updated on October 9, 2026.

Source: daymade/claude-code-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.