Thanks for your interest in contributing! Here's how to get started.
- Fork and clone the repository
- Install dependencies:
npm install - Copy
.env.exampleto.env.localand configure your gateway connection - Start the dev server:
npm run dev - Open http://localhost:3939
You'll need a running OpenClaw gateway for the dashboard to display data. Use npm run probe to verify gateway connectivity.
For a deeper understanding of how the codebase works, see the Architecture guide.
| Command | Description |
|---|---|
npm run dev |
Start dev server on :3939 |
npm run lint |
Run ESLint |
npm run test |
Run Vitest test suite |
npm run probe |
Test gateway connectivity |
Note: The dev server uses a custom server.ts (not the default next dev). It initializes the gateway WebSocket connection before accepting HTTP requests.
- Create a feature branch from
main - Make your changes following the coding conventions below
- Run
npm run lintandnpm run testto verify your changes - Submit a pull request with a clear description of the problem and solution
- Include before/after screenshots for any UI changes
- TypeScript + React throughout
- Components:
PascalCasenames,kebab-case.tsxfilenames - Styling: Tailwind CSS v4 + shadcn/ui — avoid raw
styleattributes - Data fetching: tRPC + TanStack React Query — follow existing router patterns
- New tRPC procedures: Zod input validation, thin pass-through to
GatewayClientmethods - Commits: Conventional Commits (e.g.,
feat(sessions): ...,fix(system): ...)
- Use GitHub Issues to report bugs or suggest features
- Include repro steps, expected behavior, and actual behavior
- Mention your Node.js version and OS
By contributing, you agree that your contributions will be licensed under the MIT License.