file-concat-tool
Version:
A tool for generating context windows for AI prompting by recursively searching for .ts and .tsx files and concatenating their contents into a text file.
102 lines (71 loc) โข 3.71 kB
Markdown
# File Concat Tool ๐
[](https://www.npmjs.com/package/file-concat-tool)
[](https://npm-stat.com/charts.html?package=file-concat-tool)
[](LICENSE)
[](https://github.com/noluyorAbi/file-concat-tool/issues)
[](https://github.com/noluyorAbi/file-concat-tool/pulls)
[]()
Automated code context generator for AI prompting. Recursively combines source files (`.ts`, `.tsx`, `.js`, `.jsx`, `.html`, `.css`, `.scss`) while ignoring common non-source directories and files, and formats console output with colors.
## ๐จ Current Limitations
**Supported File Types:** `.ts`, `.tsx`, `.js`, `.jsx`, `.html`, `.css`, `.scss`
**Excluded Patterns:**
- `node_modules` directory
- Files containing "config" in name
- Test directories (`__tests__`) and files (`*.test.*`)
- Output file automatically added to Git exclude (`.git/info/exclude`)
_Future updates may include additional file types and customization options._
## ๐ก Motivation
Tired of manually copying code for AI prompts? This tool solves:
- Automatic Git-exclude management ๐
- Smart test file exclusion ๐งช
- Recursive directory scanning ๐
- Clean, colored console output ๐
Get complete code context with **one command**!
## ๐ Installation
Install globally via npm:
```bash
npm install -g file-concat-tool
```
## ๐ฆ Usage
1. Navigate to your project:
```bash
cd /path/to/your/project
```
2. Run the tool:
```bash
file-concat
```
**Output:** Creates `source_files_content.txt` with:
- Tool credit header
- Relative file paths
- File contents separated by clear markers
- Colored console log of processed files
- Automatic Git exclude update
## ๐ File Processing Rules
| Status | Pattern | Examples | Action Taken |
| ------ | -------------------------- | ---------------------------- | --------------------------- |
| โ
| All supported extensions | `index.ts`, `style.scss` | Included in output |
| ๐ซ | `node_modules` directory | Any nested dependency | Skipped entirely |
| ๐ซ | Files containing "config" | `config.ts`, `app.config.js` | Excluded from processing |
| ๐ซ | Test-related files | `*.test.ts`, `__tests__` | Ignored during scan |
| โ ๏ธ | Existing Git exclude entry | `.git/info/exclude` | Appended or already present |
## ๐ Example Output
```text
=== File: src/index.ts ===
import App from './App';
=== File: src/App.tsx ===
export default function App() { ... }
=== File: src/styles/main.scss ===
body { margin: 0; }
```
## ๐ค Contributing
We welcome contributions! Please follow our workflow:
1. Fork the repository
2. Create a feature branch (`git checkout -b feat/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feat/amazing-feature`)
5. Open a Pull Request
## ๐ License
MIT Licensed - See [LICENSE](LICENSE) for details.
---
Made with โค๏ธ by [noluyorAbi](https://github.com/noluyorAbi) - Automate All The Annoying Things! ๐ค