Show HN: AirStats – Mac menu bar system monitor, 0.046% CPU idle, MIT

byrencodes2 pts0 comments

GitHub - byrencheema/airstats: A menu bar system monitor for macOS. CPU, memory, GPU, network, disk, battery and thermals at 0.046% CPU. · GitHub

/" data-turbo-transient="true" />

Skip to content

Search/

Sign in<br>Sign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

byrencheema

airstats

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Latest commit

History<br>87 Commits<br>87 Commits

Folders and files<br>NameNameLast commit message<br>Last commit date<br>.github/workflows

.github/workflows

Resources

Resources

Scripts

Scripts

Sources

Sources

Tests/AirStatKitTests

Tests/AirStatKitTests

docs

docs

.gitignore

.gitignore

CONTRIBUTING.md

CONTRIBUTING.md

LICENSE

LICENSE

Package.resolved

Package.resolved

Package.swift

Package.swift

README.md

README.md

View all files

Repository files navigation

AirStats

AirStats is a system monitor for the Mac menu bar. It reads CPU, memory, GPU, network,<br>disk, battery, temperature, process and host statistics from the kernel and shows them in<br>three places: the menu bar itself, a panel that drops down when you click the status item,<br>and a floating overlay you can leave on your desktop.

It is built to be genuinely light. A menu bar monitor runs all day, every day, so AirStats<br>holds a few megabytes and a fraction of a percent of one core rather than the tens of<br>megabytes its peers take. It has no Dock icon, and reads the system through Mach, IOKit,<br>sysctl and CoreWLAN.

Requirements

macOS 14 or later

Apple silicon or Intel

Install

Download it from airstats.app, open the dmg and drag the app to<br>Applications. It is signed and notarized, so it opens with no warning.

Or with Homebrew:

brew install --cask byrencheema/tap/airstats

AirStats updates itself with Sparkle. It asks airstats.app<br>once a week whether a newer version exists, and installs one only when you say so. Both of<br>those can be turned off in General settings.

Build from source

You need the Swift 6 toolchain that ships with Xcode 16.

Scripts/build.sh release<br>cp -R .build/arm64-apple-macosx/release/AirStats.app /Applications/<br>open /Applications/AirStats.app

Scripts/build.sh wraps the SwiftPM binary in a .app bundle, copies Sparkle.framework<br>into Contents/Frameworks, and signs it ad hoc. macOS grants a status item only to a<br>signed bundle with LSUIElement set. Run the script with no argument for a debug build.

An ad-hoc signature is enough to run a build you made yourself, and not enough to travel:<br>macOS refuses an ad-hoc bundle that arrived over the internet. Scripts/release.sh is what<br>produces the download above, signing with a Developer ID certificate and stapling Apple's<br>notarization ticket to the .dmg.

Source layout

Path<br>What lives there

Sources/AirStatKit<br>Collectors, the sampling engine, settings, formatting. No UI.

Sources/AirStatUI<br>Menu bar drawing, panel, overlay, settings window, charts, design system.

Sources/AirStats<br>The executable, app delegate, and the probe and render commands.

Tests/AirStatKitTests<br>Contract tests for the collectors, plus settings and formatting.

Scripts/build.sh<br>Builds the binary and assembles the .app.

Scripts/release.sh<br>Signs, notarizes and packages the .dmg that ships.

Scripts/appcast.py<br>Writes a release into the appcast Sparkle reads.

Scripts/benchmark.py<br>Samples the menu bar monitors on your Mac over one shared window.

AirStatKit never imports SwiftUI or AppKit, which is what lets the tests and the probe<br>run in a windowless process.

Contributing

CONTRIBUTING.md has the checks to run before a pull request and the<br>house rules.

License

MIT. See LICENSE.

About<br>A menu bar system monitor for macOS. CPU, memory, GPU, network, disk, battery and thermals at 0.046% CPU.<br>airstats.app<br>Topics<br>appkitmacosmenu-barswiftswiftuisystem-monitor<br>Resources<br>Readme<br>MIT license<br>Contributing<br>Contributing<br>Activity<br>Stars<br>4 stars<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository

Releases

Packages

Contributors

Languages

You can’t perform that action at this time.

airstats menu scripts build system monitor

Related Articles