A terminal tool that replays Git commits as animated typing sessions with syntax highlighting and file tree transitions.
abhixdd/ghgrab
A terminal TUI and CLI for browsing and downloading specific files or folders from GitHub, GitLab, Codeberg, Gitea and Forgejo without cloning.
- Stars
- 1,582
- Forks
- 91
- Open issues
- 3
- Last commit
- 4 days ago
What is it?
ghgrab is a Rust command-line tool with a terminal UI built on ratatui. You paste a repository URL and browse its folder tree, then select individual files or directories and download only those, instead of cloning the whole repository. It supports GitHub, GitLab, Codeberg, Gitea, Forgejo and compatible self-hosted instances for browsing and downloads.
Beyond file grabbing, it can search GitHub repositories from the home screen with filters for forks, minimum stars, language and sort order. The `release` (or `rel`) command downloads GitHub release assets chosen for your OS and architecture, with options to extract archives, match assets by regex, and install binaries into a directory. GitHub LFS files are resolved automatically.
For scripts and AI tools, an `agent` subcommand prints a stable JSON envelope, and an MCP server mode exposes repo search, tree browsing and downloads to assistants such as Cursor and Claude Desktop. It can be installed via npm, Cargo, pipx, Nix or AUR.
Key features
- 01Browse repository folders in a terminal UI and download selected files or directories.
- 02Supports GitHub, GitLab, Codeberg, Gitea and Forgejo.
- 03Search GitHub repositories from the home screen with star, language and fork filters.
- 04Download GitHub release assets matched to your OS and architecture, with optional extraction.
- 05Provides a JSON agent mode and an MCP server for scripts and AI assistants.
Use cases
- Grabbing a single config file or subdirectory from a large repository without a full clone.
- Installing a prebuilt binary from GitHub releases on a new machine.
- Letting an AI coding assistant fetch files from a repository through MCP.
Quick start
- 1
Install via Cargo
cargo install ghgrab - 2
Start the terminal browser
ghgrab - 3
Or open a repository link directly
ghgrab https://github.com/rust-lang/rust
Things to know
- Repository search from the home screen and release downloads work only with GitHub.
Topics
FAQ
- What is ghgrab?
- A terminal TUI and CLI for browsing and downloading specific files or folders from GitHub, GitLab, Codeberg, Gitea and Forgejo without cloning. ghgrab is a Rust command-line tool with a terminal UI built on ratatui. You paste a repository URL and browse its folder tree, then select individual files or directories and download only those, instead of cloning the whole repository. It supports GitHub, GitLab, Codeberg, Gitea, Forgejo and compatible self-hosted instances for browsing and downloads.
- Is ghgrab free to use? What license does it have?
- ghgrab is open source under the MIT license. Check the license terms before using it in commercial products.
- Is ghgrab still maintained?
- Actively maintained. The last commit to ghgrab was on Oct 16, 2026.
- What can I use ghgrab for?
- Grabbing a single config file or subdirectory from a large repository without a full clone. Installing a prebuilt binary from GitHub releases on a new machine. Letting an AI coding assistant fetch files from a repository through MCP.
- How do I install ghgrab?
- Install via Cargo: cargo install ghgrab Start the terminal browser: ghgrab Or open a repository link directly: ghgrab https://github.com/rust-lang/rust
- Where can I get ghgrab?
- The source code and installation instructions are on GitHub: https://github.com/abhixdd/ghgrab
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A terminal user interface for Git, inspired by Magit, for staging, committing, branching, rebasing and more from the keyboard.
A terminal UI that renders a git commit graph as images, similar to git log --graph --all, for browsing repository history.
A terminal UI for rsync that manages reusable transfer profiles, previews changes as a dry-run diff, and shows live progress, including over SSH.
A small Rust CLI that prints CSV, TSV, JSON and SQLite data as stylish, auto-laid-out tables in your terminal.
Interactive terminal tool to find processes by name, path, arguments, or port and kill them, like pkill with live fuzzy search.