UNPKG

git-ingest

Version:

Fast, AI-ready CLI tool that converts entire codebases into structured text files. Perfect for feeding projects to LLMs, code reviews, and documentation. Features streaming architecture, smart filtering, and cross-platform clipboard integration.

2 lines (1 loc) 2.14 kB
# Git-Ingest Technical Overview## Project SummaryGit-Ingest is a Node.js CLI tool that converts entire codebases into structured text files. It features smart filtering, binary file detection, cross-platform clipboard integration, and comprehensive gitignore support.## Architecture### Core Components`src/├── cli.js # Entry point and command handling├── config.js # Configuration management├── tree-generator.js # Directory traversal and tree generation├── read-file-and-append.js # File content processing├── progress-reporter.js # Progress indicators and reporting└── error-handler.js # Centralized error handling`### Key Features- **Smart Directory Processing**: Full gitignore specification compliance- **Performance Optimized**: Async operations with memory-efficient streaming- **Security First**: No command injection vulnerabilities, input validation- **Professional CLI**: Built with Commander.js, progress indicators, colored output- **Cross-Platform**: Works on macOS, Windows, and Linux## Technology Stack- **Runtime**: Node.js 16+ (ES Modules)- **CLI Framework**: Commander.js- **Dependencies**: chalk, clipboardy, ignore, isbinaryfile, ora- **Testing**: Jest with comprehensive test suite- **Code Quality**: ESLint, Prettier, Husky pre-commit hooks## Performance Characteristics- **Memory Usage**: Constant memory usage regardless of project size- **Processing Speed**: Optimized for large codebases (10,000+ files)- **I/O Operations**: Fully asynchronous with streaming architecture- **Binary Detection**: Intelligent binary file detection and exclusion## Quality Metrics- **Test Coverage**: 90%+ code coverage- **Security**: Zero known vulnerabilities- **Cross-Platform**: Full compatibility across major operating systems- **Performance**: < 5 seconds for 1,000 file projects## Development### Prerequisites- Node.js 16+- npm### Setup`bashnpm installnpm testnpm run lint`### Testing`bashnpm run test:coverage # Run with coveragenpm run test:watch # Watch mode`For more details, see the main [README.md](../README.md).