A beautiful, interactive terminal-based system monitor built with Go
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.
- 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
 
- 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
 
- 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
 
# 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
./croptopgo install github.com/prabalesh/croptop/cmd/croptop@latest# Start CropTop
croptop| 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 | 
- System summary with CPU and memory usage
 - Quick stats including uptime and process count
 - Visual progress bars for key metrics
 
- CPU model and frequency information
 - Real-time temperature monitoring
 - Per-core usage with individual progress bars
 
- Interactive process list with PID, name, CPU%, memory%
 - Process status and command information
 - Scrollable with selection highlighting
 
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
- 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
 
- Go 1.21 or higher
 - Terminal with color support
 
# 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/croptopCropTop leverages these excellent Go libraries:
- Bubble Tea - Terminal UI framework
 - Lipgloss - Styling and layout
 - Bubbles - UI components (progress bars)
 
Contributions are welcome! Here's how you can help:
- Fork the repository
 - Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
 
- Follow Go best practices and formatting (
gofmt,golint) - Add tests for new functionality
 - Update documentation as needed
 - Ensure compatibility across platforms
 
- Operating System: Linux, macOS, Windows
 - Go Version: 1.21+
 - Terminal: Any terminal with color support
 - Permissions: Standard user permissions (no root required)
 
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
 
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Charm libraries for beautiful terminal UI
 - Inspired by classic system monitors like 
htopandbtop - Thanks to the Go community for excellent tooling and libraries
 
- ๐ Issues: GitHub Issues
 - ๐ฌ Discussions: GitHub Discussions
 - ๐ง Contact: @prabalesh
 
โญ Star us on GitHub if CropTop helps you monitor your system!