GitHubTree (gh-tree) is a high-performance repository visualizer. It allows you to explore, navigate, and generate ASCII directory trees for any GitHub repository without cloning.
It is available as a Web Application, a CLI Tool, and a Node.js Library.
The fastest way to visualize a repository. No installation required.
π Use Web App: githubtree.mgks.dev
- Instant Search: Visualize any public repository (e.g.,
facebook/react). - Private Repo Access: Securely access your private repositories using a Personal Access Token (saved locally to your browser).
- Smart Copy: Copy the entire directory tree as text, or copy specific file paths.
- Visual Styles: Toggle between Classic (βββ), Slashed (/src), Minimal, and ASCII (+--).
- Deep Linking: Share links to specific repositories and branches (e.g.,
/repo/mgks/dhwani/main).
Generate directory trees directly in your terminal. Perfect for documentation and quick checks.
Run via npx to fetch a tree instantly:
npx gh-tree user/reponpm install -g gh-treegh-tree <user/repo> [flags]
Flags:
--branch, -b <name> Specify branch (default: main)
--icons Show file/folder icons in output
--token, -t <key> Use a specific GitHub Token
--save-token <key> Save a token globally for future use
--help Show helpExample:
gh-tree facebook/react --icons --branch mainUse the core engine to fetch trees and generate ASCII structures in your own applications.
npm install gh-treeimport { GitHubTree } from 'gh-tree';
// 1. Initialize (Token optional, but recommended for higher rate limits)
const gt = new GitHubTree(process.env.GITHUB_TOKEN);
// 2. Fetch Tree
try {
const { tree } = await gt.getTree('mgks/githubtree', 'main');
// 3. Sort & Generate ASCII
const sorted = gt.sortTree(tree, 'folder-az');
const output = gt.generateAsciiTree(sorted, { icons: true });
console.log(output);
} catch (err) {
console.error(err);
}Creates a new instance.
token(string, optional): GitHub Personal Access Token.
Fetches the raw recursive tree from GitHub API.
- Returns:
{ tree: Array, truncated: Boolean }
Sorts the tree array.
method:'folder-az'(default),'folder-za','alpha-az','alpha-za'.
Converts the tree array into a formatted string.
options.icons: Boolean. If true, adds emojis (π/π).
This repository is organized as a Monorepo.
packages/core: The logic, API fetcher, and CLI tool.packages/web: The Vite-based Web Application.tools/: Scripts for generating SEO static pages.
-
Clone:
git clone https://github.com/mgks/GitHubTree.git cd GitHubTree -
Install:
npm install
-
Run Web App:
npm run dev
-
Build & Generate SEO Pages:
npm run deploy
MIT
{ github.com/mgks }