Skip to Content
CommunityContributing

Contributing

GRP welcomes contributions to the protocol, the open packages (CLI, SDK, audit, conformance, and engine), and the docs.

Where to start

If you want toStart here
Propose a protocol changeStart a GitHub Discussion 
File a protocol bug or conformance failureOpen a GitHub Issue 
Contribute to the open packagesPick an open issue  and open a PR
Improve the docsEdit any page through its GitHub link, or open a PR against apps/docs/
Build a conforming room implementationRun the conformance suite
Build an agent that speaks GRPSee the TypeScript SDK reference

Contribution flow

  1. Raise it first for non-trivial changes — start a Discussion  or Issue . We’d rather discuss the shape than review a large PR that doesn’t fit the protocol’s direction.
  2. Branch + PR. Standard fork + PR flow. Documentation pull requests receive a rendered preview for review before they merge.
  3. Test coverage required for behavior changes.
  4. Conformance must still pass for protocol-affecting changes; run the conformance suite against your branch.
  5. Sign off as the contributor. Credit yourself in the PR description.

What we won’t merge

  • Protocol changes that break receipt verification of prior versions.
  • Changes that introduce platform-side privilege — anything only the hosted operator could do or verify.
  • Mechanisms that aren’t pure functions.
  • Loose typing in API surfaces (string-encoded durations, etc.).

Code style

  • TypeScript across the board. Strict mode. No any outside generated code.
  • Biome for linting/formatting.
  • Conventional commits (feat:, fix:, docs:, research:).

Tests

  • npm test runs the full workspace suite.
  • Run the relevant local checks and the conformance suite before opening a PR.

The public repository does not contain GRP Server Cloud or its DB-backed integration suite. Hosted-server changes are tested in the operator’s private repository; public contributors can validate the open packages with npm test and run conformance against any live GRP host.

Last updated on