Thank you for your interest in contributing! This guide will help you get started.
- Node.js 20+
- A free Cloudflare account (for Workers/D1)
# Fork and clone
git clone https://github.com/YOUR_USERNAME/openclaw-foundry.git
cd openclaw-foundry
# Install dependencies
npm install
cd web && npm install && cd ..
cd worker && npm install && cd ..
# Set up Cloudflare bindings
cp worker/wrangler.toml.example worker/wrangler.toml
# Edit with your D1/KV IDs (see README for setup)
# Start frontend (http://localhost:3200)
cd web && npm run dev
# Start API (http://localhost:8787) — in another terminal
cd worker && npm run devopenclaw-foundry/
├── web/ # Next.js 15 frontend (CF Pages)
│ ├── app/ # App Router pages
│ ├── components/ # Shared components
│ ├── lib/ # API client, i18n
│ └── messages/ # en.json, zh.json (translations)
├── worker/ # Hono API (CF Workers)
│ └── src/ # Routes, handlers
├── scripts/ # Data pipeline scripts
├── data/ # Processed data (prebuild JSON)
└── .github/workflows/ # CI/CD
- Edit
web/messages/en.jsonandweb/messages/zh.json - Use the
t('key')function fromuseI18n()hook in components - Follow existing key naming:
page.section.element
Scripts in scripts/ handle scraping and processing:
scrape-clawhub-api.mjs— ClawHub API fetcherscrape-mcp-registry.mjs— MCP Registry fetchersync-clawhub-skills.mjs— Rating + categorizationmerge-all-sources.mjs— Cross-source deduplication
- Open an issue describing the feature
- Fork the repo and create a feature branch
- Make your changes with clear commit messages
- Submit a PR referencing the issue
- TypeScript strict mode
- Conventional Commits (
feat:,fix:,docs:,chore:) - Tailwind CSS for styling (no custom CSS classes unless necessary)
- Prefer
constoverlet, arrow functions, early returns
Follow Conventional Commits:
feat(skills): add filter by author
fix(deploy): correct platform selection state
docs: update README with new architecture diagram
chore(ci): upgrade Node.js to v22
By contributing, you agree that your contributions will be licensed under the MIT License.