Best CLI Tools

Command-line tools that developers love: terminal utilities, shell enhancements, and CLI frameworks.

Ranked by Discovery Score — our 0-100 composite of adoption, maintenance, community, and license health. How scoring works.

By Erik Loyd, SaaS CEO and former COO/CFO of an AWS Premier Partner.

1
ghostty95Fully free
59,385Zigpermissive

Ghostty is a fast, native terminal emulator with GPU acceleration. macOS gets SwiftUI and Metal rendering; Linux gets GTK with optional systemd integration. It nails standards compliance (Kitty graphics, image protocols, synchronized rendering) while keeping legacy xterm sequences working. Free, MIT-licensed, no setup beyond installing. Multi-window, tabs, splits with customization, and a multi-threaded architecture (one read, write, and render thread per terminal). Performance is in Alacritty territory, around 100x faster than the old defaults, but with a real native UI instead of a bare config file. This is the right pick if you've used Alacritty and missed the polish, or used iTerm2 and missed the speed. Solo: free and worth installing. Small teams: free. Large teams: free. The catch: no Windows yet, and the project deliberately has not added Ghostty-specific terminal sequences. If you want a wild new feature, you wait. If you want a terminal that just works, you don't.

Completely free and open source. Always.

Pricing breakdown

**Free tier:** Everything. MIT-licensed standalone app and embeddable libghostty library. **Self-hosted:** Not applicable; it's a desktop app. **Paid:** No paid version exists or is planned.

solo: freeteam: freesmall: free
2
electerm90Fully free
14,684JavaScriptpermissive

electerm is one app for every way you connect to a remote machine. SSH, SFTP, FTP, Telnet, serial port, RDP, VNC, and Spice, in a single cross-platform client for Windows, Mac, and Linux. The commercial terminals people pay for rarely cover this much ground. This one is MIT-licensed and free. It is a normal desktop app, so setup is install-and-go through brew, snap, winget, apt, the Microsoft Store, or a direct download. You get SSH tunneling, global hotkeys, saved sessions, an in-app file editor, and recently AI command suggestions and MCP widget support, so it can pull in external tools. No account, no server, nothing to maintain. For anyone who lives in remote sessions, this is an easy yes. Solo developers and small teams: use it, there is no paywall to hit and nothing to expense. Larger teams that need shared, audited credential vaults will still want a managed tool like Termius or Teleport for the governance layer, but for individual day-to-day connecting, electerm covers it. The catch is that free and broad also means you are trusting a community Electron app with your keys and sessions. It is popular and actively maintained, but there is no vendor SLA behind it. Store your secrets accordingly.

Completely free under MIT; the only reason to pay elsewhere is team-wide credential governance.

Pricing breakdown

**Free:** Everything. MIT-licensed, no paid tier, no feature gates. SSH, SFTP, FTP, Telnet, serial, RDP, VNC, Spice, tunneling, AI command hints, MCP widgets. **Self-hosted:** Not applicable, it is a local desktop client. Your connections are yours. **Paid:** None. If you need team credential sharing with audit logs, that is where commercial tools like Termius or Teleport earn their fee.

solo: freeteam: freesmall: free
3
ripgrep89Fully free
67,124Rustpermissive

Ripgrep (rg) does what grep does but dramatically faster. It's a command-line search tool that respects your .gitignore, skips binary files, and searches recursively by default. Unlicense (public domain). Written in Rust for speed. In benchmarks, ripgrep consistently beats grep, ag (The Silver Searcher), and ack. On large codebases the difference is seconds vs minutes. VS Code uses ripgrep under the hood for its file search, that's how fast it is. Everything is free. No paid tier, no cloud version. It's a command-line binary you install and use. Available on every package manager: brew, apt, cargo, choco, scoop. The catch: honestly, there isn't much of one. ripgrep is one of those tools that's just better than what it replaced. The only real limitation is that it's regex-only, no fuzzy matching. If you need approximate matching, look at fzf for interactive fuzzy finding. And if you're deeply invested in GNU grep's exact behavior and flags, rg's flag names are slightly different, which can trip up muscle memory.

Free. Public domain. No strings.

Pricing breakdown

Fully open source under the Unlicense (public domain). No paid features, no commercial edition. It's a single binary. **Cost of use:** $0. Install via your package manager and use it forever. **Why it matters financially:** ripgrep saves developer time. If your team searches codebases frequently, faster search = less waiting. Hard to quantify, but real.

solo: free — install it and alias it to grep, you'll never go backlarge: free — it's already in your stack whether you know it or notsmall: free — standardize it across the teammedium: free — already embedded in VS Code's search
4
Starship89Fully free
59,314Rustpermissive

Starship replaces your default shell prompt with one that shows git branch, language versions, cloud context, and execution time without slowing down your shell. Written in Rust, renders in under 10ms. ISC license (basically MIT), works with Bash, Zsh, Fish, PowerShell, Nushell, and more. Install it, add one line to your shell config, done. The defaults are good: you get useful info immediately. Customize with a TOML file if you want more. Fully free. No paid tier, no service. A single binary that makes your terminal better. The prompt adapts to context: show Python version only in Python projects, show Kubernetes context only when kubectl is available, show Docker context only in directories with Dockerfiles. It's smart about what's relevant and doesn't clutter your prompt with info you don't need. The catch: if you're deep into a custom Zsh theme with Oh My Zsh or Powerlevel10k, switching to Starship means rebuilding that customization in TOML. Powerlevel10k is faster on initial shell startup (it uses instant prompt), though Starship's per-prompt render time is negligible. For most people, Starship's cross-shell compatibility and simpler config make it the better choice.

Free. A binary you install. Nothing to pay for.

Pricing breakdown

Fully open source under ISC license. Single binary, no service, no paid tier. Free forever.

solo: freelarge: freesmall: freemedium: free
5
Nushell88Fully free
40,232Rustpermissive

Nushell reimagines the shell so every command outputs structured data you can filter, sort, and manipulate. Every command outputs a table, not a string. `ls` returns columns you can filter, sort, and query. `open data.csv` gives you a real table you can manipulate. It's a shell that treats everything like a spreadsheet. MIT license, Rust. Cross-platform, works on Linux, macOS, and Windows. Built-in support for JSON, CSV, TOML, YAML, SQLite, and XML. Pipelines operate on structured data, so `ls | where size > 1mb | sort-by modified` actually works without sed/awk gymnastics. Fully free. No paid tier, no hosted version. It's a shell. Install it and use it. Solo developers: try it as your daily shell. The structured data pipeline is a genuine productivity upgrade for anyone who processes files or data regularly. Small teams: useful for scripts that process structured data, replaces bash + jq + awk chains. Medium to large: adoption requires team buy-in since Nushell scripts aren't bash-compatible. The catch: it's not POSIX-compatible. Bash scripts don't run in Nushell. Your muscle memory with bash syntax needs retraining. The plugin ecosystem is young. And if you SSH into servers, those servers run bash, so Nushell is a local tool, not a universal one. You'll maintain two mental models: Nushell locally, bash everywhere else.

Free. A shell is a shell. Nothing to pay for.

Pricing breakdown

Fully open source under MIT. No paid tier, no hosted offering. It's a shell. Install it, use it. Zero cost.

solo: free — try it as your daily driverlarge: free — evaluate team willingness to learn a new shellsmall: free — great for data processing scriptsmedium: free — team adoption requires bash muscle memory retraining
6
bat87Fully free
60,149Rustpermissive

Bat does the same thing but with syntax highlighting, line numbers, and git diff markers built in. It's cat with a brain. You type `bat file.py` and get a color-coded, numbered, annotated view of your file. Apache 2.0, written in Rust. It auto-detects the language for syntax highlighting, shows git modifications in the margin, and pages long files through less automatically. You can alias it to cat and just have a better experience everywhere. Everything is free. No paid tier, no commercial version. Single binary, install from any package manager. The catch: there really isn't one for normal use. bat is slightly slower than cat on huge files (hundreds of megabytes) because it's parsing syntax, but for files you'd actually read, the difference is imperceptible. Some people find the output too busy for piping to other commands, bat does have a `, plain` flag for that, or you can use `bat , style=plain` to strip decorations. If you pipe output, bat auto-detects it and falls back to plain text, so it plays nice with Unix pipelines.

Free. Zero strings. Install and forget.

Pricing breakdown

Fully open source under Apache 2.0. No paid features, no commercial edition. A single binary you install and use. **Cost of use:** $0. Available via brew, apt, cargo, choco, and every major package manager.

solo: free — alias it to cat, enjoy lifelarge: freesmall: free — standardize for better code review in terminalsmedium: free
7
Zoxide86Fully free
38,564Rustpermissive

Zoxide learns which directories you visit most and lets you jump to them by typing a few letters. Type `z proj` and it takes you to `/home/you/projects` because that's where you always go. It's a smarter `cd` that remembers your habits. MIT, Rust. One of the fastest-growing CLI tools right now. Works on every major shell: bash, zsh, fish, PowerShell, Nushell. Installs in seconds. Uses a frecency algorithm (frequency + recency) to rank directories, same concept as browser address bar autocomplete. Fully free. No paid anything. It's a single binary. Install it, add the shell hook, and forget about it. Every developer from solo to enterprise benefits. There is zero ops burden. It stores a tiny database file in your home directory. The catch: honestly, almost nothing. The learning curve is typing `z` instead of `cd`. If your directory names are ambiguous (three folders all starting with "app"), you'll occasionally land in the wrong one until you train it with `z` flags. But that's nitpicking. This is one of those tools where the only question is why you didn't install it sooner.

Free. A single binary that makes your terminal faster. Install it.

Pricing breakdown

Fully open source under MIT. Single binary, no paid tier, no cloud service, no premium features. Free forever.

solo: free — install immediatelylarge: freesmall: free — recommend to the teammedium: free
8
kitty85Fully free
34,285Pythoncopyleft

kitty is a GPU-accelerated terminal emulator from Kovid Goyal (the same developer who built Calibre). GPLv3 licensed. Cross-platform across Linux and macOS. The point of the GPU acceleration is not just speed: it lets kitty render true-color graphics, ligatures, and even inline images and video without bolting on a separate protocol like sixel. Install via your package manager or grab the binary from the project site. Configuration is a single text file at ~/.config/kitty/kitty.conf. No GUI preferences panel, ever. Hot-reload works. Built-in features include tabs, multiple windows, layouts (splits without a multiplexer), keyboard-driven scrollback browsing, and a kittens system for small extensions like SSH session resume, image preview, and unicode picker. Solo developers and power users get the most out of this. Teams: there is nothing to mandate or roll out, individuals pick their terminal. Free across every team size. The catch is the config file. There is no settings UI and the defaults are minimal. You will spend a weekend tuning it the first time. Alacritty is faster on synthetic benchmarks but does less. WezTerm is the closest competitor on features. Pick kitty if you want graphics and ligatures in your terminal without a multiplexer layered on top.

Completely free and open source. GPLv3.

Pricing breakdown

**Free tier:** Everything. The terminal is fully free under GPLv3. **Self-hosted:** Not applicable. It runs on your machine. **Paid:** None. There is no paid version, no cloud service, no enterprise tier.

solo: freeteam: freesmall: free
9
opencli85Fully free
27,833TypeScriptpermissive

OpenCLI gives you one surface for three jobs: site adapters that turn websites into CLI commands, browser automation for AI agents using your logged-in Chrome session, and a hub for the local CLIs you already use. The pitch is that an agent can drive 100+ sites and your local tools through one consistent interface instead of you wiring up each integration. The Browser Bridge extension is the real trick. It connects to Chrome over the DevTools Protocol so your agent acts inside your real, authenticated browser session. No headless instance, no separate login. Apache 2.0 licensed, TypeScript core. Plugin support means new site adapters and agent skills land continuously. Solo devs and small teams using AI agents for web automation get the biggest win. If your agent needs to file an issue in Linear, post to Notion, or pull data from a SaaS dashboard you already log into, this avoids building one-off integrations. The catch: handing an agent your logged-in browser is powerful and dangerous. The blast radius of a hallucinating agent is everything you're signed into. The ecosystem is still young, and the site adapter list is growing but uneven. Some sites work great. Others are flaky.

Free and open source. Cost lives in the LLM tokens your agent burns during automation runs.

Pricing breakdown

Fully open source under Apache 2.0. No paid tier, no hosted version. You install the Browser Bridge extension and the CLI locally and run it on your own machine. The tool itself is free; cost lives in the LLM tokens your agent burns through during automation runs.

solo: freelarge: freesmall: freemedium: free
10
Helix83Fully free
45,762Rustweak-copyleft

Helix is a modal text editor for the terminal that works out of the box. No plugins, no config files, no weekend lost to dotfile management. You open it and it has syntax highlighting, LSP support (the thing that gives you autocomplete and go-to-definition), and tree-sitter parsing already working. Rust, MPL 2.0. The key design difference from Vim: Helix uses selection-first editing. You select text, then act on it, the opposite of Vim's verb-then-object model. It sounds small but it changes how editing feels. Multiple cursors are built in. The fuzzy file picker, buffer manager, and LSP integration all ship with the binary. Fully free. No paid tier, no cloud version, no premium features. One binary, every platform. Solo developers who want a fast terminal editor without the Neovim plugin rabbit hole, this is it. Teams don't really factor in; text editors are personal choices. The catch: if you have years of Vim muscle memory, the selection-first model is a hard rewrite of your reflexes. And the plugin system doesn't exist yet; what ships is what you get. If you need a specific integration that isn't built in, you're stuck waiting for the core team to add it.

Free. One binary, everything included, no paid tier exists.

Pricing breakdown

Fully open source under MPL 2.0. No paid tier, no hosted version, no premium features. Single binary distribution. Zero cost at any scale, any use case.

solo: freelarge: freesmall: freemedium: free
11
cmux80Freemium
25,704Swiftunknown

cmux is a native macOS terminal built around AI coding agents. It's based on Ghostty, adds vertical tabs, and shows a sidebar with each session's git branch, PR status, working directory, open ports, and a notification when an agent needs you. Free and open source under GPL-3.0. If you run Claude Code, Codex, or Gemini across several projects, the pitch is that you stop losing track of which agent is waiting on you. Past the terminal it bundles a scriptable browser pane, SSH workspaces that route browser traffic through remote machines, session restore for layouts and scrollback, and native support for Claude Code's teammate mode. Install is as easy as it gets: download the DMG and drag it to Applications, or run brew install --cask cmux. It imports credentials from Chrome, Firefox, Arc, and 20-plus browsers, so the built-in browser is logged in from the start. For solo developers and small teams living in the terminal with one or more agents running, this is a real quality-of-life upgrade over juggling tabs in a generic terminal. The notification model is the standout: fire off three agents and actually know when each one stops. Larger orgs that can't ship GPL software internally can buy a commercial license. The catch: macOS only, and it's young. You're tying your terminal to a fast-moving project built around one specific workflow. A Founder's Edition subscription also puts priority support and early features behind a paywall. If you don't run coding agents, plain Ghostty or your current terminal already does everything you need.

Free and open source under GPL-3.0. A commercial license is available if GPL doesn't work for you, plus an optional Founder's Edition subscription for priority support and early features.

Pricing breakdown

**Free:** The full terminal under GPL-3.0. Install via DMG or Homebrew, auto-updates included. **Self-hosted:** It's a local macOS app, nothing to host. An optional Founder's Edition subscription adds priority support and early access to features that later land in the open source build. **Paid:** A commercial license for organizations that can't comply with GPL-3.0. Pricing is not public.

solo: freeteam: freesmall: free
12
Warp79Freemium
64,081Rustsource-available

A terminal reimagined for the AI era. If you spend hours in the terminal and want AI built directly into your command line (not as a side panel, but as a core part of the experience), Warp is the most polished attempt at that. It also fixes long-standing terminal annoyances: command output is organized into blocks you can select and copy, input is a proper text editor with cursor movement, and command history search actually works. Built in Rust, it's fast. The UI renders at 60fps via Metal/GPU. It supports themes, custom keybindings, and Warp Drive (shared team workflows and commands). The free tier is generous: unlimited AI commands, all core terminal features, and personal Warp Drive. The paid Team plan at $22/user/mo adds team Warp Drive (shared commands and workflows), admin controls, and SSO. Enterprise adds audit logs and advanced security. The catch: it's not fully open source. The client is source-available (you can read the code) but the license restricts redistribution and commercial use. The AI features require a Warp account and internet connection. If you're philosophically opposed to a terminal that phones home, this isn't for you. Ghostty is a GPU-accelerated open source terminal if you want speed without the AI. Alacritty is the OG Rust terminal. Minimal and fast.

Free tier is excellent for individuals. $22/user/mo Team plan only makes sense at 5+ engineers who'll actually use shared workflows.

Pricing breakdown

### Pricing Breakdown **Free (Individual):** - Unlimited AI commands (Agent Mode, natural language to commands) - Full terminal features (blocks, modern input, themes) - Personal Warp Drive (save and organize your commands) - Works on macOS, Linux, and Windows **Team ($22/user/mo):** - Shared Warp Drive (team-wide command snippets and workflows) - Admin dashboard and user management - SSO integration - Priority support **Enterprise (custom pricing):** - Audit logs - Advanced security controls - Dedicated support - Custom AI model configuration **Self-hosted:** Not available. Warp is a proprietary desktop application. Source is viewable but not redistributable. **Comparison to alternatives:** - Ghostty: Free, open source, GPU-rendered. No AI, but extremely fast and no account required - Alacritty: Free, open source, GPU-rendered. Minimal, no tabs, no AI, pure speed - iTerm2: Free, macOS only. Feature-rich traditional terminal. No AI built-in - Kitty: Free, open source, GPU-rendered. Highly configurable, scriptable **When to pay:** The Team plan makes sense when you have 5+ engineers and want to share terminal workflows. At $22/user/mo, a 10-person team pays $2,640/yr. That's worth it if Warp Drive actually saves onboarding time and reduces repeated questions. Below 5 people, the free tier covers everything that matters. **When to skip Warp entirely:** If terminal AI isn't valuable to your workflow, or if you need a fully open source tool. Ghostty or Kitty give you GPU performance without the account requirement.

solo: Free tier has everything you need. The AI features are genuinely useful for complex commands.large: Enterprise plan for compliance. SSO and audit logs are the real value at this scale.small: Free tier works fine. Team plan at $22/user/mo is a tough sell under 5 people.medium: Team plan starts making sense here. Shared Warp Drive is valuable for standardizing workflows.
13
Kaku72Fully free
5,743Rustunknown

Kaku is a macOS terminal emulator forked from WezTerm and tuned for AI coding workflows. It ships with sensible defaults, theme awareness, and bundled tools like lazygit and yazi so you do not spend a weekend configuring it before getting work done. MIT licensed, fully free. Maintained by tw93, who also built Pake and Mole. Install is a download-and-run desktop app. macOS only. No Docker, no config file hell. If you have ever spent two hours getting iTerm2 or kitty to look the way you want, the appeal is obvious. Built-in AI integration plugs into existing coding agents. Live in a Mac terminal all day and want something pre-tuned for working alongside Claude Code or similar agents, Kaku is worth trying. Compare to Warp if you want the polished commercial option, or to upstream WezTerm if you want every config knob available. The catch: macOS only, and it is a fork. Upstream WezTerm features land here on a delay, if at all. Solo maintainer too. Tw93 has shipped before so the bus factor is better than most one-person projects, but it is still one.

Free macOS terminal. No paid version exists.

Pricing breakdown

## Free tier Fully free and MIT licensed. ## Self-hosted Not applicable, desktop app. Download from the project page or build from source. ## Paid No paid tier.

solo: freeteam: freesmall: free
14
dusky72Fully free
2,316Shellpermissive

Dusky turns a fresh Arch Linux install into a fully themed Hyprland desktop in one shot. It bundles around eighty setup scripts that handle theming, audio, GPU and local AI inference with Ollama, speech-to-text, disk encryption, and more, so you skip the days of hand-assembling dotfiles. MIT, free, and built for people who want a good-looking, working Arch box without doing all the wiring themselves. This is opinionated and invasive by design. It reshapes your whole system, expects Btrfs, and autodetects hardware to configure things for you. That is the point, but it also means it is hard to cleanly undo, and it only makes sense on Arch with Hyprland. Run it on a fresh install, not a system you have already customized and care about. This is for Arch users who want a batteries-included Hyprland setup and would rather start from a strong default than build from zero. Solo desktop users, which is the whole audience here: free. If you do not run Arch, or you enjoy configuring your environment piece by piece, this is not for you, and forcing it onto a non-fresh system is asking for pain. The catch is commitment. Dusky is a whole-system transformation, not a theme you toggle. On a clean Arch install it saves you real time and looks great. On anything else, the hard requirements and deep changes are more trouble than they are worth.

Completely free and open source. The author asks only for an optional star.

Pricing breakdown

**Free tier:** MIT-licensed and fully free. **Self-hosted:** It installs on your own machine by design. Requires a fresh Arch Linux install with Btrfs. **Paid:** None. The author requests an optional star or donation.

solo: freeteam: freesmall: free
15
resterm71Fully free
1,832Gopermissive

Resterm is a TUI (terminal user interface) HTTP client. Think Postman but entirely in your terminal. You compose requests, see responses, and manage collections without leaving the command line. Go, Apache 2.0. The interface lets you build GET, POST, PUT, DELETE requests with headers, body, and query params. Responses render with syntax highlighting. Supports environment variables for switching between dev/staging/prod endpoints. Fully free. No paid tier, no cloud sync, no accounts. It's a single binary. Solo developers who live in the terminal: this fits your workflow better than opening a GUI app for every API test. Small teams: works for individual use but no shared collections or team sync. The catch: this is early-stage. No OAuth flows, no websocket testing, no scripting/automation, no request chaining. For quick one-off API calls it's pleasant. For complex API testing workflows, you still need Insomnia, Bruno, or a scripted approach with curl/httpie. And the lack of a homepage URL suggests the project is GitHub-only. Documentation lives in the README.

Free. Single binary, no strings attached.

Pricing breakdown

Fully open source under Apache 2.0. Single binary, no dependencies, no paid tier, no hosted version. Zero cost.

solo: free — nice terminal workflow for API testinglarge: too minimal — use a platform with team collaborationsmall: free but no team features — each person runs their ownmedium: likely insufficient — use Bruno or Insomnia for shared collections
16
bash-completion69Fully free
3,497Shellcopyleft

bash-completion is the reason hitting Tab in your shell suggests git branches, package names, and command flags instead of just filenames. It is a big collection of completion recipes that teach Bash how hundreds of commands expect their arguments, plus the helper functions other tools use to add their own. GPL-2.0, free, and already installed on most Linux systems. For almost everyone this is not a thing you install, it is a thing your package manager put there years ago. If you are on a minimal container or a fresh macOS Bash, one package install or a single line sourced from your shell config turns it on. It wants Bash 4.2 or newer. There is nothing to run and nothing to maintain, it just makes the shell you already use less annoying. This is plumbing, not a product. Solo, small team, or enterprise, the recommendation is the same: have it on. There is no paywall and no premium version. The catch, if you can call it one, is relevance. If you have moved to Zsh or Fish, they ship their own completion engines and this does nothing for you. It is essential for Bash and irrelevant everywhere else.

Free and foundational; if you use Bash, you already want it on.

Pricing breakdown

**Free:** All of it, GPL-2.0. Completion recipes for hundreds of commands plus the helper API tools use to register their own. **Self-hosted:** Not applicable, it runs in your shell. **Paid:** None. It is core infrastructure, not a business.

solo: freeteam: freesmall: free
17
worktrunk68Fully free
6,323Rustunknown

Worktrunk makes Git worktrees as easy to use as branches. Git worktrees let you check out several branches into separate folders at once, no stashing, no context-switching, but the built-in commands are verbose enough that most people never bother. This Rust CLI wraps them in simple create, list, switch, and cleanup commands. MIT and Apache-2.0 dual-licensed, free. It is a small, fast, client-side binary, nothing to host, no server, no account. The one bit of setup is shell integration so it can change your directory when you switch worktrees, and there is a naming clash with Windows Terminal's 'wt' that you sidestep with the git-wt alias. Beyond that, it stays out of your way. This is for developers running multiple branches in parallel, or multiple AI coding agents at once, who want worktrees without memorizing git's worktree syntax. Solo or team, it is free, and there is no commercial version because there is nothing to sell. If you do not use worktrees, or you are happy typing the raw git commands, you do not need it. The catch is that it is a convenience layer, not new capability. Everything it does, Git already does; worktrunk just makes it pleasant enough that you will actually use it. For heavy worktree users that is the whole point. For everyone else it is a nicety, not a need.

Completely free and open source. Nothing to sell, nothing to host.

Pricing breakdown

**Free tier:** Fully free, dual-licensed MIT and Apache-2.0. **Self-hosted:** Not applicable. It is a local client-side binary, no server. **Paid:** None. There is no commercial version because there is nothing to host or sell.

solo: freeteam: freesmall: free
18
vhs66Fully free
20,581Go

VHS makes terminal GIFs reproducible. Instead of screen-recording your CLI demo and hoping you nail every keystroke, you write a .tape file that scripts the whole session: what gets typed, how long to pause, font size, theme, window dimensions. Run the tape and get a pixel-identical GIF, MP4, or WebM every time. Built by Charm, the team behind Bubble Tea and Gum, and completely free under MIT. Setup is a brew install plus two dependencies, ttyd and ffmpeg, on your PATH. Their Docker image bundles everything if you would rather skip that. The real win is CI: the companion vhs-action regenerates your README GIFs on every release, so your demo never shows a three-versions-old interface. Tape files live in git next to your code and get reviewed like everything else. Anyone shipping a CLI tool should use this. Solo, small team, enterprise: same answer. It is free and there is nothing to pay for. The catch is scope. VHS renders scripted tapes, it does not capture live sessions. Recording a real working session as it happens is a job for asciinema, not this one.

Completely free. No paid tier, no cloud offering, nothing gated.

Pricing breakdown

**Free:** Everything. VHS is MIT licensed with no commercial product behind it. All output formats (GIF, MP4, WebM, PNG frames), all tape commands, and the vhs-action CI integration are free. **Self-hosted:** Nothing to host. It is a local CLI. The only setup cost is installing ttyd and ffmpeg alongside it, or using the Docker image that bundles both. **Paid:** Does not exist. Charm sells nothing here.

solo: freeteam: freesmall: free
19
yoinks64Fully free
1,275TypeScriptpermissive

yoinks is a nicer front end for yt-dlp. Same 1,800-plus supported sites and the same download engine underneath, but wrapped in a terminal UI where you pick format and quality from a menu instead of memorizing flags. MIT licensed. Install with `npm install -g yoinks` or just run `npx yoinks`. Node 18+ is the only thing you need. It fetches the standalone yt-dlp binary into `~/.yoinks/bin` on first run and either finds ffmpeg on your PATH or falls back to a bundled copy, so there is no Python toolchain and no ffmpeg install to manage. That is the most annoying part of using yt-dlp directly, and it is simply gone here. This is for anyone who downloads video occasionally and resents relearning flag syntax every time. If you download video inside scripts, skip it and call yt-dlp directly, because the entire value here is an interactive menu and that is exactly what you do not want in automation. Free at any scale. The catch: it is a wrapper, so it inherits everything yt-dlp inherits. When a site changes its player and yt-dlp breaks for a week, yoinks breaks with it. Scriptable flags are listed on the roadmap, which is a polite way of saying they do not exist yet.

Completely free and open source.

Pricing breakdown

MIT licensed and free with no paid tier or hosted version. It downloads the yt-dlp binary itself on first run and bundles an ffmpeg fallback, so there is nothing to buy and nothing else to install. Node 18 or newer is the only requirement, and that is free too.

solo: freeteam: freesmall: free
20
clui-cc62Fully free
1,220TypeScriptpermissive

Clui CC adds a proper command-line UI on top of it. It's a TUI (terminal user interface) that makes Claude Code feel less like raw terminal and more like an actual application. You still get everything Claude Code does, but wrapped in a more usable interface. It's essentially the difference between using git directly and using a git GUI: same power, better ergonomics. MIT licensed, TypeScript. The catch: it's a wrapper around Claude Code, so you're adding a dependency on top of a fast-moving product. When Claude Code updates, Clui CC needs to keep up, and it's maintained by a small team. If Claude Code ships a native UI improvement that overlaps with what Clui CC does, the tool becomes redundant overnight.

Free. Requires Claude Code (which has its own pricing).

Pricing breakdown

Fully open source under MIT. No paid tier, no hosted version. Install it alongside Claude Code and use it as your interface. No additional cost beyond your existing Claude Code subscription.

solo: freelarge: freesmall: freemedium: free
21
clifm59Fully free
1,709Cunknown

clifm is a file manager you drive with commands, not menus. Where ranger, nnn, and lf give you a visual TUI to arrow through, clifm keeps the shell paradigm: you navigate and operate on files by typing commands, the way you already work in a terminal. Written in C, it runs almost everywhere, Linux, the BSDs, macOS, Solaris, Haiku, Cygwin, across x86, ARM, PowerPC, and RISC-V. It's very mature, with a deep commit history, packaging in openSUSE's build service, and CodeQL and Codacy in the pipeline. This is a serious, long-maintained project, not a weekend experiment. Free under GPL-2.0-or-later, for anyone who lives in the terminal and wants file management that matches how they already think. The catch is the paradigm itself. "Shell-like" instead of a visual TUI is unusual, and it's a real learning curve if you're used to the menu-driven managers most people reach for. For the right person, someone fluent in the command line who finds TUIs slower than typing, it's a great fit. For everyone else, ranger or nnn will feel more natural. Try it, but know it's a deliberately different way of working.

Free and open source. A command-driven file manager for shell people.

Pricing breakdown

Free and open source under GPL-2.0-or-later, no paid tier. It stands in for other free file managers like ranger, nnn, and lf, so the only cost is the learning curve of its command-driven approach. Packaged for several distros; build from source anywhere else.

solo: freeteam: freesmall: free
22
ghostling59Fully free
1,091Cpermissive

Ghostling is the reference implementation showing how to do it with libghostty. It's a minimum viable terminal emulator in a single C file, using Raylib for windowing and rendering. This isn't a terminal you'd use daily. It's a teaching tool and proof-of-concept for libghostty-vt, the zero-dependency library (not even libc) that handles VT sequence parsing, terminal state management, cursor positioning, text reflow, scrollback, and everything else a terminal needs under the hood. The same library that powers Ghostty, one of the best terminal emulators available. MIT licensed. From the Ghostty organization. The catch: this is a demo, not a product. If you want a terminal emulator, use Ghostty itself. Ghostling exists to show developers how to use libghostty; it's useful if you're building something that needs terminal functionality embedded in it, and pretty much useless otherwise.

Free. It's a reference implementation and teaching tool.

Pricing breakdown

### Free Tier Fully free under MIT. Reference terminal emulator built on libghostty. ### Self-Hosted Build from source using Zig. Minimal dependencies. ### Paid None.

solo: freelarge: freesmall: freemedium: free
23
vimhjkl53Fully free
524Pythonpermissive

vimhjkl drills you on Vim until the commands become muscle memory. It runs inside real Vim, hands you an editing goal, and scores your keystrokes against a verified-optimal solution, then schedules your weak spots for review using spaced repetition. Free and MIT licensed. It's a trainer, not a cheat sheet. Five modes cover learning, blind recall, targeted practice on your worst skills, and flashcard review, across 61 lessons and a couple hundred hand-vetted challenges. Because the optimal solutions are replayed in actual Vim, you can't fake your way through with sloppy keystrokes. Install is trivial through Homebrew, the AUR, or source. The closest paid option is vim-adventures, the browser game that runs about 25 dollars. vimhjkl is free, lives in your terminal, and grades efficiency, not just correctness. The free alternatives, vimtutor and vim-be-good, are lighter and don't track your progress over time. The catch: it's solo-maintained and early, version 0.4, and it asks for commitment. This is a daily-reps tool, not a quick reference. If you'll actually do the drills, it's the best free option going.

Completely free and open source (MIT).

Pricing breakdown

**Free:** All of it. MIT licensed, no paid tier, no accounts. **Self-hosted:** Not applicable in the usual sense. It's a local CLI you install with Homebrew, the AUR, or from source, then run in your terminal. **Paid:** None. The nearest commercial comparison is vim-adventures at around 25 dollars, a one-time purchase for the browser game. vimhjkl gives you a deeper, progress-tracked trainer for nothing.

solo: freeteam: freesmall: free
24
opencli-rs49Fully free
2,904Rustunspecified

Opencli-rs does it from a single command line. Type a command, get structured data back. No browser automation, no scraping scripts, no API keys for most sites. It reuses your Chrome login session. This is a Rust rewrite of OpenCLI that's 12x faster, uses 10x less memory, and ships as a single 4.7 MB binary with zero runtime dependencies. No Node.js, no Python. Just put it in your PATH. Output in table, JSON, YAML, CSV, or Markdown. Designed to be AI-agent friendly. Configure it in AGENT.md so your agent can discover and call all available tools automatically. The catch: no license specified, which is a problem for any serious use. 'Reuses your Chrome login session' means it's accessing sites as you. If a site's TOS prohibits automated access, you're on the hook. And 55+ sites sounds great until the one you need isn't supported. Site-specific scrapers break when sites update their layouts.

Free. No license specified. Check before commercial use.

Pricing breakdown

### Free Tier Completely free and open source under MIT. No paid tier exists. ### Self-Hosted Single binary install, no dependencies. Run it anywhere. ### Paid None. The full tool is free.

solo: freelarge: freesmall: freemedium: free

Explore More Categories