file-concat-tool
v1.0.8
Published
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.
Downloads
97
Maintainers
Readme
File Concat Tool 🚀
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_modulesdirectory- 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:
npm install -g file-concat-tool🚦 Usage
- Navigate to your project:
cd /path/to/your/project - Run the tool:
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
=== 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:
- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
📄 License
MIT Licensed - See LICENSE for details.
Made with ❤️ by noluyorAbi - Automate All The Annoying Things! 🤖
