all-my-circuits

Crates.ioall-my-circuits
lib.rsall-my-circuits
version0.2.3
created_at2024-10-27 17:44:30.243878+00
updated_at2025-07-07 17:23:09.310062+00
descriptionA command-line tool for concatenating and annotating files with Git metadata
homepagehttps://github.com/oiwn/all-my-circuits
repositoryhttps://github.com/oiwn/all-my-circuits
max_upload_size
id1424820
size69,479
Alexander (oiwn)

documentation

README

codecov dependency status Crates.io Total Downloads

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

  1. Create a configuration file .amc.toml (in current directory):
delimiter = "---"
extensions = [".rs", ".ts", ".py"]
  1. 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.

Commit count: 38

cargo fmt