explaingit

cjbassi/gotop

7,410GoAudience · ops devopsComplexity · 1/5Setup · easy

TLDR

An archived terminal system monitor that shows live CPU, memory, disk, and network charts in your command line window with Vim-style keyboard controls and process management.

Mindmap

mindmap
  root((gotop))
    What it shows
      CPU usage
      Memory usage
      Disk activity
      Network traffic
      Running processes
    Controls
      Vim-style keys
      Mouse scrolling
      Kill processes
    Installation
      Prebuilt binary
      Homebrew macOS
      AUR Arch Linux
    Status
      Archived repo
      Active fork exists
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Monitor CPU, memory, and network usage on a remote Linux server directly in an SSH terminal session.

USE CASE 2

Spot and kill a runaway process from the terminal without switching to a graphical task manager.

USE CASE 3

Get a quick system health overview on macOS or FreeBSD using a single downloaded binary.

Tech stack

Go

Getting it running

Difficulty · easy Time to first run · 5min

This repo is archived, use the community-maintained fork for current features and bug fixes.

In plain English

gotop is a system activity monitor that runs entirely inside a terminal window, displaying live charts and graphs for CPU usage, memory, disk activity, network traffic, and running processes. Instead of opening a separate application with a graphical interface, you run gotop from the command line and get an updating visual dashboard made of text-based graphics directly in your terminal. Important note from the README: this original repository is no longer maintained. A community-maintained fork exists at a separate GitHub location, and that fork is where active development continues. The code here is archived. On the display, you can scroll through the list of running processes, sort them by CPU usage, memory usage, or process ID, and kill a selected process directly from the interface. The keyboard shortcuts follow a Vim-style layout, meaning j/k move the cursor down and up, and gg jumps to the top of the list. Mouse scrolling and clicking also work for navigating processes. Installation options include downloading a prebuilt binary (no additional programming tools required), installing from package managers on macOS via Homebrew, on Arch Linux via AUR, on FreeBSD via pkg, or via Snap. Building from source requires the Go programming language. Command-line flags let you customize the display: show each CPU core separately, show only CPU, memory, and process widgets for a minimal view, display a battery level indicator, adjust how frequently the readings update, or pick a specific network interface to monitor. Custom color schemes are supported by placing a JSON file in a config directory and referencing it by name at launch. The project works on Linux, macOS, and FreeBSD. OpenBSD works with some limitations. Windows support was planned but not completed.

Copy-paste prompts

Prompt 1
I downloaded the gotop binary for Linux. How do I run it to show each CPU core separately, update every 500ms, and watch only one network interface?
Prompt 2
How do I create a custom color scheme for gotop by editing a JSON config file and loading it at startup?
Prompt 3
The original gotop repo is archived. Where is the active community fork and how do I install it on macOS with Homebrew?
Open on GitHub → Explain another repo

← cjbassi on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.