Perf Pulse00
Case 03 / developer toolingLive product · v1.7

Perf Pulse

Crash Guard for developer Macs.

Project film · Out of memory

Mid-screen-share, macOS runs out of application memory and the call freezes. Rewind nine minutes: inside the 18 GB, one app never stops growing. Crash Guard forecasts the freeze, warns first, and Stop safely re-checks the process before it acts. 14:39:07, same second, still on the call. Score: “Tues” by Hope Atina.

Perf Pulse came from a failure I kept hitting. Agents, builds, and desktop apps would eat memory or disk until the Mac stopped responding, while Activity Monitor sat there unopened. Crash Guard turns that late diagnosis into an always-on warning, a local dashboard, and a deliberate next move.

CoreRust
ProtectionMemory + disk
RuntimePer-user launchdno root daemon · no system extension
Installbrew install perf-pulsepublic tap · pinned SHA-256 · real binaries
brew install hopeatina/perf-pulse/perf-pulsepublic tap · Apple Silicon + Intel · protection remains opt-in
01

The consequential problem

The warning arrived after the damage

Activity Monitor can show a problem. It does not watch for the moment before the machine goes down.

The failure rarely begins with one obvious process. Agent sessions accumulate, a build spikes, swap grows, or generated artifacts quietly consume the remaining writable disk. By the time the Mac becomes visibly slow, opening another inspection tool is already late.

A useful guard had to run continuously, explain which resource was approaching danger, and lead straight to a safe response. No root access, and no new heavyweight service.

  • Warn while there is still time to act.
  • Open the local incident view. Not an editor, not an opaque script.
  • Never delete files automatically; keep destructive action explicit.
02

What I saw

A warning is a doorway

Detection only becomes useful when the next move is attached.

Crash Guard connects three moments that system utilities usually separate: the trend before failure, a concise native alert, and the exact live dashboard for that incident. Developers can tune the guard to their machine, inspect bounded storage hotspots, and decide whether to stop a process with its identity revalidated at action time.

03

The decision that changed the system

Always on, still local-first

Use a per-user agent for protection and a local dashboard for judgment.

A headless launchd agent samples memory pressure and writable-disk headroom even when the dashboard is closed. When a threshold is crossed, a native alert can reopen the dedicated Crash Guard tab on the live localhost server. The person at the keyboard decides what to stop, which thresholds to change, and when to turn protection off. The monitor doesn't.

01Watch headroom

A per-user agent samples memory pressure and writable disk locally.

02Detect trajectory

Thresholds and disk forecasting surface risk before the machine becomes unresponsive.

03Open the incident

The alert leads to the dedicated live Crash Guard dashboard with the relevant context.

04Intervene deliberately

The user tunes protection, inspects storage, or requests an identity-checked process stop.

04

System anatomy / rationale / surfaces

One guard, one operating picture

Continuous detection and human-controlled action share a small local-first architecture.

The guard can keep watch without an open browser, while the dashboard appears only when the developer needs context or control. CLI, TUI, and overview surfaces read from the same underlying system state.

Decision anatomy / select a knot

Pressure did not decorate the architecture. It determined it.

Before / tension

Manual inspection begins only after the developer notices slowdown, low disk, or a frozen machine.

The knot / decision

Run Crash Guard as an opt-in per-user launchd agent with tunable memory and disk thresholds.

After / consequence

Protection persists across dashboard sessions without a root daemon or macOS system extension.

launchd LaunchAgent · local config · native alerts
01 / collectorRead pressure and headroom locally

The Rust core gathers memory, swap, disk, and process state on the Mac it is protecting.

Rust · sysinfo · macOS
02 / guardModel risk before failure

Tunable thresholds, trend checks, and disk forecasting distinguish current load from a deteriorating trajectory.

Tokio · local rules
03 / incidentBind the alert to the live context

Native notifications can open the dedicated Crash Guard tab on the exact localhost dashboard serving that Mac.

launchd · Axum · native alerts
04 / authorityKeep intervention in human hands

Configuration is explicit, storage diagnostics stay read-only, and stop requests revalidate process identity before signaling.

PID + name + start time
Architecture rationale / pressure → choice → consequence
PressureDecisionWhy it mattered
A snapshot can miss the path toward a crashTrack pressure, growth, and remaining disk headroom

The product can warn while the developer still has room to respond.

A generic notification creates another huntOpen the dedicated live incident surface

Risk, controls, and current process context arrive together.

A stale PID can point at a different processValidate PID, name, and start time before a stop request

Convenient action does not erase the safety boundary.

Surface atlas

The system becomes tangible through the places people encounter and use it.

01 / always on

Crash Guard

Persistent memory and disk protection with tunable thresholds and native alerts.

02 / incident

Local dashboard

The exact live operating picture for protection status, recent incidents, and intervention.

03 / diagnostic

CLI + TUI

Fast checks and sustained inspection stay where developers already work.

04 / distribution

Homebrew

Installation becomes the first coherent product interaction, not a README obstacle.

Core

Rust · Tokio · sysinfo

Runtime

launchd · Axum · local API

Delivery

Homebrew · native alerts · optional webhooks

Technology atlas / select a tool

The tools behind the decisions.

Select a tool to see the role it plays in this system.

  • Core / Perf Pulse

    Rust

    A memory-safe, compact core keeps continuous collection predictable on the machine it is protecting.

05

Authentic proof

Perf Pulse Crash Guard dashboard showing protection status, memory and disk thresholds, incidents, and stop controls
Crash Guard / one local operating picture

The notification opens the exact live dashboard developers need: current risk, tunable thresholds, recent incidents, and identity-checked stop controls in one place.

Crash Guard / one local operating picture

The notification opens the exact live dashboard developers need: current risk, tunable thresholds, recent incidents, and identity-checked stop controls in one place.

Perf Pulse Crash Guard live dashboard with protection status, thresholds, incidents, and process controls
Early warning / Crash Guard

Protection state, threshold controls, incident history, and the next safe action stay in one focused local surface.

Early warning / Crash Guard

Protection state, threshold controls, incident history, and the next safe action stay in one focused local surface.

Perf Pulse CLI product preview showing JSON analysis piped to Claude
Immediate / CLI

The shortest path from machine state to an actionable explanation stays in the terminal and can feed another tool when needed.

Immediate / CLI

The shortest path from machine state to an actionable explanation stays in the terminal and can feed another tool when needed.

Perf Pulse terminal TUI product preview with live CPU and memory process state
Sustained / TUI

The same core signal earns a persistent terminal surface when the operator needs to watch change over time.

Sustained / TUI

The same core signal earns a persistent terminal surface when the operator needs to watch change over time.

Perf Pulse Meeting Mode product preview showing paused processes and automatic restore timing
Reversible action / Meeting Mode

The interface makes the intervention, resources freed, paused processes, and restore path visible in one state.

Reversible action / Meeting Mode

The interface makes the intervention, resources freed, paused processes, and restore path visible in one state.

06

What changed in my operating model

The interface begins at the interruption

A warning earns trust when it carries the user to a clear choice.

Crash Guard changed the product from something a developer remembers to open into protection that can notice first. The hard part was not adding another alert; it was joining early detection, useful context, configurable sensitivity, and carefully bounded intervention without overstating what a signal request can guarantee.

  • Design the alert and destination as one interaction.
  • Expose sensitivity without making safe defaults feel unfinished.
  • Keep automation ahead of failure and behind user authority.