gotop(1)

NAME
gotop - A terminal based graphical activity monitor, inspired by gtop and vtop

SYNOPSIS
gotop [--remote-name ] [--remote-url ] [--remote-refresh ] [-c|--color default] [-S|--graphscale 7] [-v|-V|--version] [-p|--percpu] [--no-percpu] [-a|--averagecpu] [--no-averagecpu] [--fahrenheit] [--celsius] [-s|--statusbar] [--no-statusbar] [-r|--rate 1s] [-l|--layout default] [-i|--interface all] [-x|--export ] [--mbps] [--bytes] [--test] [--no-test] [-C ] [--nvidia] [--no-nvidia] [--list ] [--write-config] [-h|--help] [--version]

DESCRIPTION
gotop shows system information in a terminal UI. It can be configured to have different layouts, color schemes, and widgets, and it is able to show information from other computers.

Anything you change on the command line can be written to a config file using the `--write-config` argument, which can then be edited further. Just get your arguments the way you like, then run gotop again with the same arguments and the `--write-config` flag, and gotop will persist your options.

Colorschemes are json files; put them in the config directory (usually ~/.config/gotop/{name}.json) and load them with the `-c {name}` argument. The keys are:

    Fg -- int, foreground color
    Bg -- int, background color
    BorderLabel -- int, color of widget text
    BorderLine -- int, color of borders
    CPULines -- array of ints for the colors of lines
    BattLines -- array of ints for the colors of lines
    MemLines -- array of ints for the colors of lines
    ProcCursor -- int, color of the cursor in the process widget
    Sparklines -- array of ints for the colors of network usage
    DiskBar -- int, color of the disk bars
    TempLow -- int, color used for low temperatures
    TempHigh -- int, color used for high temperatures

For example:

    { "Fg": 7, "CPULines": [4, 3, 2, 1, 5, 6, 7, 8] }

Colorschemes are referred to by their name minus the .json suffix. More examples are here:

    https://github.com/xxxserxxx/gotop/tree/master/colorschemes

Layout files are plain text files, with widget names on rows roughly representing a grid. The format is ROWSPAN:WIDGETNAME/COLSPAN. COLSPAN is relative to the rest of the line, so a line saying "cpu mem/3" will give the CPU widget 25% of the width, and the memory widget 75% of the width. ROWSPAN is the height of the widget, so "2:cpu mem" will make the CPU widget 2 rows high, and the memory widget 1 row high. An example is:

    2:cpu
    disk/1 2:mem/2
    temp
    2:net 2:procs

Save your layout under any file name either in the config directory or your current directory and reference the file name with the `-l` argument. More details about the rules are here:

    https://github.com/xxxserxxx/gotop/blob/master/docs/layouts.md

and examples are here:

    https://github.com/xxxserxxx/gotop/tree/master/layouts

gotop can function as both a metrics exporter and viewer. As an exporter, it exports Prometheus metrics, and it does not handle either encryption or authentication, and so should be run behind a reverse proxy. When gotop is run with the `-x` argument, gotop will export metrics on the given port. To try it, run

    gotop -x :8884

and then from another shell, run:

    curl http://localhost:8884/metrics

To show these metrics in gotop, instead of curl run:

    gotop --remote-url http://localhost:8884/metrics

You will see additional values in your widgets. To monitor remote machines, run gotop on them with the `-x` export flag behind a reverse proxy such as Caddy:

    myserver.net {
        basicauth / gtuser gtpass
        reverse-proxy /metrics http://localhost:8884
    }

and then on your local gotop:

    gotop --remote-url https://gtuser:gtpass@myserver.net/metrics

Config files, layouts, and color schemes are searched for (in order):

- In the current directory - In $XDG_CONFIG_DIR/gotop - In /etc/gotop (on Linux and MacOS)

More information and detailed documentation can found at https://github.com/xxxserxxx/gotop`

OPTIONS

--remote-name
    Remote: name of remote gotop

--remote-url
    Remote: URL of remote gotop

--remote-refresh
    Remote: Frequency to refresh data, in seconds

-c,--color default
    Set a colorscheme.

-S,--graphscale 7
    Graph scale factor, >0

-v,-V,--version
    Print version and exit.

-p,--percpu
    Show each CPU in the CPU widget.

--no-percpu
    Show aggregate CPU in the CPU widget.

-a,--averagecpu
    Show average CPU in the CPU widget.

--no-averagecpu
    Disable show average CPU in the CPU widget.

--fahrenheit
    Show temperatures in fahrenheit.

--celsius
    Show temperatures in celsius.

-s,--statusbar
    Show a statusbar with the time.

--no-statusbar
    Disable statusbar.

-r,--rate 1s
    Refresh frequency. Most time units accepted. "1m" = refresh every minute. "100ms" = refresh every 100ms.

-l,--layout default
    Name of layout spec file for the UI. Use "-" to pipe.

-i,--interface all
    Select network interface. Several interfaces can be defined using comma separated values. Interfaces can also be ignored using "!"

-x,--export
    Enable metrics for export on the specified port.

--mbps
    Show network rate as mbps.

--bytes
    args.no-mbps

--test
    Runs tests and exits with success/failure code.

--no-test
    Disable tests.

-C  Config file to use instead of default (MUST BE FIRST ARGUMENT).

--nvidia
    Enable NVidia GPU metrics.

--no-nvidia
    Disable NVidia GPU metrics.

--list
    List <devices|layouts|colorschemes|paths|keys|langs>
          devices: Prints out device names for filterable widgets
          layouts: Lists built-in layouts
          colorschemes: Lists built-in colorschemes
          paths: List out configuration file search paths
          widgets: Widgets that can be used in a layout
          keys: Show the keyboard bindings.
          langs: Show supported language translations.

--write-config
    Write out a default config file.

-h,--help
    Show usage message

--version
    Show version