Two issues with image handling in chat: 1. Images pasted/dropped in chat were uploaded to disk but only file paths were sent as plain text. The model never received actual image bytes. Now sends base64 image data as `attachments` in the chat.send RPC so vision-capable models can see images directly. 2. Attached file paths (e.g. assets/screenshot.png) were not prefixed with the workspace root, unlike [Context: workspace file '...'] paths. The agent couldn't resolve relative paths. Now both patterns get the workspace prefix. Files changed: - chat-panel.tsx: read images as base64 via FileReader, send as FileUIPart - chat/route.ts: extract image file parts, prefix attached file paths - gateway/chat/route.ts: accept attachments in request body - active-runs.ts: thread attachments through startRun - agent-runner.ts: forward attachments to chat.send RPC - chat-message.tsx: render inline image previews in user messages Made-with: Cursor
Website · Discord · Skills Store · Demo Video
Demo Video · Join our Discord Server
Install
Node 22+ required.
npx denchclaw@latest
Opens at localhost:3100 after completing onboarding wizard.
Commands
npx denchclaw@latest # runs onboarding again for openclaw --profile dench
npx denchclaw@latest update # updates denchclaw web-runtime 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
openclaw --profile dench uninstall
Daemonless / Docker
For containers or environments without systemd/launchd, set the environment variable once:
export DENCHCLAW_DAEMONLESS=1
This skips all gateway daemon management (install/start/stop/restart) and launchd LaunchAgent installation across all commands. You must start the gateway yourself as a foreground process:
openclaw --profile dench gateway --port 19001
Alternatively, pass --skip-daemon-install to individual commands:
npx denchclaw --skip-daemon-install
npx denchclaw update --skip-daemon-install
npx denchclaw start --skip-daemon-install
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%