Thanks for your interest in contributing!
| Path | Description |
|---|---|
apps/editor |
OCC editor (Void/VS Code fork) |
apps/web |
Marketing website (Next.js) |
apps/extension |
OpenClaw VS Code extension |
packages/control-center |
Shared React UI components |
- Node 20.18.2 — the editor enforces this via
build/npm/preinstall.jsnvm install 20.18.2 && nvm use 20.18.2 - Python 3 (for native module builds)
- Git
npm install
npm run web # http://localhost:3000cd apps/editor
npm ci --ignore-scripts
# Compile main editor (fast, ~5 s, no type-check errors)
node_modules/.bin/gulp transpile-client-esbuild
# Compile OpenClaw extension
cd extensions/openclaw && npx tsc -p ./ && cd ../..
# Launch (macOS)
VSCODE_SKIP_PRELAUNCH=1 NODE_ENV=development VSCODE_DEV=1 \
./.build/electron/OCcode.app/Contents/MacOS/Electron .The built-in free tier uses an inference backend configured via environment variables.
Copy .env.example to .env and fill in your own endpoint if you want to test it:
cp .env.example .env
# Edit .env with your OCC_INFERENCE_ENDPOINT and OCC_INFERENCE_API_KEYWithout these, the editor works fine — users can supply their own API keys (BYOK).
- BYOK keys are entered in the editor UI and passed to the local
openclawCLI for onboarding. - The extension does not log or transmit BYOK keys to OCC servers; storage is handled locally by OpenClaw/VS Code.
- To purge keys, remove them from your local OpenClaw config and any OS keychain/VS Code SecretStorage entries.
- Fork the repo and create a branch from
main. - Keep changes focused — one feature or fix per PR.
- Run the editor locally to verify your changes before opening a PR.
- Open the PR against
main.
Be respectful and constructive. We follow the Contributor Covenant.