6 releases
Uses new Rust 2024
| 0.2.3 | Jul 7, 2025 |
|---|---|
| 0.2.2 | Jul 7, 2025 |
| 0.2.0 | Apr 16, 2025 |
| 0.1.7 | Jan 25, 2025 |
| 0.1.6 | Oct 28, 2024 |
#278 in Development tools
30KB
579 lines
File Concatenator with Git Metadata
π BLAZINGLY FAST π file concatenator built with π¦ Rust π¦! β‘οΈ Combines your files into a single output while preserving Git history metadata with ZERO-COST ABSTRACTIONS and MEMORY SAFETY guarantees! β‘οΈ Designed to create rich, contextual file dumps with Git metadata that serve as perfect context windows for Large Language Models β because your AI assistant deserves to know not just WHAT your code is, but WHEN and WHY it was written!
Features
- πΆββοΈ Recursively walks through directories
- π― Filters files by extension
- π Adds Git metadata headers (commit hash and timestamp)
- βοΈ Configurable via TOML file
- π οΈ Customizable delimiter for file sections
Installation
cargo install all-my-circuits
Quick Start
- Create a configuration file
.amc.toml(in current directory):
delimiter = "---"
extensions = [".rs", ".ts", ".py"]
- Run the tool:
# Scan current directory with default config (outputs to code.txt)
amc
# Specify custom output file
amc output.txt
# Scan specific directory with custom config and output file
amc custom-output.txt --dir ./src --config custom-config.toml
Output Format
The tool generates output in the following format:
---
File: src/main.rs
Last commit: 623a9e4b9dbdfa9367232ba67e7abe90245c2948
Last update: 1729838996
---
<file contents>
---
File: src/walk.rs
Last commit: 623a9e4b9dbdfa9367232ba67e7abe90245c2948
Last update: 1729838996
---
<file contents>
CLI Options
Usage: amc [OUTPUT] [OPTIONS]
Arguments:
[OUTPUT] Output file path [default: code.txt]
Options:
-d, --dir <DIR> Directory to scan [default: .]
-c, --config <FILE> Config file path [default: .amc.toml]
-v, --verbose Enable verbose logging
-h, --help Print help
-V, --version Print version
Configuration
Create a .amc.toml file with the following options:
# String used to separate file sections
delimiter = "---"
# List of file extensions to process (without dots)
extensions = ["rs", "ts", "py", "md"]
Use Cases
- Generate documentation with context
- Create annotated source code compilations
- Prepare code for review with Git history
- Archive project snapshots with metadata
- Create meaningful diffs with context
Error Handling
The tool provides friendly error messages for common issues:
- Missing configuration file
- Invalid directory paths
- Git repository access problems
- File reading permissions
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Dependencies
~15β21MB
~413K SLoC