mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
145 lines
6.1 KiB
Markdown
145 lines
6.1 KiB
Markdown
# Contributing to OpenClaw
|
|
|
|
Welcome to the lobster tank! 🦞
|
|
|
|
## Quick Links
|
|
|
|
- **GitHub:** https://github.com/openclaw/openclaw
|
|
- **Vision:** [`VISION.md`](VISION.md)
|
|
- **Discord:** https://discord.gg/qkhbAGHRBT
|
|
- **X/Twitter:** [@steipete](https://x.com/steipete) / [@openclaw](https://x.com/openclaw)
|
|
|
|
## Maintainers
|
|
|
|
- **Peter Steinberger** - Benevolent Dictator
|
|
- GitHub: [@steipete](https://github.com/steipete) · X: [@steipete](https://x.com/steipete)
|
|
|
|
- **Shadow** - Discord subsystem, Discord admin, Clawhub, all community moderation
|
|
- GitHub: [@thewilloftheshadow](https://github.com/thewilloftheshadow) · X: [@4shad0wed](https://x.com/4shad0wed)
|
|
|
|
- **Vignesh** - Memory (QMD), formal modeling, TUI, IRC, and Lobster
|
|
- GitHub: [@vignesh07](https://github.com/vignesh07) · X: [@\_vgnsh](https://x.com/_vgnsh)
|
|
|
|
- **Jos** - Telegram, API, Nix mode
|
|
- GitHub: [@joshp123](https://github.com/joshp123) · X: [@jjpcodes](https://x.com/jjpcodes)
|
|
|
|
- **Ayaan Zaidi** - Telegram subsystem, iOS app
|
|
- GitHub: [@obviyus](https://github.com/obviyus) · X: [@0bviyus](https://x.com/0bviyus)
|
|
|
|
- **Tyler Yust** - Agents/subagents, cron, BlueBubbles, macOS app
|
|
- GitHub: [@tyler6204](https://github.com/tyler6204) · X: [@tyleryust](https://x.com/tyleryust)
|
|
|
|
- **Mariano Belinky** - iOS app, Security
|
|
- GitHub: [@mbelinky](https://github.com/mbelinky) · X: [@belimad](https://x.com/belimad)
|
|
|
|
- **Vincent Koc** - Agents, Telemetry, Hooks, Security
|
|
- GitHub: [@vincentkoc](https://github.com/vincentkoc) · X: [@vincent_koc](https://x.com/vincent_koc)
|
|
|
|
- **Seb Slight** - Docs, Agent Reliability, Runtime Hardening
|
|
- GitHub: [@sebslight](https://github.com/sebslight) · X: [@sebslig](https://x.com/sebslig)
|
|
|
|
- **Christoph Nakazawa** - JS Infra
|
|
- GitHub: [@cpojer](https://github.com/cpojer) · X: [@cnakazawa](https://x.com/cnakazawa)
|
|
|
|
- **Gustavo Madeira Santana** - Multi-agents, CLI, web UI
|
|
- GitHub: [@gumadeiras](https://github.com/gumadeiras) · X: [@gumadeiras](https://x.com/gumadeiras)
|
|
|
|
## How to Contribute
|
|
|
|
1. **Bugs & small fixes** → Open a PR!
|
|
2. **New features / architecture** → Start a [GitHub Discussion](https://github.com/openclaw/openclaw/discussions) or ask in Discord first
|
|
3. **Questions** → Discord #setup-help
|
|
|
|
## Before You PR
|
|
|
|
- Test locally with your OpenClaw instance
|
|
- Run tests: `pnpm build && pnpm check && pnpm test`
|
|
- Ensure CI checks pass
|
|
- Keep PRs focused (one thing per PR; do not mix unrelated concerns)
|
|
- 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:
|
|
|
|
```ts
|
|
@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**: For skill contributions, head to [ClawHub](https://clawhub.ai/) — the community hub for OpenClaw skills.
|
|
- **Performance**: Optimizing token usage and compaction logic.
|
|
|
|
Check the [GitHub Issues](https://github.com/openclaw/openclaw/issues) for "good first issue" labels!
|
|
|
|
## Maintainers
|
|
|
|
We're selectively expanding the maintainer team.
|
|
If you're an experienced contributor who wants to help shape OpenClaw's direction — whether through code, docs, or community — we'd like to hear from you.
|
|
|
|
Being a maintainer is a responsibility, not an honorary title. We expect active, consistent involvement — triaging issues, reviewing PRs, and helping move the project forward.
|
|
|
|
Still interested? Email contributing@openclaw.ai with:
|
|
|
|
- Links to your PRs on OpenClaw (if you don't have any, start there first)
|
|
- Links to open source projects you maintain or actively contribute to
|
|
- Your GitHub, Discord, and X/Twitter handles
|
|
- A brief intro: background, experience, and areas of interest
|
|
- Languages you speak and where you're based
|
|
- How much time you can realistically commit
|
|
|
|
We welcome people across all skill sets — engineering, documentation, community management, and more.
|
|
We review every human-only-written application carefully and add maintainers slowly and deliberately.
|
|
Please allow a few weeks for a response.
|
|
|
|
## Report a Vulnerability
|
|
|
|
We take security reports seriously. Report vulnerabilities directly to the repository where the issue lives:
|
|
|
|
- **Core CLI and gateway** — [openclaw/openclaw](https://github.com/openclaw/openclaw)
|
|
- **macOS desktop app** — [openclaw/openclaw](https://github.com/openclaw/openclaw) (apps/macos)
|
|
- **iOS app** — [openclaw/openclaw](https://github.com/openclaw/openclaw) (apps/ios)
|
|
- **Android app** — [openclaw/openclaw](https://github.com/openclaw/openclaw) (apps/android)
|
|
- **ClawHub** — [openclaw/clawhub](https://github.com/openclaw/clawhub)
|
|
- **Trust and threat model** — [openclaw/trust](https://github.com/openclaw/trust)
|
|
|
|
For issues that don't fit a specific repo, or if you're unsure, email **security@openclaw.ai** and we'll route it.
|
|
|
|
### Required in Reports
|
|
|
|
1. **Title**
|
|
2. **Severity Assessment**
|
|
3. **Impact**
|
|
4. **Affected Component**
|
|
5. **Technical Reproduction**
|
|
6. **Demonstrated Impact**
|
|
7. **Environment**
|
|
8. **Remediation Advice**
|
|
|
|
Reports without reproduction steps, demonstrated impact, and remediation advice will be deprioritized. Given the volume of AI-generated scanner findings, we must ensure we're receiving vetted reports from researchers who understand the issues.
|