CodeConcat v3.0
The State-of-the-Art tool for preparing codebases for LLM usage.
CodeConcat turns your messy project folders into a single, clean, markdown-formatted file optimized for Large Language Models (LLMs) like Claude, GPT-4, and Gemini. It handles parsing, ignoring, and formatting so you don't have to.
🚀 Key Features
- 🧙♂️ Interactive Wizard: New in v3.0! Just run
codeconcatand let the step-by-step wizard guide you. - 🌲 ASCII File Tree: Every output starts with a beautiful ASCII representation of your directory structure to give the LLM context.
- 🧠 Smart Context: Automatically respects
.gitignore, skippingnode_modules,.git, and binary files. - 💎 Granular Control:
- Force Include: Bypass
.gitignorefor specific files (like.envor specific build artifacts) using the new "Force Include" logic. - Whitelist/Exclude: Powerful glob patterns for fine-tuning.
- Force Include: Bypass
- 🛡️ Safe Fencing: Intelligent code block detection prevents nested backticks from breaking your markdown structure.
- ✨ Beautiful UI: Powered by
richandquestionaryfor a modern, clean terminal experience.
📦 Installation
Ensure you have Python 3.8+ installed.
pip install codeconcat
🛠️ Usage
1. Interactive Wizard (Recommended)
Simply run the command without arguments to start the configuration wizard.
codeconcat
You will be asked:
- Source directory?
- Output filename?
- Respect
.gitignore? - Force include specific files? (Grab those
.envfiles ordist/builds easily!) - Verification & Summary.
2. Command Line Interface (CLI)
For power users or scripts, use the widely compatible CLI.
Concatenate current directory:
codeconcat .
Force Include specific ignored files (New in v3.0):
Grab your .env.local even though it's gitignored:
codeconcat --force-include ".env.local"
Exclude logs and include only Python files:
codeconcat . codebase.md -e "*.log" -w "*.py"
Options
| Flag | Description |
|---|---|
-i, --interactive |
Force the interactive wizard mode. |
--force-include |
Additive: Include these files even if they are in .gitignore. |
-e, --exclude |
subtractive: Exclude files matching this glob pattern. |
-w, --whitelist |
Exclusive: ONLY include files matching this glob pattern. |
--no-gitignore |
Disable .gitignore processing entirely. |
--stdout |
Output to console instead of a file. |
📄 Output Format
The output is a single Markdown file structured for maximum LLM comprehension:
- Header: Project Name.
- File Tree:
src/ ├── main.py ├── utils.py └── config.py
- Content:
### File: `src/main.py` ```python print("Hello World")
🤝 Contributing
Contributions are welcome!
- Clone repo:
git clone https://github.com/lguibr/codeconcat.git - Install dev setup:
pip install -e . - Run tests:
pytest
License
MIT License.
Metadata
Release files for codeconcat 3.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| codeconcat-3.0.1.tar.gz | 24.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| codeconcat-3.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.7 kB
Release files / codeconcat-3.0.1.tar.gz
| Download URL | codeconcat-3.0.1.tar.gz |
|---|---|
| Size | 24.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
81bae7df010bb530fbaf25bd0b9c0ae13a0cc88d50afb3cf430fc9a905d85b30
|
|
BLAKE2b-256 checksum How to use checksums |
660b6ddda8393280fc0e8075b83081c1afc9a9cdd04ed3e561d41f3ef459f0b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / codeconcat-3.0.1-py3-none-any.whl
| Download URL | codeconcat-3.0.1-py3-none-any.whl |
|---|---|
| Size | 21.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
caea0123a65fad8861a900cdb0ea673c90f0025aacffddbc7b3b8d134a2c2a9b
|
|
BLAKE2b-256 checksum How to use checksums |
f34976168a3a234e3dba587308edf288807f746bfe3c9be096df9ea40a5362cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|