Thanks for contributing! Bug reports, feature requests, and pull requests are all welcome.
- Found a bug or have an idea? Open an issue.
- Question or setup help? Ask in Discord.
- Ready to code? Open a pull request against this repository.
A fresh clone builds and tests with no environment variables:
pnpm install
pnpm run check # lint, typecheck, and testsRun the editor app (http://localhost:5173):
cd packages/app && pnpm run devRun the docs site:
cd docs && pnpm run devSee .env.example for optional settings (OpenTelemetry, a custom dev port).
The repo pins Node.js 24+ and pnpm 10+ (via .node-version, the packageManager field, and engines). Enable pnpm with corepack enable pnpm, or install it standalone (npm install -g pnpm@10). With a Node version manager, use fnm install, mise install, or volta install node@24. pnpm enforces the engine range (engine-strict), so on older Node pnpm install fails fast — pin Node 24+ first.
Patched dependencies (listed under patchedDependencies in pnpm-workspace.yaml, with the diffs in patches/) are authored with pnpm: run pnpm patch <name>@<version>, edit the printed temp directory, then pnpm patch-commit <temp-dir> to write the patch file and register it. A patch that fails to apply fails the install closed — it is never silently skipped.
pnpm run format # format (Biome)
pnpm run lint # lint (Biome)
pnpm run typecheck # TypeScript
pnpm run test # tests
pnpm run build # build all packages
pnpm run check # lint + typecheck + testRun a single package's scripts from its directory, e.g. cd packages/app && pnpm run test.
First-time contributors are asked to sign our Contributor License Agreement — a bot comments a one-click signing link on your PR (Inkeep employees are exempt automatically). Please follow the checklist in our Pull Request Template:
- Keep PRs focused and small enough to review.
- Add tests — or a clear manual-verification note — for behavior changes.
- Add a changeset by running
pnpm run changesetif your pull request changes user-facing or programmatic behavior. - Run
pnpm run checkand confirm it passes. - Commit
pnpm-lock.yamlwhen dependencies change, and runpnpm run noticesto refreshTHIRD_PARTY_NOTICES.mdif third-party packages changed. - Never include secrets, credentials, customer data, or local machine paths.
- Enable Allow edits from maintainers so reviewers can push fixes to your branch.
A maintainer will review your PR; if you don't hear back within a few business days, a friendly nudge on the thread is welcome. Accepted changes land on main with your authorship preserved (your PR may show as closed rather than merged).
By contributing, you agree that your work is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later), the same license as OpenKnowledge.