Agent skill

os-health

VPS OS health, network speed test, disk, RAM, CPU, uptime, process snapshot

Stars 39
Forks 5

Install this agent skill to your Project

npx add-skill https://github.com/ariffazil/arifOS/tree/main/WORKSPACE/skills/os-health

SKILL.md

OS Health & Speedtest — arifOS_bot

Triggers: "speedtest", "network speed", "how fast is my VPS", "os health", "system check", "cpu usage", "memory usage", "disk space", "uptime", "processes", "top processes", "is VPS slow", "latency", "ping", "bandwidth", "vps performance"


Full Health Snapshot (run all at once)

bash
echo "=== $(date) ===" && \
echo "--- UPTIME ---" && uptime && \
echo "--- CPU ---" && grep -c ^processor /proc/cpuinfo && cat /proc/loadavg && \
echo "--- RAM ---" && free -h && \
echo "--- DISK ---" && df -h / && \
echo "--- CONTAINERS ---" && docker ps --format "table {{.Names}}\t{{.Status}}" 2>/dev/null && \
echo "--- arifOS ---" && curl -sf http://arifosmcp:8080/health | python3 -c "import sys,json; d=json.load(sys.stdin); print(f\"status={d['status']} tools={d.get('tools_loaded','?')}\")" 2>/dev/null

Network Speed Test

Download speed (Cloudflare — no install needed)

bash
# 10MB test file from Cloudflare
SPEED=$(curl -s -o /dev/null -w "%{speed_download}" \
  "https://speed.cloudflare.com/__down?bytes=10000000" --max-time 15)
echo "Download: $(echo "scale=1; ${SPEED}/1048576" | bc) MB/s"

Latency to key endpoints

bash
for HOST in 1.1.1.1 8.8.8.8 api.anthropic.com api.moonshot.cn; do
  RTT=$(curl -s -o /dev/null -w "%{time_connect}s" "https://${HOST}" --max-time 5 2>/dev/null || echo "timeout")
  echo "${HOST}: ${RTT}"
done

Upload speed (to your own VPS — internal)

bash
# From container to arifOS MCP endpoint
dd if=/dev/urandom bs=1M count=5 2>/dev/null | \
  curl -s -X POST http://arifosmcp:8080/health \
  -H "Content-Type: application/octet-stream" \
  --data-binary @- -o /dev/null -w "upload: %{speed_upload} B/s\n"

Quick ping test (DNS resolution speed)

bash
for HOST in arifosmcp headless_browser qdrant ollama_engine arifos-postgres; do
  TIME=$(curl -sf -o /dev/null -w "%{time_namelookup}+%{time_connect}" http://${HOST} 2>/dev/null || echo "unreachable")
  echo "${HOST}: ${TIME}s"
done

CPU & Process Analysis

bash
# Top CPU consumers
ps aux --sort=-%cpu | head -10

# Top memory consumers
ps aux --sort=-%mem | head -10

# CPU info
nproc && cat /proc/loadavg

# Check if load is high
LOAD=$(cat /proc/loadavg | cut -d' ' -f1)
CORES=$(nproc)
echo "Load: ${LOAD} / ${CORES} cores"
# If load > cores: system under pressure

Disk Analysis

bash
# Overall usage
df -h

# Find disk hogs (top 10 largest dirs)
du -h / --max-depth=3 2>/dev/null | sort -rh | head -10

# Docker-specific disk usage
docker system df

# Ollama model sizes
docker exec ollama_engine du -sh /root/.ollama/models/ 2>/dev/null

# Log sizes
du -sh /opt/arifos/data/openclaw/logs/ /var/log/ 2>/dev/null

Disk Alert Thresholds

bash
USED=$(df / | awk 'NR==2{print $5}' | tr -d '%')
if [ "$USED" -gt 85 ]; then
  echo "DISK_CRITICAL: ${USED}% — immediate cleanup required"
  echo "Run: docker builder prune -f && docker image prune -f"
elif [ "$USED" -gt 75 ]; then
  echo "DISK_WARNING: ${USED}% — monitor closely"
else
  echo "DISK_OK: ${USED}%"
fi

RAM Analysis

bash
# Full memory breakdown
free -h

# Per-container memory (sorted)
docker stats --no-stream --format "{{.Name}}: {{.MemUsage}} ({{.MemPerc}})" | sort -t'/' -k1 -rh

# Check if swap is being used (bad sign on this VPS)
free -h | grep Swap
# >100MiB swap used → RAM pressure, check which container to limit

Network Interface Stats

bash
# Bytes in/out since boot
cat /proc/net/dev | awk 'NR>2 {printf "%s: RX=%.1fMB TX=%.1fMB\n", $1, $2/1048576, $10/1048576}' | grep -v "lo:"

# Active connections count
ss -s 2>/dev/null || netstat -s 2>/dev/null | grep "connections" | head -5

OS Info

bash
uname -a
cat /etc/os-release | grep -E "^(NAME|VERSION)="
# CPU model
grep "model name" /proc/cpuinfo | head -1 | cut -d: -f2 | xargs
# VPS host
curl -sf http://169.254.169.254/latest/meta-data/instance-type 2>/dev/null || echo "Not AWS (KVM VPS)"

Auto-Heal Actions (within autonomous authority)

bash
# Disk >80% — safe cleanup
docker builder prune -f
docker image prune -f --filter "dangling=true"
journalctl --vacuum-size=200M 2>/dev/null

# Container OOM-killed — restart it
docker compose -f /mnt/arifos/docker-compose.yml up -d <container_name>

# High load — identify and report (don't kill without F13)
ps aux --sort=-%cpu | head -5
# → Report to Arif before killing unknown processes

Log to Audit

bash
echo "{\"ts\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"event\":\"os_health_check\",\"disk_pct\":\"$(df / | awk 'NR==2{print $5}')\",\"load\":\"$(cat /proc/loadavg | cut -d' ' -f1)\",\"agent\":\"arifOS_bot\"}" \
  >> ~/.openclaw/workspace/logs/audit.jsonl

arifOS_bot — OS health + network diagnostics

Expand your agent's capabilities with these related and highly-rated skills.

ariffazil/arifOS

mcp-config-separation

39 5
Explore
ariffazil/arifOS

drift-watcher

Periodic knowledge freshness checker: detects when local configs, runbooks, or agent knowledge have drifted from the latest official docs. Reduces the stale-knowledge paradox over time. Use when: (1) periodic health checks or heartbeat runs, (2) before major operations, (3) user asks 'am I up to date', 'check for updates', 'is anything outdated', (4) after a software upgrade to verify configs still match new docs.

39 5
Explore
ariffazil/arifOS

MCP_CONFIG

39 5
Explore
ariffazil/arifOS

config-guardian

Universal governed config co-pilot. Before ANY change to ANY system: (1) check latest docs and running version (docs-first), (2) propose as diff with risk analysis, never apply directly (propose-only), (3) log every change with evidence and rollback (change ledger). Works for OpenClaw, Docker, PostgreSQL, Nginx, arifOS, or any software. Triggers on: 'change config', 'fix settings', 'update', 'propose patch', 'explain config', 'validate config', 'why did we change X'. Enforces propose-only workflow — human applies via git.

39 5
Explore
ariffazil/arifOS

drift-watcher

Periodic knowledge freshness checker: detects when local configs, runbooks, or agent knowledge have drifted from the latest official docs. Reduces the stale-knowledge paradox over time. Use when: (1) periodic health checks or heartbeat runs, (2) before major operations, (3) user asks 'am I up to date', 'check for updates', 'is anything outdated', (4) after a software upgrade to verify configs still match new docs.

39 5
Explore
ariffazil/arifOS

config-guardian

Universal governed config co-pilot. Before ANY change to ANY system: (1) check latest docs and running version (docs-first), (2) propose as diff with risk analysis, never apply directly (propose-only), (3) log every change with evidence and rollback (change ledger). Works for OpenClaw, Docker, PostgreSQL, Nginx, arifOS, or any software. Triggers on: 'change config', 'fix settings', 'update', 'propose patch', 'explain config', 'validate config', 'why did we change X'. Enforces propose-only workflow — human applies via git.

39 5
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results