GitHubTree
Visualise any GitHub repository folder structure. Available as a web app, CLI tool, and node.js library.
Install / Use
/learn @mgks/GitHubTreeREADME
<div align="center">
<!-- PROJECT TITLE -->
<h1>GitHubTree</h1>
<!-- ONE LINE SUMMARY -->
<p>
<b>GitHubTree is a high-performance repository visualiser.</b>
</p>
<!-- BADGES -->
<p>
<a href="https://www.npmjs.com/package/gh-tree"><img src="https://img.shields.io/github/v/release/mgks/githubtree?style=flat-square&color=38bd24" alt="release version"></a>
<!--<img src="https://img.shields.io/npm/v/gh-tree.svg?style=flat-square&color=fc3b53" alt="npm version">-->
<a href="https://www.npmjs.com/package/gh-tree"><img src="https://img.shields.io/npm/dt/gh-tree.svg?style=flat-square&color=38bd24" alt="npm downloads"></a>
<a href="https://github.com/mgks/GitHubTree"><img src="https://img.shields.io/github/stars/mgks/githubtree?style=flat-square&logo=github&color=blue" alt="stars"></a>
<a href="https://github.com/mgks/GitHubTree"><img src="https://img.shields.io/github/license/mgks/githubtree.svg?style=flat-square&color=blue" alt="license"></a>
</p>
<!-- MENU -->
<p>
<h4>
<a href="https://githubtree.mgks.dev">🚀 Open Web App</a>
</h4>
</p>
<!-- PREVIEW -->
<p>
<a href="https://githubtree.mgks.dev">
<img width="1000" alt="image" src="https://github.com/user-attachments/assets/94819dfc-e0a7-493a-9b10-e38822e9c55b" />
</a>
<!--<img width="1000" alt="image" src="https://github.com/user-attachments/assets/c1de6006-02e5-4ff1-bda1-3f079e350021" />-->
</p>
</div>
GitHubTree allows you to explore, navigate, and generate formatted directory trees for any GitHub repository without cloning. Perfect for documentation, code reviews, and project overviews.
✨ Features
- Instant Explorer: Visualize any public repository (e.g.,
facebook/react). - Intelligent Navigation: Search and filter files in real-time with parent-folder context preservation.
- Interactive Controls: Unified tree toggles (Compact/Expand) and collapsible folder support.
- Visual Styles: Choose between Classic (└──), Slashed (/src), Minimal, ASCII (+--), and Bulleted (•).
- Private Repository Access: Securely access personal repos using a GitHub PAT (stored only in your browser).
- Deep Linking: Share links that persist your branch, filter, sort, and style settings.
- High Performance: Core engine optimized for large repositories with automated branch detection.
CLI Tool
Generate directory trees directly in your terminal.
Usage (No Install)
npx gh-tree user/repo
Global Installation
npm install -g gh-tree
Commands & Flags
gh-tree <user/repo> [flags]
Flags:
--branch,-b <name>: Specify branch (default:main)--depth,-d <num>: Limit recursion depth--ignore,-i <patterns>: Ignore patterns (comma-separated, e.g.node_modules,*.log)--style <type>: Visual style (classic,bulleted,minimal, etc.)--json: Output raw JSON data instead of ASCII--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--clear-cache: Clear local tree cache
CLI Examples
# Basic usage
gh-tree mgks/githubtree
# Limit depth and ignore specific patterns
gh-tree facebook/react -d 2 -i "node_modules,*.log"
# Show icons and use a specific branch
gh-tree user/repo --branch develop --icons
# Output as JSON for processing
gh-tree user/repo --json > tree.json
For Builders: NPM Package
Use the core engine to integrate tree generation into your own Node.js applications.
Installation
npm install gh-tree
Quick Start
import { GitHubTree } from 'gh-tree';
const gt = new GitHubTree(process.env.GITHUB_TOKEN);
try {
const { tree } = await gt.getTree('mgks/githubtree', 'main');
const output = gt.generateAsciiTree(tree, { style: 'classic', icons: true });
console.log(output);
} catch (err) {
console.error(err);
}
Local Development (Monorepo)
packages/core: Core logic, API fetcher, and CLI tool.packages/web: Vite-based Web Application.tools/: SEO and static page generation scripts.
- Clone & Install:
git clone https://github.com/mgks/GitHubTree.git cd GitHubTree npm install - Run Development Server:
npm run dev - Deploy Production Build:
npm run deploy
Contributing
Contributions are welcome! If you have a feature request, bug report, or a pull request, please feel free to open an issue or submit a PR on GitHub.
- Fork the Repo
- Create a Feature Branch (
git checkout -b feature/amazing-feature) - Commit Changes (
git commit -m 'Add amazing feature') - Push to Branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
MIT
