Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A beautiful, real-time terminal-based system monitor for Linux, macOS, and Windows. Built with Go and Bubble Tea, CropTop provides an interactive interface to monitor CPU, memory, processes, network, disk usage, and battery status with smooth progress bars and keyboard navigation.

prabalesh/croptop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

26 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒฑ CropTop

A beautiful, interactive terminal-based system monitor built with Go

Go Version License: MIT Build Status

โœจ Overview

CropTop is a modern, feature-rich system monitoring tool that brings beautiful terminal UI to system administration. Built with Go and the powerful Bubble Tea framework, it provides real-time insights into your system's performance with an intuitive, keyboard-driven interface.

๐Ÿš€ Features

๐Ÿ“Š Multi-Tab Interface

  • Overview - Quick system summary with key metrics
  • CPU - Detailed CPU usage, temperature, and per-core statistics
  • Memory - RAM and swap usage with visual progress bars
  • Processes - Interactive process list with sorting and navigation
  • Network - Network interface statistics and traffic monitoring
  • Disk - Disk usage for all mounted filesystems
  • Battery - Battery status, health, and charging information

๐ŸŽจ Beautiful Terminal UI

  • Responsive design that adapts to terminal size
  • Smooth progress bars and visual indicators
  • Color-coded status information
  • Scrollable content with navigation indicators
  • Tab scrolling for smaller terminals

โšก Performance & Usability

  • Real-time updates (1-second refresh rate)
  • Efficient resource usage
  • Keyboard shortcuts for quick navigation
  • Cross-platform compatibility (Linux, macOS, Windows)
  • No external dependencies required

๐Ÿ“ฆ Installation

From Source

# Clone the repository
git clone https://github.com/prabalesh/croptop.git

# Navigate to project directory
cd croptop

# Build and install
go mod tidy
go build -o croptop ./cmd/croptop

# Run CropTop
./croptop

Using Go Install

go install github.com/prabalesh/croptop/cmd/croptop@latest

๐ŸŽฎ Usage

Basic Commands

# Start CropTop
croptop

Keyboard Shortcuts

Key Action
โ†/โ†’ or h/l Switch between tabs
Shift+โ†/โ†’ or H/L Scroll tabs (when they don't fit)
โ†‘/โ†“ or k/j Navigate processes / Scroll content
PgUp/PgDn Page up/down scrolling
Home/End Jump to top/bottom of content
Ctrl+C or q Quit application

Screenshots

Overview Tab

  • System summary with CPU and memory usage
  • Quick stats including uptime and process count
  • Visual progress bars for key metrics

CPU Tab

  • CPU model and frequency information
  • Real-time temperature monitoring
  • Per-core usage with individual progress bars

Processes Tab

  • Interactive process list with PID, name, CPU%, memory%
  • Process status and command information
  • Scrollable with selection highlighting

๐Ÿ—๏ธ Architecture

CropTop follows a clean, modular architecture:

croptop/
โ”œโ”€โ”€ cmd/croptop/        # Application entry point
โ”œโ”€โ”€ internal/
โ”‚   โ”œโ”€โ”€ collector/      # System data collection
โ”‚   โ”œโ”€โ”€ models/         # Data structures
โ”‚   โ””โ”€โ”€ ui/            # Terminal UI components
โ””โ”€โ”€ README.md

Key Components

  • Collector: Gathers system statistics (CPU, memory, processes, etc.)
  • Models: Defines data structures for system information
  • UI: Implements the terminal interface using Bubble Tea
  • Styles: Manages consistent visual styling

๐Ÿ› ๏ธ Development

Prerequisites

  • Go 1.21 or higher
  • Terminal with color support

Building from Source

# Clone and enter directory
git clone https://github.com/prabalesh/croptop.git
cd croptop

# Install dependencies
go mod download

# Run in development mode
go run ./cmd/croptop

# Build for production
go build -ldflags="-s -w" -o croptop ./cmd/croptop

Dependencies

CropTop leverages these excellent Go libraries:

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow Go best practices and formatting (gofmt, golint)
  • Add tests for new functionality
  • Update documentation as needed
  • Ensure compatibility across platforms

๐Ÿ“Š System Requirements

  • Operating System: Linux, macOS, Windows
  • Go Version: 1.21+
  • Terminal: Any terminal with color support
  • Permissions: Standard user permissions (no root required)

๐Ÿ” Troubleshooting

Common Issues

Permission denied errors:

  • CropTop doesn't require root permissions for basic functionality
  • Some system stats may be limited without elevated privileges

Terminal display issues:

  • Ensure your terminal supports color and Unicode characters
  • Try resizing the terminal if content appears cut off

Performance issues:

  • CropTop uses minimal resources, but you can adjust refresh rates if needed

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Built with Charm libraries for beautiful terminal UI
  • Inspired by classic system monitors like htop and btop
  • Thanks to the Go community for excellent tooling and libraries

๐Ÿ“ž Support & Community


Made with โค๏ธ and Go
โญ Star us on GitHub if CropTop helps you monitor your system!

About

A beautiful, real-time terminal-based system monitor for Linux, macOS, and Windows. Built with Go and Bubble Tea, CropTop provides an interactive interface to monitor CPU, memory, processes, network, disk usage, and battery status with smooth progress bars and keyboard navigation.

Topics

Resources

Stars

Watchers

Forks

Languages