All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- 🔍 Semantic CLI Suggestions: Unknown CLI options now suggest the closest valid alternative (e.g.,
--exclude→ "Did you mean:--ignore?") - 📂 Multiple Directories Support: Process multiple directories in a single command (
repomix src lib tests), with root-labeled file trees for multi-root output - 🛠️ Skill Generation CLI Flags: New
--skill-generate,--skill-output, and--forceflags for Claude Agent Skills generation from CLI - 🔇 Quiet Mode: New
--quietflag to suppress all console output except errors, with--quiet/--verboseconflict detection - 🌿 Remote Branch Flag: New
--remote-branchflag (replaces deprecated--branch) for specifying branch, tag, or commit for remote repositories - 🔢 Token Count Encoding: New
--token-count-encodingflag to specify custom tokenizer encoding (e.g.,o200k_base,cl100k_base) - 📄 Ignore File Support: Added
.repomixignoreand.ignorefile support alongside.gitignore - 🚫 Output Control Flags: New
--no-file-summary,--no-directory-structure,--no-files,--no-gitignore,--no-dot-ignore,--no-default-patternsflags for fine-grained output control - 🧪 Comprehensive Test Suite: Added 125 new tests covering all new features (418 → 543 total)
- 🔧 Type Checker Migration: Replaced pyright with ty (from Astral/Ruff team) for faster, more accurate type checking
- 🧹 Code Quality: Applied ruff auto-fixes across codebase (
Optional[X]→X | None), fixedraisewithoutfrom, deprecated API usage - 📦 Type Safety: Improved type annotations with
Sequencefor covariant parameters andcastfor dict unpacking patterns
- 🐛 CLI Style Option: Added missing
jsonchoice to--styleCLI argument
- 🎨 JSON Output Format: New
--style jsonoption for machine-readable structured output, perfect for integration with other tools and scripts - 📊 Git Log Integration: Include recent commit history in output with
--include-logsoption - 🔀 Git Sort by Changes: Sort files by change frequency with
--sort-by-changesoption, showing most frequently modified files first - 📂 Output Split: Split large outputs into multiple files with configurable size limits using
split_outputconfiguration - 🌳 Token Count Tree: Visualize token distribution across directories with
token_count_treeoption - 📁 Full Directory Structure: Show complete directory tree including ignored files with
include_full_directory_structureoption - 🔧 Skill Generation: Generate Claude Agent Skills from codebase with new skill generation module
- 🤖 MCP generate_skill Tool: New MCP tool for generating Claude Agent Skills directly from AI assistants
- 🌐 Extended Tree-sitter Support: Added support for 9 additional languages (Rust, Java, C, C++, C#, Ruby, PHP, Swift, CSS) - now supporting 13 languages total
- 📝 Configuration Schema: Updated with new options for git integration, output splitting, and token tree visualization
- 📚 Documentation: Comprehensive updates to README files with new feature documentation
- 🧪 Examples: Added 5 new example files demonstrating JSON output, Git integration, output splitting, token tree, and full directory structure
- 🐛 Test Fixes: Fixed path comparison issues in test_file_stdin.py and output file path handling in test_core_functionality.py
- 🔧 Configuration Export: Fixed internal field filtering and ensured style configuration is properly exported as string format, improving configuration reliability
- 🧹 Configuration Migration: Streamlined configuration migration by removing deprecated internal fields, improving startup performance and reducing memory footprint
- 📝 Changelog Management: Enhanced changelog formatting with improved version section extraction for better release automation
- 🔄 Configuration Migration: Automatic backward compatibility handling for output style configuration changes
- 🚀 Release Automation: Automated changelog management that moves unreleased content to version sections during releases
- 🧹 Code Quality: Improved code readability and maintainability in release management scripts
- 🚀 Release Management System: Interactive release wizard with automated changelog generation and multi-step validation
- 🏗️ Enhanced CI/CD Pipeline: Comprehensive GitHub Actions workflows with multi-Python version testing (3.10, 3.11, 3.12)
- 🐳 Docker Support: Complete containerization with Dockerfile and comprehensive usage instructions for easy deployment
- 📊 Advanced Output Options: New CLI formatting options including parsable style, stdout output, and comment removal capabilities
- 🔧 Standard Input Support:
--stdinoption enables reading file paths from standard input for pipeline integration - 🌳 Tree-sitter Code Compression: Intelligent AST-based Python code compression with multiple modes (interface, signature, minimal) for optimized LLM token usage and enhanced structural parsing
- 🤖 MCP Server Integration: Enhanced Model Context Protocol (MCP) server functionality with new tools and improved AI development workflow integration
- 📋 Contributing Guidelines: Added comprehensive contribution documentation for developers
- 📖 Documentation Improvements: Updated README with comprehensive Docker usage instructions and
--stdinoption guidance - 🎯 Code Quality Standards: Integrated Ruff linting configuration across codebase for consistent formatting and linting
- 🧪 Test Infrastructure: Enhanced test environment with improved logger state management and output handling
- 🐛 Configuration Validation: Fixed RepomixConfigOutput style field handling to properly update with enum changes
- 🔧 CLI Argument Processing: Improved stdin option parsing and default action handling reliability
- ⚡ Tree-sitter Optimization: Refined structural compression algorithms for better performance and accuracy
- 🤖 Automated Release Tools: Added release scripts with interactive prompts and validation
- 🔐 PyPI Integration: Streamlined publishing process with trusted publishing support
- 📋 Comprehensive Testing: Extended test coverage for advanced CLI options and configuration scenarios
For versions prior to 0.3.0, please check the git history or GitHub releases page.
When preparing a release:
- Move items from
[Unreleased]to the new version section - Add the release date
- Create a new
[Unreleased]section for future changes - Follow the categories: Added, Changed, Deprecated, Removed, Fixed, Security
Example entry:
## [1.2.3] - 2024-12-25
### Added
- New awesome feature that users will love
### Fixed
- Critical bug that was causing issues