Skip to content

Submit a pull request

How to fork OpenQuok, run the monorepo locally, and open a code pull request on GitHub.

3 min read

Connect your agent today

Draft from chat, review in your calendar, and publish only what you approve.

Start for $0

Improve OpenQuok’s codebase by opening a pull request.

No special permissions are required — fork the repo, make your changes, run the relevant checks, and submit a PR for review.

Repository

Application code lives in the openquok-monorepo monorepo on GitHub. Key packages include backend/, web/, orchestrator/, agent/, sdk/, and common/. See Project architecture for layout and responsibilities.

Workflow

Fork and clone

On GitHub, fork Ratimon/openquok-monorepo, then clone your fork locally:

git clone https://github.com/<your-username>/openquok-monorepo.git
cd openquok-monorepo
corepack enable
pnpm install

Replace <your-username> with your GitHub username. For first-time setup (Node version, env files, local Supabase), follow Quick start.

Create a branch

Use a short, descriptive branch name (for example feat/threads-analytics, fix/oauth-callback, or chore/bump-deps):

git checkout -b feat/your-topic

Make your changes

Work in the package that matches your change:

AreaTypical paths
API, integrations, migrationsbackend/
Dashboard, marketing site, docs appweb/
BullMQ workers, Flowcraft flowsorchestrator/
CLI and agent toolingagent/, sdk/
Shared types and utilitiescommon/

Follow the conventions in this section — especially Security guidelines and RBAC when touching auth, secrets, or route access.

pnpm backend:db:aggregate-migrations-all

See Database & migrations for push and typegen commands.

Run checks locally

From the repository root, run the checks that apply to your change before you push. Full command reference: Development environment.

Backend — lint and tests:

pnpm backend:lint
pnpm backend:test:unit

Run integration or e2e suites when your change touches routes, providers, or cross-module behavior:

pnpm backend:test:integration
pnpm backend:test:e2e

Web — typecheck (and lint when you changed Svelte or TypeScript under web/):

pnpm web:check
pnpm --filter ./web lint

Orchestrator / agent — when you changed worker or CLI code:

pnpm orchestrator:test:unit
pnpm agent:test:unit

Start the dev servers to manually verify UI or API behavior:

pnpm backend:dev
pnpm web:dev

Commit and push

Stage only the files you changed, write a clear commit message, and push to your fork:

git add backend/ web/
git commit -m "feat: describe your change briefly"
git push -u origin feat/your-topic

Open a pull request

On GitHub, open a pull request from your branch into main on Ratimon/openquok-monorepo.

In the PR description:

  • Summarize what you changed and who it helps (dashboard users, API consumers, self-hosters, etc.).
  • Link any related issue if one exists.
  • Note which packages you touched (backend/, web/, migrations, etc.).
  • Add a short Test plan checklist (for example: “Ran pnpm backend:test:unit”, “Verified OAuth connect flow locally”, “Re-aggregated migrations”).

Maintainers will review, suggest edits if needed, and merge when ready.

What to contribute

Good first contributions include bug fixes, test coverage, provider improvements, UI polish, and documentation clarifications in code comments or README sections.

Larger features (new social providers, new API surfaces) are welcome — open a GitHub issue first if you are unsure about scope. For a new channel integration, start with Adding a social provider.

Search documentation
Find a docs page
Discord Support