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_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:
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! 🤖