website/client/src/en/guide/development/index.md
Thank you for your interest in Repomix! š We'd love your help to make it even better. This guide will help you get started with contributing to the project.
To set up Repomix for local development:
# Clone repository
git clone https://github.com/yamadashy/repomix.git
cd repomix
# Install dependencies
npm install
# Run CLI
npm run repomix
You can also run Repomix using Docker:
# Build image
docker build -t repomix .
# Run container
docker run -v ./:/app -it --rm repomix
The project is organized into the following directories:
src/
āāā cli/ # CLI implementation
āāā config/ # Configuration handling
āāā core/ # Core functionality
ā āāā file/ # File handling
ā āāā metrics/ # Metrics calculation
ā āāā output/ # Output generation
ā āāā security/ # Security checks
āāā mcp/ # MCP server integration
āāā shared/ # Shared utilities
tests/ # Tests mirroring src/ structure
website/ # Documentation website
āāā client/ # Frontend (VitePress)
āāā server/ # Backend API
# Run CLI
npm run repomix
# Run tests
npm run test
npm run test-coverage
# Lint code
npm run lint
We use Vitest for testing. To run the tests:
# Run tests
npm run test
# Test coverage
npm run test-coverage
# Linting
npm run lint-biome
npm run lint-ts
npm run lint-secretlint
We use Biome for linting and formatting. Please make sure your code follows the style guide by running:
npm run lint
Before submitting a Pull Request, please ensure:
npm run testnpm run lintThe Repomix website is built with VitePress. To run the website locally:
# Prerequisites: Docker must be installed on your system
# Start the website development server
npm run website
# Access the website at http://localhost:5173/
When updating documentation, you only need to update the English version first. The maintainers will handle translations to other languages.
For maintainers and contributors interested in the release process:
npm version patch # or minor/major
npm run test-coverage
npm run build
npm publish
New versions are managed by the maintainer. If you think a release is needed, open an issue to discuss it.