Readme
jolt CLI
A beautiful terminal-based battery and energy monitor for macOS and Linux.
Built for laptop users who want to understand what's draining their battery. Provides real-time insights into power consumption, process energy usage, and battery health - all in a clean, themeable TUI.
Features
Battery Status - Real-time charge percentage, charging state, time remaining, battery health, and cycle count
Power Monitoring - Total system power draw with CPU and GPU breakdown
Process Energy Tracking - Processes sorted by energy impact with color-coded severity
Collapsible Process Groups - Expand parent processes to see children consuming energy
Historical Graphs - Track battery percentage and power draw over time
Theme Support - Dark and light themes with automatic system detection
Keyboard Navigation - Full keyboard control with help dialog
Process Management - Kill energy-hungry processes with confirmation
Requirements
macOS
macOS 11.0 (Big Sur) or later
Apple Silicon (optimized) or Intel Mac
Linux
Linux kernel 3.13+ (for RAPL power metrics)
Laptop with battery
Intel or AMD CPU (for power metrics)
Note: On Linux, see Linux setup guide for required permissions.
Installation
Install Script (Recommended)
curl - fsSL https://getjolt.sh/install.sh | bash
Automatically detects your platform (macOS or Linux) and architecture.
From Source
git clone https://github.com/jordond/jolt.git
cd jolt/cli
cargo build -- release
./target/release/jolt
Via Cargo
cargo install jolt-tui
Homebrew (coming soon)
brew install jordond/tap/jolt
Usage
# Run with default settings (1 second refresh)
jolt
# Faster refresh rate (500ms)
jolt --refresh-ms 500
# Force dark theme
jolt --theme dark
# Force light theme
jolt --theme light
# Show help
jolt --help
CLI Options
Option
Default
Description
- r, - - refresh- ms
1000
Refresh interval in milliseconds
- t, - - theme
auto
Theme mode: auto , dark , or light
Keyboard Shortcuts
Key
Action
Up / k
Move selection up
Down / j
Move selection down
Enter / Space
Expand/collapse process group
K
Kill selected process
g
Toggle graph metric (battery/power)
m
Toggle merge mode (group similar)
t
Open theme picker
a
Cycle appearance (Auto/Dark/Light)
o
Cycle sort column
O
Toggle sort direction
s
Open settings
h
View history
PgUp / PgDn
Page up/down
Home / End
Jump to start/end
?
Show help dialog
q / Esc
Quit
Building from Source
Prerequisites
macOS
Install Rust via rustup :
curl -- proto ' =https' -- tlsv1 .2 - sSf https://sh.rustup.rs | sh
Ensure you have Xcode Command Line Tools:
xcode-select -- install
Linux
Install Rust via rustup :
curl -- proto ' =https' -- tlsv1 .2 - sSf https://sh.rustup.rs | sh
Install build dependencies:
Ubuntu/Debian:
sudo apt-get install build-essential pkg-config
Fedora:
sudo dnf install gcc pkg-config
Arch:
sudo pacman - S base-devel
Build
# From the cli directory
cd cli
# Debug build (faster compilation, slower runtime)
cargo build
./target/debug/jolt
# Release build (slower compilation, optimized runtime)
cargo build --release
./target/release/jolt
Development
# Run in development mode
cargo run
# Run with arguments
cargo run -- --refresh-ms 500 --theme dark
# Check for errors without building
cargo check
# Run with warnings
cargo clippy
How it Works
jolt collects system metrics using platform-native APIs:
macOS
Battery Data - Parsed from pmset - g batt and ioreg - r - c AppleSmartBattery
Power Metrics - Real-time energy data via IOReport framework (CPU, GPU, ANE power in watts)
System Theme - Detected via defaults read - g AppleInterfaceStyle
Linux
Battery Data - Read from /sys/class/power_supply/BAT*/
Power Metrics - Intel RAPL interface at /sys/class/powercap/intel-rapl/
GPU Power - hwmon interfaces (Intel/AMD)
System Theme - Follows environment settings
License
MIT