ClawTime Setup

ReviewAudited by ClawScan on May 10, 2026.

Overview

The setup is coherent, but it downloads unpinned web-app code and gives it OpenClaw gateway access through a public Cloudflare tunnel, so it should be reviewed before use.

Install only if you trust the GitHub repository and its NPM dependencies. Before running it, review the downloaded code, confirm the Cloudflare domain is yours, use the least-privileged gateway token possible, keep TTS disabled unless sanitization is verified, and unload any launchd services when you no longer want ClawTime running.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A user would be trusting downloaded code and NPM dependencies with the gateway token and local UI behavior.

Why it was flagged

The installer fetches the actual ClawTime app and its dependencies from an external repository at install time, with no commit pin or reviewed app source included in these artifacts.

Skill content
REPO_URL="https://github.com/youngkent/clawtime.git" ... git clone "$REPO_URL" "$INSTALL_DIR" ... npm install --legacy-peer-deps --silent
Recommendation

Review or pin the ClawTime repository and dependency lockfile before installation, and avoid running the setup with sensitive tokens until the downloaded code is trusted.

What this means

If the downloaded web app or its configuration is wrong or compromised, it could act with meaningful OpenClaw gateway authority.

Why it was flagged

The ClawTime gateway handshake is documented as using the user's gateway token with operator read/write scopes.

Skill content
- `role` — typically `"operator"`
- `scopes` — `"operator.write,operator.read"`
- `token` — your `GATEWAY_TOKEN` env var value
Recommendation

Use the least-privileged gateway token available, review what operator.write permits, and rotate/revoke the token if you uninstall or no longer trust the app.

What this means

This can affect which web origins are allowed to connect to the gateway and may interrupt a running OpenClaw gateway.

Why it was flagged

The installer changes OpenClaw gateway configuration and restarts the gateway as part of setup.

Skill content
openclaw config patch "{\"gateway\":{\"controlUi\":{\"allowedOrigins\":[\"$PUBLIC_URL\"]}}}" ... openclaw gateway restart
Recommendation

Confirm the PUBLIC_URL is exactly the domain you intend to expose, and review the gateway config after installation.

What this means

If the downloaded server does not correctly sanitize TTS text, a chat message could become a shell-command injection path.

Why it was flagged

The optional TTS feature is configured through a shell command template that incorporates chat text; the documentation warns that the server must sanitize it.

Skill content
TTS_COMMAND='python3 -m piper ... -- {{TEXT}} && ffmpeg ... {{OUTPUT}}' ... `{{TEXT}}` placeholder is substituted into a shell command.
Recommendation

Keep TTS disabled unless you have verified the server uses safe argument handling, preferably execFile-style execution instead of shell interpolation.

What this means

The gateway token is part of the UI-to-gateway authentication flow, so mishandled logs or an untrusted server could expose sensitive access material.

Why it was flagged

The gateway authentication flow includes the gateway token in the signed WebSocket payload format.

Skill content
v2|{deviceId}|{clientId}|{clientMode}|{role}|{scopes}|{signedAtMs}|{token}|{nonce}
Recommendation

Keep the OpenClaw gateway bound to localhost, avoid logging auth payloads, and rotate the gateway token if exposure is suspected.

What this means

The service can continue running in the background and keep the public tunnel available after login.

Why it was flagged

The launchd reference shows optional user-agent persistence that starts ClawTime and the Cloudflare tunnel on login and restarts them if they crash.

Skill content
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
Recommendation

Only load the launchd agents if you want persistent access, and use the documented launchctl unload commands when you no longer need them.