name: clawline-webroot description: Serve static files from the Clawline provider at /www. metadata: { "openclaw": { "skillKey": "clawline-webroot" } }
Clawline Web Root
The Clawline provider serves static files from a local directory.
Configuration
- Config key: channels.clawline.webRootPath
- To find the webroot path, try reading the config key first:
If no value is set, the default is:openclaw config get channels.clawline.webRootPath~/.openclaw/workspace/www/
Accessing files
URL pattern: http://<hostname>:<clawline-port>/www/<filename>
- The port is the Clawline provider port (
channels.clawline.port, default 18800) - This is NOT the gateway port or any other internal port
- Do not hand out
localhostunless the viewer is definitely on the same machine that is serving the file. - If the viewer is on another device (including Tailscale clients, remote browsers, gateway/web clients, phones, tablets, or laptops on the network), use the serving machine's reachable hostname or IP instead.
- In Flynn's setup, prefer the host's reachable Tailscale/host address by default unless same-machine viewing is explicitly known.
- Example for same-machine viewing only:
http://localhost:18800/www/index.html - Example for remote viewing:
http://<reachable-hostname>:18800/www/index.html
Usage
# Find the webroot directory
webRootPath="$(openclaw config get channels.clawline.webRootPath 2>/dev/null || echo ~/.openclaw/workspace/www)"
mkdir -p "$webRootPath"
# Add a file
echo '<h1>Hello</h1>' > "$webRootPath/index.html"
# Verify it serves
curl http://localhost:18800/www/index.html
Security
- Dotfiles blocked (files starting with . return 404)
- Path traversal blocked (.. segments return 404)
- Methods: GET and HEAD only
Custom Path
Override in config (JSON):
{
"channels": {
"clawline": {
"webRootPath": "/path/to/custom/www"
}
}
}