treemd-js v1.0.0
treemd
treemd is a command-line tool that assembles multiple files from your project into a single context, primarily designed for use with Large Language Models (LLMs). It generates a markdown representation of your directory structure and file contents, making it easy to provide comprehensive project context to AI models.
Features
- Generate an ASCII tree representation of directory structure
- Includes file contents in the output
- Respects
.gitignorerules - Filters files by extension
- Estimates token count for LLM context sizing
Installation
To install treemd globally, run:
npm install -g treemdOr use npx to run it without installing:
npx treemdUsage
Basic usage:
treemd [directory] [options]If no directory is specified, treemd will use the current directory.
Options
-e, --extensions <extensions>: Comma-separated list of file extensions to include-s, --silent: Suppress token count output
Examples
Generate markdown for the current directory:
treemdGenerate markdown for a specific directory, including only JavaScript and TypeScript files:
treemd /path/to/your/project -e js,tsCopy the output directly to clipboard (macOS) for pasting into an LLM interface:
treemd | pbcopy
Output
The output is in Markdown format and includes:
- An ASCII tree representation of the directory structure
- File contents for text files
Example output:
# File tree
```
project/
├── src/
│ ├── index.js
│ └── utils.js
├── tests/
│ └── test_utils.js
└── README.md
```
# Files content
**index.js:**
```
console.log("Hello, world!");
```
**utils.js:**
```
function add(a, b) {
return a + b;
}
```
**test_utils.js:**
```
assert.equal(add(2, 2), 4);
```
**README.md:**
```
# My Project
This is a sample project.
```Caveats
treemdrespects.gitignorefiles in the scanned directory.- It always excludes certain files/directories like
.git,.gitignore, etc. - Only text files are included in the output.
- The tool estimates token count, which may vary slightly from the actual count used by specific LLM implementations.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License.
1 year ago