Skip to content

homm/StillCore

Repository files navigation

StillCore

StillCore is built for continuous Apple Silicon monitoring with low overhead. It stays in the macOS menu bar, quietly tracks what the Mac is doing, and is ready when something suddenly feels off: the laptop gets warm, battery drain jumps, or a background task briefly spikes power usage.

Main features:

  • Full-system power chart (including display, speakers, and peripherals). Useful when a 5 W CPU increase turns into a 10 W system increase.
  • Chip, CPU and GPU power charts for more precise diagnostics.
  • CPU and GPU frequency and usage on the combined chart.
  • Temperature charts.
  • Adjustable update interval from 100 ms to 10 seconds.
  • Quick menu bar access with an optional always-open window.
  • Battery session tracking, such as 15% used over 2 hours since the last charge.

StillCore app screenshot

StillCore is for everyday monitoring rather than deep profiling. It is built on top of macmon, which provides the core Apple Silicon metrics.

Requirements

  • macOS 14 or newer
  • Apple Silicon Mac

Download

Prebuilt downloads are available on the GitHub releases page: https://github.com/homm/StillCore/releases

Why I Built It

I often work on a laptop and want to understand what is happening with energy usage. I used MX Power Gadget for this, but later found that it reports misleadingly low power for itself while consuming a lot of CPU power in practice1. That led me through several monitoring experiments, and eventually to the decision that I could build something better for my own workflow.

During development, I paid attention to StillCore's own footprint. The table below shows power usage while running different monitoring apps as CHIP: CPU + GPU in watts. For example, the idle baseline without any monitoring apps is 0.02: 0.00 + 0.00.

App Mode 100ms update interval 1 sec update interval
CHIP: CPU + GPU CHIP: CPU + GPU
StillCore In tray
Interactive
0.03: 0.01 + 0.00
0.12: 0.03 + 0.02
0.02: 0.01 + 0.00
0.04: 0.02 + 0.00
Stats 2.12.12 In tray
Interactive
-
-
0.04: 0.01 + 0.00
0.06: 0.02 + 0.00
iStat Menus 7.2 In tray
Interactive
-
-
0.02: 0.00 + 0.00
0.03: 0.01 + 0.00
Activity Monitor macOS 15.7.5 In tray
Interactive
-
-
0.12: 0.09 + 0.00
0.16: 0.12 + 0.00
MX Power Gadget 1.6.41 In tray
Interactive
-
-
2.78: 2.67 + 0.00
2.80: 2.68 + 0.00

Build From Source

Building from source requires Xcode with Swift 6 support and network access for Swift Package dependencies.

Create a local DMG from source:

make release-dmg

This creates the Release StillCore.dmg.

Remove build artifacts:

make clean

Development

Development builds use CONFIGURATION=Debug by default. Pass CONFIGURATION=Release to build and run the Release configuration with the same command.

Build and run from the terminal:

make run

Build and open the app bundle:

make open-app

Rebuild the app and restart the battery helper if it is already registered:

make helper-restart

Launch Instruments Time Profiler for a Release build:

make profile

Local Metrics Core Development

Use LOCAL=1 when you want to develop or test StillCore together with local changes in the metrics collection core.

Additional requirements:

  • Rust toolchain with Cargo
  • Xcode command line tools
  • Local checkouts of macmon and macmon-bindings next to this repository

Clone the sibling repositories and build the local macmon xcframework:

cd ..
git clone https://github.com/homm/macmon.git
git clone https://github.com/homm/macmon-bindings.git
cd macmon
make xcframework
cd ../StillCore

Build and open StillCore against the local metrics core:

LOCAL=1 make open-app

LOCAL=1 uses StillCore.local.xcworkspace, expects ../macmon/dist/CMacmon.xcframework, and uses the sibling ../macmon-bindings checkout.

Footnotes

  1. MX Power Gadget uses powermetrics for its measurements, but according to this Habr article in Russian, it starts a new powermetrics process for each sample. Because powermetrics has a relatively expensive startup phase, the utility can consume a few watts in practice even when its own charts show near-zero power. 2

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors