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!