The root layout called getOrCreateAnonymousId() in a Server Component without marking the route as dynamic. Next.js treated it as static, pre-rendering the developer's UUID into the standalone build shipped via npm — so every `npx denchclaw` user shared the same PostHog identity. - Add `export const dynamic = "force-dynamic"` to root layout - Replace `process.env.HOME || "~"` fallback with `homedir()` in web telemetry and posthog-analytics plugin (Node.js path.join doesn't expand "~", creating a relative path under cwd instead)
Website · Discord · Skills Store
Install
Node 22+ required.
npx denchclaw
Opens at localhost:3100 after completing onboarding wizard.
Commands
npx denchclaw # runs onboarding again for openclaw --profile dench
npx denchclaw update # updates denchclaw with current settings as is
npx denchclaw restart # restarts denchclaw web server
npx denchclaw start # starts denchclaw web server
npx denchclaw stop # stops denchclaw web server
# some examples
openclaw --profile dench <any openclaw command>
openclaw --profile dench gateway restart
openclaw --profile dench config set gateway.port 19001
openclaw --profile dench gateway install --force --port 19001
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%