The bootstrap port selection logic tried OpenClaw's default port (18789) before the DenchClaw range (19001+). If OpenClaw was temporarily down during bootstrap, DenchClaw would claim 18789 and persist it to config and the LaunchAgent plist, killing OpenClaw on every subsequent restart. - Remove the DEFAULT_GATEWAY_PORT (18789) branch from bootstrap; always start from DENCHCLAW_GATEWAY_PORT_START (19001) - Read previously persisted config port and reuse it (unless it is 18789) - Extract isPersistedPortAcceptable guard to reject corrupted 18789 state - Add DENCHCLAW_DEFAULT_GATEWAY_PORT constant and make resolveGatewayPort profile-aware so the "dench" profile falls back to 19001 - Fix hardcoded 18789 fallback in web-runtime-command.ts
Website · Discord · Skills Store
Install
Node 22+ required.
npx denchclaw
Opens at localhost:3100 after completing onboarding wizard.
Commands
npx denchclaw stop # stops denchclaw web server
npx denchclaw restart # restarts denchclaw web server
npx denchclaw update # updates denchclaw with current settings as is
npx denchclaw # runs onboarding again for openclaw --profile dench
openclaw --profile dench <any openclaw command>
openclaw --profile dench gateway restart
Development
git clone https://github.com/DenchHQ/DenchClaw.git
cd denchclaw
pnpm install
pnpm build
pnpm dev
Web UI development:
pnpm install
pnpm web:dev
Open Source
MIT Licensed. Fork it, extend it, make it yours.
Languages
TypeScript
73.8%
JavaScript
17.1%
Swift
6.1%
Kotlin
1.4%
Shell
0.9%
Other
0.6%