GHGRAB(1)

NAME

ghgrabA simple, pretty terminal tool that lets you search and download files from GitHub without leaving your CLI.

SYNOPSIS

$npm install -g @ghgrab/ghgrab

INFO

721 stars
47 forks
0 views

DESCRIPTION

A simple, pretty terminal tool that lets you search and download files from GitHub without leaving your CLI.

README

ghgrab - "grab anything you want"

A simple, pretty terminal tool that lets you search and download files from GitHub without leaving your CLI.

Rust crates.io npm version PyPI version license

ghgrab demo

ghgrab provides a streamlined command-line interface for cherry-picking specific files or folders from any GitHub repository, powered by the Rust tokio and ratatui ecosystem. Focused on speed and ease of use, it offers a beautiful TUI that lets you grab exactly what you need; all without the wait times of a full git clone.

Why use ghgrab?

  • No more clone-and-delete: Grab exactly what you need, when you need it.
  • Easy on the eyes: A clean terminal interface that makes browsing feel smooth.
  • Works where you are: Installs quickly via NPM, Cargo, or PIP.
  • Find things fast: Quickly search and navigate through any repo's folders with fuzzy search.
  • Handles the big stuff: Built-in support for GitHub LFS (Large File Storage).
  • Batch mode: Select a bunch of files and folders to download them all at once.

Installation

NPM

npm install -g @ghgrab/ghgrab

Cargo

cargo install ghgrab

pipx (Recommended for Python)

pipx install ghgrab

Nix

To have the latest commit:

nix build github:ghgrab/ghgrab

To have a specific tagged version:

nix build "github:ghgrab/ghgrab/<tag>"

Quick Start

Just type ghgrab to start browsing:

ghgrab

Or, if you already have a link, just paste it in:

# Browse a repository
ghgrab https://github.com/rust-lang/rust

Download to current directory directly

ghgrab https://github.com/rust-lang/rust --cwd --no-folder

CLI Flags

FlagDescription
--cwdForces download to the current working directory.
--no-folderDownloads files directly without creating a subfolder for the repo.
--token <TOKEN>Use a specific GitHub token for this run (doesn't save to settings).

Configuration

To manage your settings:

# Set your token
ghgrab config set token YOUR_TOKEN

Set a custom download folder

ghgrab config set path "/your/custom/path"

View your current settings (token is masked)

ghgrab config list

Remove settings

ghgrab config unset token ghgrab config unset path

Keyboard Shortcuts (How to move around)

We've kept it pretty standard, but here's a quick cheat sheet:

KeyAction
Enter / l / RightEnter directory or Submit URL
Backspace / h / LeftGo back to previous folder
DeleteClear URL input (Home page)
TabAuto-fill https://github.com/ (Home page)
/Start Searching (File list)
EscExit Search or Return Home (file list) or Quit (home screen)
q / QQuit (from file list)
Ctrl+qForce Quit (anywhere)
SpaceToggle selection for the current item
aSelect All items
uUnselect all items
d / DDownload selected items
iToggle Icons (Emoji / ASCII)
g / HomeJump to Top
G / EndJump to Bottom

Join the community

If you find a bug, have an idea for a cool new feature, or just want to help out, we'd love to hear from you! Check out our Contributing Guide to see how you can get involved.

License

Distributed under the MIT License. It's open, free, and yours to play with. See LICENSE for the fine print.

SEE ALSO

clihub3/20/2026GHGRAB(1)