gg-tree-cli
v1.0.6
Published
Fast cross-platform tree + file indexing CLI
Readme
gg-tree-cli
A fast, cross-platform tree + file indexing CLI built with Node.js.
Designed to handle large directories safely with:
- infinite depth scanning
- ignore file support (
.ggtreeignore,.gitignore) - live progress display
- JSON and file output
Installation
npm install -g gg-tree-cliUsage
ggtree [directory] [options]Examples
# scan current directory
ggtree
# scan specific directory
ggtree ./src
ggtree D:
# limit depth
ggtree . --depth 2
# search files
ggtree --search auth
# output to file
ggtree . --output tree.txt
# JSON output
ggtree . --json
# ignore files/folders
ggtree . --ignore=node_modules,dist,*.log
# disable all ignore rules
ggtree . --no-ignoreOptions
| Option | Description |
| --------------------- | ----------------------------------------- |
| --depth <n> | Limit directory depth (default: infinite) |
| --all | Show hidden files |
| --ext <list> | Filter by extensions (js,ts) |
| --ignore <patterns> | Ignore files/folders (comma-separated) |
| --no-ignore | Disable all ignore rules |
| --json | Output as JSON |
| --output <file> | Save output to file |
| --search <query> | Search files by name |
| --concurrency <n> | Control parallel scanning |
Ignore System
gg-tree-cli supports:
1. .ggtreeignore
Custom ignore file in your project root:
node_modules
dist
*.log2. .gitignore
Automatically respects existing .gitignore
3. CLI ignore
ggtree . --ignore=dist,*.log4. Disable ignore
ggtree . --no-ignoreOutput
Tree Output
my-project/
├── src
│ ├── index.js
│ └── utils.js
└── package.jsonJSON Output
ggtree . --jsonSave to file
ggtree . --output tree.txtFeatures
- Cross-platform (Windows, macOS, Linux)
- Safe recursive scanning (no crashes on large drives)
- Infinite depth support
- Ignore system (
.ggtreeignore+.gitignore) - Live progress indicator
- Modular architecture (usable as a library)
Project Structure
gg-tree-cli/
├── bin
│ └── cli.js # CLI entry (Commander)
├── lib
│ ├── buildTreeString.js # Node structure to tree structure
│ ├── createIgnoreFilter.js # Ignore file
│ ├── createLimiter.js # Concurrency Control
│ ├── flattenTree.js # Flatten Structure
│ ├── scanDir.js # Recursive traversal
│ └── searchFileInTree.js # Search file in tree
├── package.json # Contains all the package information
└── Readme.md # Information about package and helpPerformance Tips
Use
--depthfor faster scans on large drivesReduce concurrency for stability:
ggtree D: --concurrency 10
License
MIT
