Thank you for your interest in contributing to mgrep! This guide covers contribution workflows for both human developers and AI coding agents.
- Node.js 18+
- pnpm 8+
- A Mixedbread account (for testing search functionality)
# Clone the repository
git clone https://github.com/mixedbread-ai/mgrep.git
cd mgrep
# Install dependencies
pnpm install
# Build the project
pnpm build
# Run tests to verify setup
pnpm test- Check existing issues before starting new work
- For new features, open an issue first to discuss the approach
- Reference issue numbers in commits and PRs
git checkout -b feat/your-feature-name
# or
git checkout -b fix/issue-descriptionFollow the guidelines in CLAUDE.md for code style and AGENTS.md for architectural patterns.
# Type checking
pnpm typecheck
# Linting
pnpm lint
# Tests
pnpm test
# Format code
pnpm formatUse conventional commit format:
type(scope): description
[optional body]
[optional footer]
Types: feat, fix, docs, test, refactor, chore
Examples:
feat(search): add support for PDF content search
fix(auth): handle token refresh on 401 response
docs: update installation instructions
test(search): add tests for empty query handling
- Fill out the PR template completely
- Link related issues
- Request review from maintainers
If you're an AI coding agent working on this codebase:
- Read
AGENTS.mdfor project structure and conventions - Read
claude.mdfor code style guidelines - Use
mgrepto search for relevant code patterns
- Read before modifying — Always read files before making changes
- Check for existing utilities — Look in
src/lib/before creating new helpers - Follow existing patterns — Match the style of surrounding code
- Run verification — Execute
pnpm typecheck && pnpm testafter changes
- Bug fixes: Add a regression test
- New features: Add integration tests
- Refactors: Ensure existing tests pass
When your changes affect:
- User-facing behavior — Update README.md
- API or configuration — Update relevant docs
- Common patterns — Update AGENTS.md
type(scope): concise description
- Bullet points for additional context
- Reference issue numbers: Fixes #123
- Code follows project style guidelines
- Tests are included and passing
- No security vulnerabilities introduced
- Documentation updated if needed
- Commits are well-organized and messaged
- Address all comments before requesting re-review
- Explain your reasoning if you disagree with feedback
- Don't force-push after review has started
Releases are managed by maintainers:
- Version bump in
package.json - Update CHANGELOG (if exists)
- Tag release:
git tag v0.x.x - Publish:
pnpm publish
- Open an issue for bugs or feature requests
- Join the Mixedbread Slack for questions
- Check existing issues and discussions first
By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.