macOS 14+ · Apple Silicon · <30 MB memory

Run local AI.
Skip the OOM.

DevPulse is the pre-flight check for local inference on Apple Silicon. Reclaim VRAM before loading a 70B. Stream pressure to long-running agents. So Ollama, llama.cpp, LM Studio, and MLX get the headroom they need.

VRAM 37 / 64 GB 57%
26.5 GB Free
4.8 GB Compressed
6.9 GB Swap
😎 Nope, you're good.

Peak 53 GB on 64 GB. Chrome is eating 22 GB — but that's a Chrome problem, not a hardware problem.

Built for developers who ship, not babysit.

Process Intelligence

Groups by project, not PID. Chrome's 59 helpers become one line. Node processes get attributed to the project that spawned them.

Chrome (59) · 22.5 GB

Auto-Optimizer

Runs every 5 minutes. Kills zombies, flags idle servers, warns about Chrome leaks. You don't think about it.

2m Killed 4 zombies +340 MB
32m Chrome: 18.2 GB 47 tabs

Swap Tracking

Monitors swap pressure over time. Warns before your Mac starts thrashing to disk — not after.

Pressure: LOW · 7-day trend: stable

Weekly Reports

Memory trends, top offenders, and optimization history. Delivered to your inbox or notification center.

Sent every Monday at 9am
Terminal
$ devpulse ai --before-load 42000 --auto-clean --json
{
  "modelSizeMB": 42000,
  "before": { "verdict": "fits-after-unload", "exitCode": 2 },
  "actions": [
    "unloaded idle ollama model: qwen2.5:7b (4.2 GB)",
    "killed 6 zombie procs (812 MB reclaimed)"
  ],
  "after":   { "verdict": "fits", "exitCode": 0 }
}

$ echo $?
0   # safe to load

Pre-flight checks

--before-load returns exit codes 0/1/2/3 — fits / won't fit / unload-first / tight. Branch in shell, no parsing.

Streaming NDJSON

devpulse watch --json emits one snapshot per tick. Pipe it into a long-running agent loop and react to VRAM pressure in real time.

No daemon. No cloud.

Same binary as the menu bar app. No extra permissions, no network calls, no telemetry. Your model load decisions never leave your Mac.

Your local AI deserves a co-pilot.

DevPulse tells you which AI models your Mac can handle, based on your actual RAM usage and recoverable waste.

Model Quant RAM Status
Llama 3.1 8B Q8_0 9.5 GB Runs great
Qwen 3.5 9B Q4_K_M 9.5 GB Runs great
DeepSeek R1 32B Q4_K_M 20 GB Runs OK
Llama 3.3 70B Q4_K_M 42 GB After cleanup
DeepSeek R1 671B Q4_K_M 350 GB Too heavy

RAM estimates sourced from CanIRun.ai — model data from llama.cpp, Ollama, and LM Studio.

The Honest Answer

DevPulse tracks your peak memory over 7 days, calculates how much is waste, and gives you a straight answer. No upselling. No BS.

😎

Absolutely not.

You peaked at 42 GB on a 64 GB Mac. Even with Chrome hogging 18 GB, you have headroom for days.

Peak: 42G · Waste: 6G · Optimized: 36G

😬

Not yet. Clean up first.

Peak 58 GB with 12 GB reclaimable. Biggest culprit: 4.2 GB in idle dev servers. Fix that before shopping.

Peak: 58G · Waste: 12G · Optimized: 46G

💸

Yeah, probably.

Even optimized you'd use 61 GB on a 64 GB Mac. A 96 GB machine would give you breathing room.

Peak: 63G · Waste: 2G · Optimized: 61G

NEW · v1.7.0

Hybrid routing, made visible.

Know which brain Claude Code is using — and whether your Mac can handle it.

lean local · 70%+ Claude Code → DeepSeek (~/.zshrc)
Local ready: 70%+

Anthropic, DeepSeek, OpenRouter, Fireworks, or a custom URL — detected from ~/.claude/settings.json and your shell rc files. Keys never read. Routing posture stays a local signal.

<30 MB memory footprint
0 network calls
0 telemetry
MIT license
Your data stays on your Mac. Not our servers. Not our problem.
Monitors the tools you actually use:
Docker Chrome VS Code Cursor Xcode Slack Node.js Claude Code Ollama