8 unstable releases (3 breaking)
0.5.0 | Nov 5, 2024 |
---|---|
0.4.2 | Nov 4, 2024 |
0.3.3 | Oct 20, 2024 |
0.2.2 | Oct 20, 2024 |
#1190 in Command line utilities
492 downloads per month
38KB
843 lines
CodeMerge
CodeMerge is a command-line tool for merging multiple code files into a single output file. It provides an easy way to combine code from different files while ignoring certain files/directories and calculating token counts.
Features
- Merge multiple code files into one output file
- Specify files/directories to ignore during merging
- Calculate token counts for each file and total tokens
- Verbose output mode for detailed information
- Written in Rust for fast performance
- Can be used with AI large language models (LLMs) for context-aware code generation
Installation
To install CodeMerge, you can download the pre-built binary from the releases page or build it from source using Cargo:
cargo install codemerge
Usage
Merging Files
To merge code files, use the merge
command:
codemerge merge -o merged.txt -f "**/*.rs"
This will merge all .rs
files into the output file merged.txt
.
Additional options:
-o, --output
: Specify the output file name (required formerge
command)-i, --ignores
: Specify files/directories to ignore (can be used multiple times)-v, --verbose
: Enable verbose output mode-f, --filter
: Specify a filter pattern (can be used multiple times)-n, --file-names-only
: Print only file names
Calculating Tokens
To calculate token counts without merging, use the tokens
command:
codemerge tokens -c 5
This will calculate the token counts for each file and display the top 5 files with the most tokens.
Additional options:
-c, --count
: Specify the number of top files to display-i, --ignores
: Specify files/directories to ignore (can be used multiple times)-v, --verbose
: Enable verbose output mode-f, --filter
: Specify a filter pattern (can be used multiple times)
Configuration
CodeMerge respects .gitignore
files for specifying files/directories to ignore during merging and token calculation. You can also use the -i
flag to specify additional ignore patterns.
Previous Go Version
The original version of CodeMerge was written in Go and is available in the /go
branch of this repository. However, this version will not be actively maintained going forward. The Rust version was rewritten to take advantage of Rust's improved performance, safety, and ecosystem, particularly the tiktoken-rs
library for efficient token counting.
Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.
License
CodeMerge is open-source software released under the MIT License.
Dependencies
~34–45MB
~620K SLoC