Thank you for considering contributing to Mnemon!
- Bug fixes with a reproducing test or E2E scenario
- Performance improvements with benchmark evidence
- Documentation improvements (typos, clarity, missing examples)
- New integrations for LLM CLIs beyond Claude Code and OpenClaw
For significant features or architectural changes, please open an issue first to discuss the approach before writing code.
git clone https://github.com/mnemon-dev/mnemon.git
cd mnemon
make buildOptional: Install Ollama + nomic-embed-text for embedding-related development.
make unit # Go unit tests (go test ./...)
make test # Full E2E test suite (scripts/e2e_test.sh)
make vet # Static analysis (go vet ./...)Both make unit and make test must pass before submitting a PR.
- Format with
gofmt(the standard Go formatter) - Follow Effective Go conventions
- All exported functions and types must have doc comments
- Use
fmt.Errorf("context: %w", err)for error wrapping
We follow a lightweight conventional commits style:
Add intent override flag to recall command
Fix panic in link command with short IDs
Update USAGE.md with missing recall flags
Prefix with a verb in imperative form. The CHANGELOG filter excludes docs:, test:, ci:, chore: prefixed commits from release notes.
- Fork the repository and create a feature branch from
master. - Make your changes and ensure
make unitandmake testpass. - Update documentation (USAGE.md, DESIGN.md, or README) if your change affects user-facing behavior.
- Update
CHANGELOG.mdunder[Unreleased]for user-facing changes. - Open a pull request against
master.
Releases are fully automated. Maintainers tag and push:
git tag v0.2.0
git push origin v0.2.0This triggers GitHub Actions → runs tests → builds cross-platform binaries via GoReleaser → publishes a GitHub Release → updates the Homebrew tap.
By contributing, you agree that your contributions will be licensed under the MIT License.