πŸ‘» NeoHtop CLI

March 29, 2026 Β· View on GitHub

πŸ‘» NeoHtop CLI

A cross-platform terminal process monitor with btop-style visualizations

License: MIT Go Release npm

The CLI companion to NeoHtop β€” built with Go and the Charm ecosystem.

Installation Β· Features Β· Keybindings Β· Themes Β· Configuration


NeoHtop CLI Demo
NeoHtop CLI Screenshot

Installation

npm install -g neohtop-cli

Or download a prebuilt binary from the Releases page:

macOS
# Apple Silicon
curl -LO https://github.com/Abdenasser/neohtop-cli/releases/latest/download/neohtop-cli-macos-arm64.tar.gz
tar xzf neohtop-cli-macos-arm64.tar.gz
sudo mv neohtop-cli-macos-arm64 /usr/local/bin/neohtop-cli

# Intel
curl -LO https://github.com/Abdenasser/neohtop-cli/releases/latest/download/neohtop-cli-macos-amd64.tar.gz
tar xzf neohtop-cli-macos-amd64.tar.gz
sudo mv neohtop-cli-macos-amd64 /usr/local/bin/neohtop-cli
Linux
# x86_64
curl -LO https://github.com/Abdenasser/neohtop-cli/releases/latest/download/neohtop-cli-linux-amd64.tar.gz
tar xzf neohtop-cli-linux-amd64.tar.gz
sudo mv neohtop-cli-linux-amd64 /usr/local/bin/neohtop-cli

# ARM64
curl -LO https://github.com/Abdenasser/neohtop-cli/releases/latest/download/neohtop-cli-linux-arm64.tar.gz
tar xzf neohtop-cli-linux-arm64.tar.gz
sudo mv neohtop-cli-linux-arm64 /usr/local/bin/neohtop-cli
Windows

Download neohtop-cli-windows-amd64.zip and add the extracted folder to your PATH.

Build from source

Requires Go 1.25+ and a C compiler for CGo on macOS.

git clone https://github.com/Abdenasser/neohtop-cli.git
cd neohtop-cli
make build
make install  # optional β€” copies to /usr/local/bin/

Features

Real-time monitoring CPU per-core sparklines, memory, disk I/O, and network stats rendered with braille-dot visualizations

Powerful search Regex-powered filtering with live match highlighting β€” ^chrome, name|pid, \.log$

15 built-in themes Catppuccin, Dracula, Tokyo Night, Nord, Gruvbox, Synthwave, and more β€” switch with t

Process management Inspect details, kill processes, pin favorites to the top, toggle tree view

JSON output neohtop-cli --json pipes structured data to jq for scripting and dashboards

Single binary, cross-platform macOS, Linux, and Windows β€” no runtime dependencies


Quick Start

neohtop-cli          # launch the TUI
neohtop-cli --json   # one-shot JSON snapshot
neohtop-cli --help   # see all options

Press ? inside the TUI to see every keybinding.


Keybindings

KeyAction
Generalq Β· Ctrl+CQuit
?Help overlay
s Β· /Search (regex)
SpacePause / resume
EscClose overlay / clear search
Navigate↑ ↓ j kMove selection
PgUp Β· PgDnPage scroll
Home Β· g / End Β· GJump to top / bottom
Processi Β· EnterInspect details
k Β· x Β· DelKill (with confirmation)
pPin / unpin
Display0–9Sort by column
fFilter panel
cColumn visibility
TTree view
tTheme selector
rCycle refresh rate
MouseClick rowSelect process
Double-clickOpen details
Click headerSort by column
Scroll wheelNavigate list

Press s or / to search. Supports full regex:

chrome          process name contains "chrome"
^sys            names starting with "sys"
\.log$          commands ending in ".log"
node|deno       matches either
1234            PID 1234

Matches are highlighted in yellow in the Name and Command columns.


Themes

Press t to open the theme selector with live color swatches.

Charm (default)Catppuccin MochaCatppuccin Latte
DraculaTokyo NightGruvbox Dark
NordOne DarkRosΓ© Pine
SynthwaveSolarized DarkMonokai Pro
High ContrastGreen TerminalAmber Terminal

JSON Output

--json outputs a single snapshot of system stats and all processes. Perfect for scripting:

# top 10 by CPU
neohtop-cli --json | jq '[.processes[] | {name, cpu: .cpu_usage}] | sort_by(.cpu) | reverse[:10]'

# memory usage
neohtop-cli --json | jq '.system | {memory_used, memory_total, pct: (.memory_used/.memory_total*100|round)}'

# watch mode
watch -n2 'neohtop-cli --json | jq ".system.cpu_usage_per_core"'

Configuration

Settings persist at ~/.config/neohtop-cli/config.json:

{
  "columns": ["pid", "name", "cpu", "memory", "status", "user", "command"],
  "refresh_rate_ms": 1000,
  "theme": "charm"
}

Columns: pid name cpu memory status user command threads runtime disk

Refresh rates β€” cycle with r: 1s (default) β†’ 2s β†’ 3s β†’ 5s β†’ 0.5s


Architecture

Pure Go application using native OS APIs β€” no FFI, no external dependencies.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          Go TUI (Bubble Tea v2)          β”‚
β”‚                                          β”‚
β”‚  Stats Bar Β· Toolbar Β· Process Table     β”‚
β”‚  Sparklines Β· Braille Bars Β· Overlays    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚          Native Go Monitor               β”‚
β”‚                                          β”‚
β”‚  process_darwin.go   system_darwin.go    β”‚
β”‚  process_linux.go    system_linux.go     β”‚
β”‚  process_windows.go  system_windows.go   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Built with Bubble Tea v2 and Lip Gloss v2.

Project structure
neohtop-cli/
β”œβ”€β”€ cli/
β”‚   β”œβ”€β”€ main.go               # entry point + --json + --version
β”‚   β”œβ”€β”€ model/                 # Bubble Tea model (state + update loop)
β”‚   β”œβ”€β”€ view/                  # UI components
β”‚   β”‚   β”œβ”€β”€ stats_bar.go       #   CPU, memory, network, info panels
β”‚   β”‚   β”œβ”€β”€ process_table.go   #   main data grid
β”‚   β”‚   β”œβ”€β”€ toolbar.go         #   button bar
β”‚   β”‚   β”œβ”€β”€ footer.go          #   status bar
β”‚   β”‚   β”œβ”€β”€ sparkline.go       #   time-series sparklines
β”‚   β”‚   β”œβ”€β”€ bar.go             #   braille progress bars
β”‚   β”‚   β”œβ”€β”€ help.go            #   keybinding overlay
β”‚   β”‚   β”œβ”€β”€ process_details.go #   process info modal
β”‚   β”‚   β”œβ”€β”€ kill_confirm.go    #   kill confirmation
β”‚   β”‚   β”œβ”€β”€ filter_panel.go    #   filter configuration
β”‚   β”‚   β”œβ”€β”€ column_panel.go    #   column visibility
β”‚   β”‚   β”œβ”€β”€ theme_panel.go     #   theme selector
β”‚   β”‚   └── process_icons.go   #   140+ Nerd Font icons
β”‚   β”œβ”€β”€ monitor/               # OS-specific system monitoring
β”‚   β”œβ”€β”€ theme/                 # 15 color themes
β”‚   β”œβ”€β”€ filter/                # search, filter, sort, tree
β”‚   └── config/                # persistent user settings
β”œβ”€β”€ Makefile
└── CONTRIBUTING.md

NeoHtop CLI vs NeoHtop Desktop

FeatureDesktopCLI
Process monitoringβœ…βœ…
CPU per-core statsβœ…βœ…
Memory / Disk / Networkβœ…βœ…
Regex searchβœ…βœ…
Kill / Pin / Inspectβœ…βœ…
Mouse supportβœ…βœ…
Themes1215
Process tree viewβ€”βœ…
JSON scriptingβ€”βœ…
Runs in terminalβ€”βœ…
Single binaryβ€”βœ…

Contributing

See CONTRIBUTING.md for development setup, code style, and how to add themes, icons, and keybindings.

License

MIT


NeoHtop Desktop Β· Bubble Tea Β· btop

Made with πŸ‘» by Abdenasser