2.7 KiB
Contributing to OpenClaw
Welcome to the lobster tank! 🦞
Quick Links
- GitHub: https://github.com/openclaw/openclaw
- Discord: https://discord.gg/qkhbAGHRBT
- X/Twitter: @steipete / @openclaw
Maintainers
-
Peter Steinberger - Benevolent Dictator
-
Shadow - Discord + Slack subsystem
- GitHub: @thewilloftheshadow · X: @4shad0wed
-
Jos - Telegram, API, Nix mode
-
Christoph Nakazawa - JS Infra
- GitHub: @cpojer · X: @cnakazawa
How to Contribute
- Bugs & small fixes → Open a PR!
- New features / architecture → Start a GitHub Discussion or ask in Discord first
- Questions → Discord #setup-help
Before You PR
- Test locally with your OpenClaw instance
- Run tests:
pnpm build && pnpm check && pnpm test - Keep PRs focused (one thing per PR)
- Describe what & why
Control UI Decorators
The Control UI uses Lit with legacy decorators (current Rollup parsing does not support
accessor fields required for standard decorators). When adding reactive fields, keep the
legacy style:
@state() foo = "bar";
@property({ type: Number }) count = 0;
The root tsconfig.json is configured for legacy decorators (experimentalDecorators: true)
with useDefineForClassFields: false. Avoid flipping these unless you are also updating the UI
build tooling to support standard decorators.
AI/Vibe-Coded PRs Welcome! 🤖
Built with Codex, Claude, or other AI tools? Awesome - just mark it!
Please include in your PR:
- Mark as AI-assisted in the PR title or description
- Note the degree of testing (untested / lightly tested / fully tested)
- Include prompts or session logs if possible (super helpful!)
- Confirm you understand what the code does
AI PRs are first-class citizens here. We just want transparency so reviewers know what to look for.
Current Focus & Roadmap 🗺
We are currently prioritizing:
- Stability: Fixing edge cases in channel connections (WhatsApp/Telegram).
- UX: Improving the onboarding wizard and error messages.
- Skills: Expanding the library of bundled skills and improving the Skill Creation developer experience.
- Performance: Optimizing token usage and compaction logic.
Check the GitHub Issues for "good first issue" labels!