Native · macOS 13+ · Apple Silicon

Your internet,
in real time.

A menu bar monitor that tells you the truth. Continuous ping, jitter, packet loss and outage tracking — with auto-traceroute the moment things break, and a dashboard you'll actually open.

Online primary 1.1.1.1 · sampling…
Ping— ms
Jitter
Loss0%
Down
Up

Always on

Pings every 30s–5m. Lives in the menu bar so you see status at a glance, never in the way.

The truth, charted

Two hosts pinged in parallel so you can tell your link from that one server. Jitter and packet loss baked in.

Proof for your ISP

Every outage is logged with a traceroute, ready to export as a CSV that ends the "looks fine on our end" conversation.

The dashboard

Built so you actually open it.

Glassy gradient cards. Live status hero. Branded charts with gradient fills. The throughput shows your last networkQuality run, the latency trend shows both monitored hosts, and the outage panel shows the truth about last night.

Pulse main window screenshot

Features

Everything a serious monitor should have. Nothing it shouldn't.

Multi-host monitoring

Cloudflare and Google in parallel by default. Configurable. Distinguishes a flaky link from a flaky destination.

Latency, jitter, loss

Each cycle fires N pings, computes mean / min / max / standard deviation / packet loss. Configurable count.

Speed tests

macOS's built-in networkQuality — no third-party server required. Down/up + responsiveness (RPM).

Outage timeline

Every drop logged with start, end, duration, network fingerprint. Auto-traceroute attached at the moment of break.

Network info

Public IP, local IP, gateway, interface — and Apple-style captive-portal detection that warns before you waste 5 minutes wondering.

Battery-aware

Cadence backs off automatically when you unplug. Configurable multiplier. Live indicator in the header.

Notifications, smart

Outage start & restored. Latency-spike alerts with a configurable threshold and 5-minute cooldown so you don't get spammed.

CSV export

Full history — pings, outages, speed tests — in one CSV. Send it to your ISP. Ends the conversation.

Shortcuts integration

Run Speed Test, Get Latest Ping, Check If Online — wire it into automations, hot keys, Stream Deck.

Settings

Tune it once. Forget it forever.

Pick your hosts, pick your cadence, pick your alerts. Pulse remembers everything in plain JSON in ~/Library/Application Support/Pulse, so backing up your preferences is just copying a folder.

  • Custom primary & secondary hosts
  • Battery-aware multiplier (1.5× – 10×)
  • Latency-spike threshold with cooldown
  • Auto-traceroute on outage toggle
  • Launch at login (SMAppService)
Pulse settings sheet showing host configuration, frequency, power, notifications, diagnostics

Specs

Light, native, no telemetry.

PlatformmacOS 13+ (Sonoma+ recommended)
ArchitectureApple Silicon (arm64)
Bundle size~1.1 MB
DependenciesZero — pure SwiftUI + Swift Charts
Speed testmacOS built-in networkQuality
Ping hostConfigurable, defaults 1.1.1.1 / 8.8.8.8
Storage7 days rolling JSON in ~/Library/Application Support/Pulse/
TelemetryNone. No accounts. No cloud.

Install

Build it. Run it. Done.

Pulse is a tiny Swift Package. The build script picks up Xcode's toolchain, compiles, generates the icon, bundles the .app and ad-hoc signs it.

# Clone & build
git clone <this repo>
cd pulse
./build.sh

# Launch
open Pulse.app

# Optional: install to /Applications
cp -R Pulse.app /Applications/

Requires macOS 13+ and Xcode (the Command Line Tools alone are missing the SwiftPM ManifestAPI). First launch may need a right-click → Open since the binary is ad-hoc signed.