🧪 Skills

System Monitor

Real-time system metrics monitoring (CPU, memory, disk, network, processes). Use when: user asks to check system status, cpu usage, memory usage, disk space,...

v1.0.1
❤️ 0
⬇️ 179
👁 2
Share

Description


name: system-monitor description: "Real-time system metrics monitoring (CPU, memory, disk, network, processes). Use when: user asks to check system status, cpu usage, memory usage, disk space, network traffic, running processes, or system performance. Supports macOS and Linux. Tools: top, htop, df, iostat, vm_stat, host, free, lsof, uptime." metadata: openclaw: emoji: "📊" requires: bins: - top - df - vm_stat - free - lsof - uptime

System Monitor Skill

Monitor real-time system metrics including CPU, memory, disk, network, and processes.

When to Use

USE this skill when:

  • "Check system status"
  • "CPU usage" / "How's the CPU doing?"
  • "Memory usage" / "RAM usage"
  • "Disk space" / "How much storage left?"
  • "Network traffic" / "Network usage"
  • "Running processes" / "Top processes"
  • "System performance" / "System load"

Setup

Some tools may need installation via Homebrew:

# Install optional enhanced tools
brew install htop      # Enhanced top (better UI)
brew install nettop    # Real-time network monitoring (macOS)
brew install iostat    # I/O statistics (Linux)

Platform Detection

Detect the platform to use appropriate commands:

uname -s  # Darwin = macOS, Linux = Linux

CPU Usage

macOS

# CPU usage summary (user, system, idle)
top -l 1 -n 0 | grep "CPU usage"

# Detailed per-core usage
top -l 2 -n 0 | tail -1

# Overall CPU percentage
vm_stat | head -5

Linux

# CPU usage summary
top -bn1 | head -5

# Detailed per-core
mpstat -P ALL 1 1

# Overall
uptime

One-liner (cross-platform friendly)

# macOS
top -l 1 -n 0 -s 0 | awk '/CPU usage/ {print}'

# Linux  
top -bn1 | grep "Cpu(s)"

JSON-friendly (scripting)

# macOS: CPU stats with specific fields
top -l 1 -n 0 -s 0 -stats pid,pcpu,pmem,comm

Memory Usage

macOS

# Memory info (page size, pages active, wired, compressed, free)
vm_stat

# Human-readable summary
top -l 1 -n 0 | grep "PhysMem"

# Full memory details
hostinfo | grep "memory"

Linux

# Human-readable
free -h

# Detailed in MB
free -m

# Swap info
swapon -s

Memory Calculation (macOS)

# Calculate used memory from vm_stat
vm_stat | awk '/Pages active/ {active=$3} /Pages wired/ {wired=$3} /Pages free/ {free=$3} END {print "Active: " active " Wired: " wired " Free: " free}'

Disk Space

macOS & Linux

# All filesystems, human-readable
df -h

# Specific volume (macOS)
df -h /

# Linux root
df -h /

# Show inode usage (Linux)
df -i

# Sorted by usage (macOS)
df -h | sort -k5 -h

# Only local filesystems
df -h -t local

Disk Usage (directory-level)

# Current directory (macOS)
du -sh .

# Top-level directories
du -h --max-depth=1

# Linux sorted by size
du -h --max-depth=1 | sort -h

Network Statistics

macOS

# Network interfaces (use ifconfig instead)
ifconfig -a

# Active connections
lsof -i -n | head -20

# Listening ports
lsof -i -n | grep LISTEN

# Real-time network usage
nettop -P -L 1 -J bytes_in,bytes_out

Linux

# Interface statistics
ip -s link

# TCP/UDP stats
ss -s

# Active connections
ss -tunap

Process List

macOS

# Top processes by CPU
top -o cpu -l 1 -n 15

# Top processes by memory
top -o mem -l 1 -n 15

# All processes
ps aux

# User processes
ps -U $(whoami)

Linux

# Top processes by CPU
top -bn1 | head -12

# Top by memory
top -bo %MEM -bn1 | head -12

# Process tree
pstree

# User processes
ps -U $(whoami) --sort=-%mem

System Load

macOS

# Load average
uptime

# Detailed
hostinfo | grep "load"

Linux

uptime
# or
cat /proc/loadavg

Combined System Status

Quick Health Check

# CPU, Memory, Disk in one view (macOS)
echo "=== CPU ===" && top -l 1 -n 0 | grep "CPU usage"
echo "=== Memory ===" && top -l 1 -n 0 | grep "PhysMem"
echo "=== Disk ===" && df -h / | tail -1

# Linux
echo "=== CPU ===" && top -bn1 | head -5
echo "=== Memory ===" && free -h
echo "=== Disk ===" && df -h /
echo "=== Load ===" && uptime

Bundled Scripts

system-stats.sh

A combined system stats script for quick health checks:

#!/bin/bash
# Combined system stats - run from skills/system-monitor/scripts/

PLATFORM=$(uname -s)

echo "=== System Stats ==="
echo "Time: $(date)"
echo "Platform: $PLATFORM"
echo ""

if [ "$PLATFORM" = "Darwin" ]; then
    echo "--- CPU ---"
    top -l 1 -n 0 -s 0 | grep "CPU usage"
    echo ""
    
    echo "--- Memory ---"
    top -l 1 -n 0 | grep "PhysMem"
    vm_stat | head -5
    echo ""
    
    echo "--- Disk ---"
    df -h / | tail -1
    echo ""
    
    echo "--- Load Average ---"
    uptime
else
    echo "--- CPU ---"
    top -bn1 | head -5
    echo ""
    
    echo "--- Memory ---"
    free -h
    echo ""
    
    echo "--- Disk ---"
    df -h / | tail -1
    echo ""
    
    echo "--- Load Average ---"
    uptime
fi

Notes

  • macOS uses vm_stat for memory, Linux uses free
  • top output format differs between platforms
  • Use hostinfo on macOS for system overview
  • Use lsof or nettop instead of deprecated netstat
  • For continuous monitoring, use watch command or run top in loop

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs