A CLI tool to consolidate your entire project's source code into a single, well-formatted text file. Ideal for providing context to Large Language Models (LLMs) like GPT-4, Claude, or for creating a simple project archive.
When working with AI models, you often need to provide the full context of your codebase. Copy-pasting dozens of files is tedious and loses the file structure. This tool automates that process, creating a single file that is easy to copy and paste into an AI prompt.
- Exports all text-based files from your repository.
- Ignores files and directories listed in your
.gitignore
by default. - Clearly separates each file's content with its path.
- Simple, zero-dependency execution.
You can install the package globally:
npm install -g @zweer/export-code
Or use it directly with npx
for on-the-fly execution:
npx @zweer/export-code --help
Navigate to the root directory of your project and run the command, specifying the output file:
npx export-code project-context.md
If you don't specify an output file, it will default to docs/EXPORT.md
.
The generated file will have a structure like this, making it easy for both humans and AI to read:
# EXPORT
## File structure
```
export-code
├── .editorconfig
├── .env
├─> .husky
│ └── pre-commit
├─> .vscode
│ └── settings.json
└── README.md
```
## File export
`src/index.js`:
```javascript
console.log("Hello, World!");
```
---
`src/utils.js`:
```javascript
export const a = () => {
return 'a';
};
```
---
`package.json`:
```json
{
"name": "my-project",
"version": "1.0.0"
}
```
Argument | Description | Default | Required |
---|---|---|---|
[outputFile] |
The path where the final text file will be saved. | docs/EXPORT.md |
No |
--ignore-list <paths> |
A comma-separated list of glob patterns to ignore. For example: src/generated/**,*.test.ts
|
'' |
No |
By default, export-code
respects the rules found in your project's .gitignore
file. It will automatically skip node_modules
, build artifacts, and other ignored files.
You can also provide additional ignore patterns using the --ignore-list
command-line argument. This argument accepts a comma-separated string of glob patterns. For example, to ignore all files in src/generated
and all files ending with .test.ts
, you would use:
npx export-code --ignore-list "src/generated/**,*.test.ts"
Licensed under the MIT License.