Thank you for your interest in contributing to ReasonDB. This guide will help you get set up and submit changes.
You need a local clone and a Rust toolchain. No Docker is required for building the server or CLI, but Docker is useful for running a full stack or testing the image.
- Rust 1.91+ — The repo pins the toolchain; if you have rustup, run
rustup showin the repo to use the pinned version. - Git — To clone and branch.
git clone https://github.com/reasondb/reasondb.git
cd reasondb
cargo build --releaseThe first build can take a few minutes. The server binary is target/release/reasondb-server; the CLI is target/release/reasondb. You can run the server with:
./target/release/reasondb config init # set LLM provider and API key once
./target/release/reasondb serveOr use the installed binary if you ran cargo install --path crates/reasondb-cli and cargo install --path crates/reasondb-server.
From the repository root:
cargo test --workspace --exclude reasondbCI runs the same test command. Fix any failing tests before submitting a PR.
To run the server in Docker (e.g. to test the image or use a consistent environment):
# From repo root, with .env containing REASONDB_LLM_PROVIDER and REASONDB_LLM_API_KEY
make docker-up # build and start
make docker-up-d # background
make docker-logs # follow logs
make docker-down # stopSee the root docker-compose.yml. For a consumer-style run (no build), use the published image and a minimal compose as in the Quick Start docs.
If you work on the ReasonDB Client app:
make client-install # npm install in apps/reasondb-client
make client-dev # web dev server
make client-app # Tauri desktop app (dev)
make client-app-build # production buildSee apps/reasondb-client/README.md for client-specific tests and scripts.
- Open an issue (optional but helpful) — For bugs or features, an issue helps align on scope before you invest in a patch.
- Fork and branch — Create a branch from
main(e.g.fix/issue-123orfeat/your-feature). - Make your changes — Keep commits focused and messages clear.
- Run tests —
cargo test --workspace --exclude reasondbmust pass. - Open a pull request — Target
main. Describe what changed and why; link any related issue.
We’ll review as soon as we can. Small, focused PRs are easier to merge.
- Rust — Format with
cargo fmt, check withcargo clippy. The project uses the default Rust style. - Docs — User-facing docs live under
docs/(MDX). Update the relevant guide or API reference when behavior or config changes. - API and config — Avoid breaking changes when possible. New optional fields and new endpoints are preferred over changing existing contracts.
Use GitHub Issues for:
- Bug reports — Include version, OS, steps to reproduce, and logs if relevant.
- Feature ideas — Describe the use case and desired behavior.
- Full documentation
- Quick Start — Running ReasonDB (Docker, Homebrew, from source)
- API Reference — REST API and OpenAPI
Thank you for contributing to ReasonDB.