Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

socktop is a TUI-first remote system monitor built with Rust. Two components:

  • socktop (TUI Client) - A terminal-based user interface for viewing system metrics
  • socktop_agent - A lightweight background service that collects and serves system metrics over WebSocket

Features

  • TUI built with ratatui, Catppuccin Frappe theme
  • CPU: overall sparkline + per-core bars, accurate per-process CPU% (normalized 0-100%)
  • Memory/Swap gauges
  • Disks: per-device usage
  • Network: per-interface throughput with sparklines
  • Temperatures: CPU (optional)
  • Process list: fuzzy search, sortable by CPU% or memory, scrollable
  • Process details: command line, working directory, per-thread CPU, journal entries
  • Kill local processes from the TUI (Terminate / Force kill, with confirmation)
  • Optional GPU metrics
  • Compact layout for small terminal windows (automatic, or pinned with --compact)
  • Remote monitoring via WebSocket (JSON over WS)
  • Optional WSS (TLS): agent auto-generates self-signed cert on first run, client pins cert via –tls-ca/-t
  • Optional auth token
  • Connection profiles for quick access to saved hosts
  • Built-in demo mode (–demo)

Architecture

socktop uses a client-server architecture:

┌─────────────────┐         WebSocket          ┌──────────────────┐
│                 │ ◄────────────────────────► │                  │
│  socktop (TUI)  │    (with TLS optional)     │  socktop-agent   │
│     Client      │                            │   (Background)   │
│                 │                            │                  │
└─────────────────┘                            └──────────────────┘
        │                                               │
        │                                               │
        ▼                                               ▼
  User Terminal                                  System Metrics
  Local or Remote                                (sysinfo crate)

The agent runs on each system you want to monitor, collecting metrics using the sysinfo crate. The client connects to one or more agents to display real-time system information.

Quick Demo

socktop --demo

Spins up a temporary local agent on port 3231 and connects to it. Stops automatically when you quit.

Use Cases

  • Remote server monitoring
  • Homelab / Raspberry Pi cluster monitoring
  • Development / testing resource usage
  • Custom dashboards via socktop_connector library

Project Status

socktop is actively maintained and used in production environments. The project follows semantic versioning and maintains backward compatibility within major versions.

  • Current Version: 1.60.x — see GitHub Releases for release notes
  • Supported Platforms: Linux (amd64, arm64, armhf, riscv64), Windows, macOS (client) — see Platform Notes
  • License: MIT

Wire changes between versions are additive: mixed client/agent versions keep working during rollouts.

Community and Support

Next Steps

See Quick Start for installation.