1 unstable release
new 0.1.0 | May 1, 2025 |
---|
#42 in #llm
175KB
126 lines

codecat
「 Merge Code Repository into a Single File | Respects .gitignore
| Ideal for LLM Code Analysis 」
codecat
is a command-line utility that merges code from a repository into a single text file. It respects the rules defined in your .gitignore
, making it suitable for creating a clean context bundle of your project's source code.
Features
- Recursively walks through directories.
- Respects
.gitignore
,.ignore
, global ignore rules, etc., powered by theignore
crate. - Concatenates file contents into a single output file.
- Adds clear delimiters (
--- START FILE: path/to/file ---
and--- END FILE: path/to/file ---
) for each file. - Attempts to read files as UTF-8, skipping non-UTF8 files with a warning.
- Simple command-line interface.
- Cross-platform (Windows, macOS, Linux).
Installation
Ensure you have Rust and Cargo installed.
cargo install codecat
Usage
Basic Usage
Navigate to your project directory or provide the path to it:
codecat /path/to/your/project
Or, if you are already in the project directory:
codecat .
By default, codecat
will create a file named <project_directory_name>.codecat.txt
in the parent directory of your project.
Specifying Output File
You can specify a custom output file path using the -o
or --output
flag:
codecat /path/to/your/project -o /path/to/output/bundle.txt
codecat . --output context.txt
Example Output Structure
The generated file will look something like this:
--- START FILE: src/main.rs ---
fn main() {
println!("Hello, world!");
}
--- END FILE: src/main.rs ---
--- START FILE: Cargo.toml ---
[package]
name = "my_project"
version = "0.1.0"
# ... other cargo stuff ...
--- END FILE: Cargo.toml ---
--- START FILE: README.md ---
# My Project
This is my awesome project.
...
--- END FILE: README.md ---
(Files listed in .gitignore
, like target/
or .env
, will not be included).
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Dependencies
~5–13MB
~154K SLoC