C CLI & TUI Tools
27 tools for the terminal written in C. Sorted by GitHub stars; the most starred are Neovim, FFmpeg and tmux.
Tools
Neovim
Extensible text editor forked from Vim with async job control, embedded terminal, and language API access
FFmpeg
Collection of libraries and command-line tools (ffmpeg, ffplay, ffprobe) for converting, streaming, playing and inspecting audio, video and subtitles.
tmux
Terminal multiplexer that creates, manages, and controls multiple terminal sessions from a single screen
wrk
HTTP benchmarking tool that generates high load using multithreaded design and event notification systems
mpv
Free command-line media player supporting many audio/video formats, codecs and subtitle types, with GPU shader-based rendering and optional hardware decoding.
jq
Command-line JSON processor for slicing, filtering, mapping and transforming structured data
hashcat
Password recovery tool that cracks hashes on GPUs and CPUs using CUDA, HIP, Metal or OpenCL, with 590+ hash modes and 10 attack modes.
The Silver Searcher
High-performance code search tool, faster alternative to ack with git ignore support and parallel processing
radare2
Command-line reverse engineering framework for disassembling, analyzing, emulating, debugging and patching binaries across many architectures and file formats.
fastfetch
System information tool that displays hardware and OS details with customizable ASCII art logos and module configuration
nnn
Terminal file manager with disk usage analysis, batch operations, and extensive plugin ecosystem
GoAccess
Real-time web server log analyzer written in C that shows HTTP statistics in a terminal or a live HTML dashboard, with JSON and CSV export.
ImageMagick
Open-source C software suite with a command-line interface and APIs for creating, editing, converting, and composing bitmap images in 200+ formats.
Nmap
Network scanner for host discovery, port scanning, service and OS detection, with a scripting engine (NSE) for extra checks.
tig
ncurses-based text-mode interface for browsing Git repositories and staging changes
ttyd
Command-line tool that shares a terminal command over the web, served via libuv and rendered in the browser with WebGL2, with SSL and basic auth.
nvtop
htop-like GPU and accelerator task monitor supporting NVIDIA, AMD, Intel, Apple, and other vendors
htop
Cross-platform interactive process viewer with real-time system monitoring and process management
CAVA
Cross-platform bar spectrum audio visualizer for the terminal or SDL desktop window, with PipeWire, PulseAudio, ALSA, JACK and other input backends.
cmus
Console music player for Unix-like systems with ncurses interface and optional input/output plugins for many audio formats and backends.
entr
Runs arbitrary commands when files change using kqueue or inotify to avoid polling
Chafa
Command-line utility that converts images and animated GIFs into ANSI/Unicode character art or terminal graphics formats, built on a C library.
jo
Command-line utility to create JSON objects and arrays from shell arguments and piped input
NeoMutt
Terminal email client that collects community patches against Mutt, with Notmuch, NNTP, sidebar, compressed folders and header cache options.
weechat
Terminal-based chat client with modular plugin architecture and multi-protocol support, primarily for IRC
irssi
Terminal-based IRC client with modular architecture and support for multiple chat protocols
elinks
Text-based web browser with frame/table support, scripting, and extensive customization options
Guides
- A terminal git workflow with lazygit and deltaInstall lazygit and delta, set delta as git's pager, render lazygit diffs with it, and stage hunks, commit and rebase from the keyboard.
- Benchmark shell commands with hyperfineTime shell commands with hyperfine: warmup runs, cache-clearing with --prepare, side-by-side comparisons, parameter scans and Markdown or JSON export.
- Best Command-Line Benchmarking ToolsCompare hyperfine, wrk, hey and dnspyre for timing shell commands, HTTP endpoints and DNS servers from the command line.
- Best Git TUIsCompare lazygit, gitui, tig and gitu: terminal Git interfaces for staging hunks and lines, committing, and managing branches.
- Best HTTP Load Testing CLI ToolsCompare wrk, vegeta, k6 and hey for HTTP load testing: requests per second, latency percentiles, constant-rate attacks and scripting.
- Best JSON CLI ToolsCompare jq, yq, gojq, fx, dasel, gron and qo for querying, filtering and transforming JSON (and YAML) from the command line.