Desktop CPU Monitor I threw together while trying to debug some issues with my computer. Have not been dedicating a lot of time to this lately since I'm not on a machine with Snap access anymore.
This application provides a real-time graphical representation of CPU utilization for each logical core. It displays the utilization percentage and frequency of each core with history going back 30 measurements.
The ultimate goal is to have something more akin to the performance tab in Windows Task Manager.
- Displays CPU core utilization and frequency in real-time
- Customizable update interval (default: every 2 seconds)
- Utilization graphs showing historical data
- Command-line flags for customization:
--columns: Number of columns in the grid layout (default: 4)--interval: Update interval (default: 2s)--history: Number of historical data points to keep (default: 30)--logical: Show logical cores vs physical cores (default: true)
- Improved error handling and logging
- Modular code structure for easier maintenance
Currently, this application is only available on x86 machines running linux. ARM64 is available via snap with the --edge flag but it's untested.
- Install the snap package with
sudo snap install tylercode-cycles- A "Release" build will be out once I've tested it on a few other machines.
- Coming in 0.5
- Download the latest .AppImage from the releases page.
- Run the AppImage
- Download the latest release on the github release page. Found here...
- Download the "cycles" file or the entire zip
- Make it executable if it isn't already
chmod +x cycles
- Run it! (double click or
./cycles)
- Go (Golang) installed on your system.
- Fyne library for UI development in Go.
gopsutillibrary for accessing system information.
The easiest way to get started developing:
- Clone the repository (I would make a fork and clone that to contribute):
git clone https://github.com/TylerCode/cycles
cd cycles- Run automated setup (detects your OS and installs all dependencies):
make setup- Build and run:
make runThat's it! The make setup command will:
- Detect your Linux distribution (Ubuntu/Debian/Zorin/Pop, Fedora/RHEL, Arch)
- Install all required system dependencies
- Download and verify Go dependencies
- Test that everything builds correctly
Note: If your specific distribution isn't recognized, the script will automatically detect your package manager (apt-get, dnf, or pacman) and use the appropriate installation method.
If you prefer manual installation or the automated setup doesn't work:
- Clone the repository:
git clone https://github.com/TylerCode/cycles
cd cycles- Install system dependencies:
Ubuntu/Debian:
sudo apt-get install libgl1-mesa-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libglfw3-dev libxxf86vm-dev pkg-config gcc makeFedora/RHEL:
sudo dnf install mesa-libGL-devel libXcursor-devel libXrandr-devel libXinerama-devel libXi-devel glfw-devel libXxf86vm-devel pkg-config gcc gcc-c++ makeArch Linux:
sudo pacman -S mesa libxcursor libxrandr libxinerama libxi glfw-x11 pkg-config gcc make- Install Go dependencies:
make install-deps- Build the application:
make build- Run it:
make run- Run tests:
make testmake build # Build optimized binary
make run # Build and run
make test # Run all tests
make check # Format, vet, and test
make clean # Remove build artifacts
make help # Show all available commandsCycles supports several command-line flags for customization:
./cycles --columns 8 --interval 1s --history 60 --logical=falseContributions to this project will be welcome probably after 0.6!
Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature). - Make your changes.
- Commit your changes (
git commit -am 'Add some feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a Pull Request.
MIT
- Fyne team for an incredible cross-platform ui kit.
- The
gopsutillibrary for system information access.

