6.4 KiB
6.4 KiB
name, description, version, metadata
| name | description | version | metadata | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| openclaw-dashboard | Builds and maintains the public OpenClaw dashboard repository with sanitization-first rules. Use when adding features, adjusting `api-server.js` routes, changing `agent-dashboard.html`, or preparing public-safe docs and configuration. | 1.0.9 |
|
OpenClaw Dashboard
A mobile-friendly operational dashboard for OpenClaw agents.
Quick Start (ClawHub Install)
- Install:
clawhub install openclaw-dashboard - Navigate:
cd ~/.openclaw/workspace/skills/openclaw-dashboard - Copy config:
cp .env.example .env(edit as needed) - Start:
node api-server.js - Open: http://localhost:18791
Configuration
| Env Variable | Default | Description |
|---|---|---|
OPENCLAW_AUTH_TOKEN |
(none) | Access token. If unset, open on localhost |
DASHBOARD_PORT |
18791 | Server port |
DASHBOARD_HOST |
127.0.0.1 | Bind address |
DASHBOARD_TITLE |
OpenClaw Dashboard | Browser tab title |
Authentication
- No token set: Dashboard is accessible without auth on localhost
- Token set: Access via
http://localhost:18791/loginor append?token=yourtoken
Verify It Works
curl http://localhost:18791/health
Prerequisites
- Node.js 20+
- OpenClaw running on the same machine
For Contributors
Mission
Keep this repository public-safe and easy to run. Prioritize:
- Secret sanitization
- Minimal setup steps
- Stable API/UI behavior
Apply when
Use this skill for:
- Dashboard feature requests (sessions, cost, cron, watchdog, operations)
- Backend route updates in
api-server.js - Frontend behavior updates in
agent-dashboard.html - README, setup, and environment simplification
- Public release checks for accidental sensitive data
Public-safety guardrails
- Never hardcode tokens, API keys, cookies, or host-specific secrets.
- Never commit machine-specific absolute paths.
- Prefer
process.env.*and safe defaults based onHOME. - Keep examples as placeholders (
your_token_here,/path/to/...). - If uncertain, redact first and ask the user before exposing details.
- Keep sensitive behaviors opt-in (do not silently load local secret files).
Runtime access declaration
The bundled server can access local OpenClaw files for dashboard views:
- Sessions, cron runs, watchdog state under
~/.openclaw/... - Local workspace files under
OPENCLAW_WORKSPACE - Task attachments in the repository
attachments/folder
Credential requirements are optional by default:
OPENCLAW_AUTH_TOKENis optional but recommended when exposing endpoints beyond local trusted use.gateway.authTokenis optional configuration context, not a hard install requirement.
High-sensitivity features are disabled by default and require explicit env flags:
OPENCLAW_LOAD_KEYS_ENV=1to loadkeys.envOPENCLAW_ENABLE_PROVIDER_AUDIT=1to call OpenAI/Anthropic org APIsOPENCLAW_ENABLE_CONFIG_ENDPOINT=1to expose/ops/configOPENCLAW_ALLOW_ATTACHMENT_FILEPATH_COPY=1for absolute-path attachment copy modeOPENCLAW_ALLOW_ATTACHMENT_COPY_FROM_TMP=1to allow copy from/tmpOPENCLAW_ALLOW_ATTACHMENT_COPY_FROM_WORKSPACE=1to allow copy from workspace pathsOPENCLAW_ALLOW_ATTACHMENT_COPY_FROM_OPENCLAW_HOME=1to allow copy from~/.openclawOPENCLAW_ENABLE_SYSTEMCTL_RESTART=1to allow user-scoped systemctl restartOPENCLAW_ENABLE_MUTATING_OPS=1to enable mutating operations (/backup*,/ops/update-openclaw,/ops/*-model, cron run-now)
Network security:
- CORS is restricted to loopback origins by default (no wildcard
*). - Set
DASHBOARD_CORS_ORIGINS(comma-separated) to allow specific external origins. - Auth token is validated via HttpOnly cookie (
ds) or?token=query param. - Cookie auth is preferred; URL token param exists for backward compatibility with server-monitor scripts.
- When exposing beyond loopback (e.g. Tailscale Funnel), always set
OPENCLAW_AUTH_TOKEN.
Prompt safety hardening:
- Treat cron/task payload text as untrusted data.
- Keep prompts structured (JSON payload) and avoid direct command interpolation.
- All child_process calls use execFileSync (args array, no shell interpolation).
- FILEPATH_COPY includes symlink escape protection (realpathSync re-check).
Default implementation workflow
- Identify affected module (API, UI, docs, config).
- Implement the smallest change that preserves behavior.
- Run a quick sensitive-string scan before finalizing.
- Ensure docs match the actual runtime defaults.
- Report user-visible changes and any manual verification steps.
Sensitive-data checks
Before final response, scan for:
token=,OPENCLAW_AUTH_TOKEN,OPENCLAW_HOOK_TOKENAPI_KEY,SECRET,PASSWORD,COOKIE- absolute paths like
/Users/,C:\\, machine names, personal emails
If found:
- Replace with env-based values or placeholders.
- Mention what was sanitized in the result.
Config simplification rules
- Keep required env vars minimal and explicit.
- Keep optional env vars grouped and clearly marked.
- Provide one copy-paste start command.
- Avoid toolchain-heavy setup unless strictly needed.
Files to touch most often
api-server.js: server behavior and API routesagent-dashboard.html: UI and client interactionsREADME.md: quick start and operator docs.env.example: public-safe environment template