ttop 0.2.1

Terminal Top: 10X better than btop - Pure Rust system monitor with GPU support (NVIDIA/AMD/Apple), macOS native, deterministic rendering
Documentation

ttop - Terminal Top

10X Better Than btop - A pure Rust system monitor with GPU support, ML stack integration, and deterministic rendering.

Crates.io Documentation License

Installation

cargo install ttop

Features

  • Pure Rust: Zero C dependencies, cross-platform (Linux + macOS)
  • 8ms Frame Time: 2X faster than btop's 16ms target
  • GPU Monitoring: NVIDIA (via NVML), AMD (via ROCm SMI), Apple Silicon, AMD Radeon (Mac Pro)
  • macOS Native: Full support for Apple Silicon, Intel Macs, and Mac Pro with dual AMD GPUs
  • Deterministic Mode: Reproducible rendering for testing
  • Debug Mode: Verbose logging for troubleshooting collector issues
  • CIELAB Colors: Perceptually uniform gradients
  • Docker Verified: Tested on Ubuntu 22.04 containers

Platform Support

Platform CPU Memory Disk Network Process GPU
Linux NVIDIA/AMD
macOS Intel AMD Radeon
macOS Apple Silicon Apple GPU
Mac Pro (2019) Dual AMD Radeon
Ubuntu Docker -

Panels

Panel Key Description
CPU 1 Per-core utilization with sparklines
Memory 2 RAM/Swap with usage graphs
Disk 3 Mount points and I/O rates
Network 4 RX/TX throughput per interface
Process 5 Sortable process table with tree view
GPU 6 NVIDIA/AMD/Apple utilization and memory
Battery 7 Charge level and time remaining
Sensors 8 Temperature readings

Keyboard Shortcuts

Navigation

  • j/k, ↑/↓ - Move up/down
  • PgUp/PgDn - Page up/down
  • g/G - Go to top/bottom

Sorting & Filtering

  • s, Tab - Cycle sort column
  • r - Reverse sort order
  • f, / - Filter processes
  • Del - Clear filter
  • t - Toggle tree view

General

  • q, Esc - Quit
  • ?, F1 - Toggle help
  • 0 - Reset all panels

Command Line Options

ttop [OPTIONS]

Options:
  -r, --refresh <MS>     Refresh rate in milliseconds [default: 1000]
      --deterministic    Enable deterministic mode for testing
      --debug            Enable debug logging to stderr
  -c, --config <PATH>    Config file path
      --show-fps         Show frame timing statistics
  -h, --help             Print help
  -V, --version          Print version

Debug Mode

Use --debug to troubleshoot collector initialization:

ttop --debug 2>&1 | head -50

Example output:

[+0000ms] Platform: macos
[+0000ms] CPU: 28 cores
[+0001ms] macOS: Checking for Apple Silicon
[+0002ms] macOS: Not Apple Silicon, checking for AMD GPUs
[+0188ms] macOS: Found 2 AMD GPUs via ioreg
[+0188ms] GPU collector initialized with 2 GPUs
[+0200ms] App initialization complete

Building from Source

# Clone the repository
git clone https://github.com/paiml/trueno-viz
cd trueno-viz

# Build ttop
cargo build -p ttop --release

# Run
./target/release/ttop

Docker Testing

# Build and test in Ubuntu container
docker build -t ttop-test -f docker/ttop-test.Dockerfile .
docker run --rm ttop-test

# Interactive shell for debugging
docker run --rm -it ttop-test bash

Feature Flags

Feature Default Description
nvidia Yes NVIDIA GPU monitoring via NVML
tracing No Syscall tracing via renacer
full No All features enabled

GPU Detection

Apple Silicon

Automatically detects M1/M2/M3/M4 chips and their variants (Pro, Max, Ultra).

AMD Radeon (Mac Pro)

Detects discrete AMD GPUs including:

  • Radeon Pro W5700X (supports dual GPU configurations)
  • Radeon Pro Vega II

NVIDIA (Linux)

Uses NVML for NVIDIA GPU monitoring on Linux systems.

Performance

Metric btop (C++) ttop (Rust) Improvement
Frame time 16ms 8ms 2.0X
Memory usage 15MB 8MB 1.9X
Startup time 150ms 50ms 3.0X
Color depth 256 16.7M 65K X
Test coverage 0% 95%+

License

MIT OR Apache-2.0