Home
Softono

Perfdeck

Open source MIT Go
119
Stars
5
Forks
1
Issues
0
Watchers
4 months
Last Commit

 About Perfdeck

πŸ“Š A modern, lightweight, and customizable TUI performance monitor for your terminal. Built with Go and Bubble Tea.

Platforms

Web Self-hosted

Languages

Go

Links

Need Help Installing Perfdeck?

We provide expert installation service for this software. Our team will install, configure, and secure Perfdeck on your server. plans start at just $30.

πŸ“Š Perfdeck

A modern, lightweight, and customizable TUI performance monitor for your terminal.

Go Reference Go Report Card CI License: MIT Release

Features β€’ Installation β€’ Usage β€’ Configuration β€’ Contributing


πŸ’‘ Why Perfdeck?

Traditional performance monitors often overwhelm users with information or lack the flexibility to show exactly what you need. Perfdeck solves this by providing:

  • Consolidation: View output from multiple diagnostic tools (like top, vmstat, netstat) in one place.
  • Focus: A clean, tabbed interface lets you switch between different metrics without terminal clutter.
  • Visibility: Real-time sparklines provide an immediate "at-a-glance" health check of your system's core resources.
  • Flexibility: Don't like the defaults? Bring your own shell commands via a simple TOML file.

✨ Features

  • πŸš€ Blazing Fast: Written in Go with minimal CPU and memory overhead.
  • πŸ“‚ Tabbed Navigation: Organize your monitoring tools into logical, navigable views.
  • πŸ“ˆ Live Sparklines: Visual summaries for Load, CPU, Memory, and Network.
  • 🎨 Adaptive Themes: Seamlessly toggle between Light and Dark modes.
  • βš™οΈ Deeply Configurable: Custom commands, refresh intervals, and environment-specific settings.
  • 🐧 Cross-Platform: Intelligent defaults for both Linux and macOS.

πŸ“Έ Screenshots

Dark Mode (Default)

Perfdeck Dark Mode

Light Mode

Perfdeck Light Mode

πŸš€ Installation

πŸ“¦ Pre-built Binaries

Download the latest pre-compiled binaries from the Releases page.

πŸ› οΈ Using go install

go install github.com/sumant1122/perfdeck@latest

[!NOTE] Ensure your GOPATH/bin is in your PATH (e.g., export PATH=$PATH:$(go env GOPATH)/bin) so you can run the perfdeck command from any directory.

πŸ”¨ From Source

git clone https://github.com/sumant1122/perfdeck.git
cd perfdeck
make build
# Binary will be in the project root

πŸ“– Usage

Simply run the command to start monitoring with default system tools:

perfdeck

⌨️ Key Bindings

Key Action
Tab / Shift+Tab Next / Previous Tab
j / k (or ↓/↑) Scroll through command output
t Toggle Light/Dark theme
v Display version information
q / Esc / Ctrl+C Exit Perfdeck

βš™οΈ Configuration

Perfdeck is designed to be personalized. To create your own configuration, create a file named perfdeck.toml in one of the following locations (searched in this order):

  1. $PERFDECK_CONFIG (full path to the file)
  2. ~/.config/perfdeck/config.toml
  3. The current directory (./perfdeck.toml)

πŸ“ Example perfdeck.toml

Create the file with your favorite editor and add the following content to customize your tabs and refresh intervals:

# Interval for updating the sparklines and default tabs
global_refresh_interval = "5s"

[[tab]]
title = "Process Explorer"
cmd = ["top", "-b", "-n", "1"]
refresh_interval = "2s" # Specific interval for this tab

[[tab]]
title = "Network Connections"
cmd = ["ss", "-tulpn"]

🍎 macOS Support

Perfdeck works great on macOS! While many Linux-native tools (like mpstat or free) are not available by default, you can easily add macOS-equivalent commands to your perfdeck.toml.

Example macOS-friendly tabs:

[[tab]]
title = "Memory (vm_stat)"
cmd = ["vm_stat"]

[[tab]]
title = "Disk I/O (iostat)"
cmd = ["iostat", "-w", "1", "-c", "2"]

[[tab]]
title = "Battery Status"
cmd = ["pmset", "-g", "batt"]

πŸ›  Development

We utilize a simple Makefile for a streamlined development experience:

  • make run: Start the application in development mode.
  • make build: Compile the binary.
  • make test: Execute the test suite.
  • make lint: Run the golangci-lint (if installed).

🀝 Contributing

We love contributions! Whether it's a bug report, a new feature idea, or a documentation improvement, please feel free to:

  1. Check out the Contributing Guidelines.
  2. Open an Issue.
  3. Submit a Pull Request.

πŸ“œ License

Distributed under the MIT License. See LICENSE for details.


Built with ❀️ using Bubble Tea