Hear your system.

Map sounds to system events. Monitor CPU, memory, disk, network — and anything else — with your ears instead of your eyes.

Get Started View on GitHub
$ git clone https://github.com/h2337/sysm && cd sysm && make install

Features

Sound-driven system awareness

Keep your eyes on code while your ears stay on infrastructure. sysm runs quietly in the background, turning raw system metrics into ambient audio cues.

Audio Alerts

Assign WAV sounds to any system event. Different sounds for different thresholds give you instant ambient awareness.

Shell Source

Run any shell command as a data source. If you can script it, sysm can monitor it — from ss to curl to custom scripts.

File Source

Read values from system files like /proc and /sys directly. Zero overhead, no subprocess spawning.

Threshold Crossing

Trigger sounds when metrics cross defined thresholds. Get alerted the moment CPU spikes above 90% or disk writes surge.

Delta Detection

Monitor the rate of change. Play sounds while disk write speed stays elevated, with start and end transitions.

Pattern Matching

Use regex to detect state changes. Hear when a network connection establishes, a process starts, or a log line appears.

How It Works

Three concepts, infinite possibilities

Each monitoring rule combines a data source, a trigger type, and an audio response.

Source

shell commands
system files

Rule Engine

threshold cross
delta detection
pattern match

Audio

start / loop / end
volume control

1

Define a source

Choose where data comes from — a shell command output, or a column from a system file like /proc/stat or /sys/block/sda/stat.

2

Set a trigger type

Pick when sound plays: when a value crosses a threshold, while a rate of change stays above a limit, or when a regex pattern first matches.

3

Assign audio

Attach WAV files for start, content (looping), and end events. Control volume per-rule. sysm handles multi-threaded playback automatically.

Simple INI format

Each rule is a section in ~/.config/sysm/config.ini. Readable, version-controllable, easy to share.

CPU Spikes

Alert on usage > 90%

New Connections

Hear network activity

Disk I/O

Monitor write speeds

Anything Else

If you can script it

config.ini
[high_cpu_usage]
enabled = true
description = "CPU usage crosses above 90%"
sleep = 3000
content_music = "~/.config/sysm/audio/beeps_1.wav"
source = shell
command = "awk '...' /proc/stat"
type = on_threshold_cross
threshold = 90

[high_disk_write_speed]
enabled = true
description = "Disk write speed above threshold"
sleep = 1000
start_music = "~/.config/sysm/audio/start.wav"
content_music = "~/.config/sysm/audio/loop.wav"
end_music = "~/.config/sysm/audio/end.wav"
source = file_column
file = "/sys/block/sda/stat"
column = 6
type = while_delta_above_threshold
threshold = 5000

[new_network_connection]
enabled = true
description = "First connection established"
sleep = 1000
content_music = "~/.config/sysm/audio/conn.wav"
source = shell
command = "ss -atun4 | grep ESTAB"
type = on_match_when_past_not_match
match = ".*\S.*"

Get Started

Up and running in seconds

Requires g++ with C++20 support and SFML audio library.

terminal
# Install SFML (Debian/Ubuntu)
$ sudo apt install libsfml-dev

# Install SFML (Arch Linux)
$ sudo pacman -S sfml

# Clone and install sysm
$ git clone https://github.com/h2337/sysm --depth=1
$ cd sysm && make install

# Edit your config
$ $EDITOR ~/.config/sysm/config.ini

# Run in background
$ sysm &
[ INFO ] Loaded 3 rules. Listening...