Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Dr. Claw skill for OpenClaw project discovery, idea intake, waiting-session triage, structured session control, event-driven notifications, and mobile reporting through the local drclaw CLI.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 92% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 188% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 526% | 0% |
Use this skill when OpenClaw needs to operate Dr. Claw from chat or mobile, especially for:
openclaw.* JSON schema payloadsBefore running Dr. Claw commands:
bash$DRCLAW_BIN server status
If the server is not running:
bash$DRCLAW_BIN server on
Assume the local wrapper exports these defaults when OpenClaw runs the skill:
bashDRCLAW_BIN="${DRCLAW_BIN:-$(which drclaw)}" DRCLAW_URL=http://localhost:3001
When invoking the CLI from OpenClaw, prefer $DRCLAW_BIN --url "$DRCLAW_URL" ... instead of relying on PATH.
Prefer direct CLI facts over model guesses. For stateful operations, return the raw CLI result first, then summarize for the user.
When a command returns JSON, prefer the top-level openclaw field over scraping the raw natural-language reply.
Formal schema contract:
bashcat "$(git rev-parse --show-toplevel)/agent-harness/cli_anything/drclaw/SCHEMA.md"
When calling OpenClaw locally from automation or shell, use:
bash./scripts/openclaw_drclaw_turn.sh
This serializes openclaw agent --local calls per agent and avoids session-lock collisions.
List projects:
bash$DRCLAW_BIN --url "$DRCLAW_URL" projects list
Inspect the latest message in a project:
bash$DRCLAW_BIN --url "$DRCLAW_URL" projects latest <project> --json
Inspect project progress and next actions:
bash$DRCLAW_BIN --url "$DRCLAW_URL" projects progress <project> --json
Create a new empty project workspace:
bash$DRCLAW_BIN --url "$DRCLAW_URL" projects create /absolute/path/to/project --name "Display Name" --json
Create a new project from a fresh idea and immediately start discussion:
bash$DRCLAW_BIN --url "$DRCLAW_URL" projects idea /absolute/path/to/project --name "Display Name" --idea "<idea text>" --json
Use projects idea for the “I suddenly have an idea” flow.
List known sessions for one project:
bash$DRCLAW_BIN --url "$DRCLAW_URL" chat sessions --project <project> --json
List waiting sessions across all projects or one project:
bash$DRCLAW_BIN --url "$DRCLAW_URL" chat waiting --json $DRCLAW_BIN --url "$DRCLAW_URL" chat waiting --project <project> --json
For session replies and workflow actions, use the embedded openclaw.turn.v1 payload to decide:
Recommended triage flow:
chat waiting --json to find actionable sessions.chat sessions --project ... --json when the user wants more detail.Once the user chooses a session:
bash$DRCLAW_BIN --url "$DRCLAW_URL" chat reply --project <project> --session <session-id> \ --bypass-permissions --attach /path/to/file -m "<message>" --json
Note: Always use --bypass-permissions in automation to avoid being blocked by server-side tool approval requests.
Timeout & Heartbeat: If you omit --timeout, the CLI will wait indefinitely (with a 1-hour safety cap) and use heartbeat detection. This is preferred for complex tasks like Task 10 that run experiments.
If a specific provider (like Codex) is failing, add --provider gemini to the command to switch.
Immediately after replying, check whether the session is still processing:
bash$DRCLAW_BIN --url "$DRCLAW_URL" chat waiting --project <project> --json
If you need to wait until the session leaves the waiting list, use:
bash./scripts/drclaw_wait_until_clear.sh --project <project> --session <session-id>
The script returns JSON indicating whether the session cleared or timed out.
Use these commands for workflow actions:
bash$DRCLAW_BIN --url "$DRCLAW_URL" workflow status --project <project> --json $DRCLAW_BIN --url "$DRCLAW_URL" workflow continue --project <project> --session <session-id> --bypass-permissions -m "<instruction>" --json $DRCLAW_BIN --url "$DRCLAW_URL" workflow approve --project <project> --session <session-id> --json $DRCLAW_BIN --url "$DRCLAW_URL" workflow reject --project <project> --session <session-id> -m "<reason>" --json $DRCLAW_BIN --url "$DRCLAW_URL" workflow retry --project <project> --session <session-id> --json $DRCLAW_BIN --url "$DRCLAW_URL" workflow resume --project <project> --session <session-id> --bypass-permissions --json
For project-level UI cards or voice summaries, prefer the embedded openclaw.project.v1 payload from:
bash$DRCLAW_BIN --url "$DRCLAW_URL" workflow status --project <project> --json $DRCLAW_BIN --url "$DRCLAW_URL" digest project --project <project> --json
Daily digest:
bash$DRCLAW_BIN --url "$DRCLAW_URL" digest daily --json
Per-project digest:
bash$DRCLAW_BIN --url "$DRCLAW_URL" digest project --project <project> --json
Cross-project portfolio digest with recommended follow-ups:
bash$DRCLAW_BIN --url "$DRCLAW_URL" digest portfolio --json
For cross-project OpenClaw dashboards, use the embedded openclaw.portfolio.v1 field rather than custom ranking logic.
Artifacts and workflow state:
bash$DRCLAW_BIN --url "$DRCLAW_URL" workflow status --project <project> --json $DRCLAW_BIN --url "$DRCLAW_URL" taskmaster artifacts --project <project> --json
Keep replies compact:
When JSON is available:
openclaw.decision.needed to decide whether to interrupt the useropenclaw.next_actions for quick replies or buttonsopenclaw.turn.summary / openclaw.focus for compact renderingUse the watcher when OpenClaw should proactively notify the user instead of waiting for manual digest polling.
Start / stop / inspect:
bash$DRCLAW_BIN --url "$DRCLAW_URL" --json openclaw-watch on --to feishu:<chat_id> $DRCLAW_BIN --url "$DRCLAW_URL" --json openclaw-watch status $DRCLAW_BIN --url "$DRCLAW_URL" --json openclaw-watch off
Watcher behavior:
openclaw.event.v1.event.signalshuman_decision_needed, waiting_for_human, blocker_detected, blocker_cleared, task_completed, next_task_changed, attention_needed, and session_abortedopenclaw.event.v1 and project-level status when possibleWatcher runtime files:
~/.drclaw/openclaw-watcher-state.json~/.drclaw/logs/openclaw-watcher.logPattern: list projects
$DRCLAW_BIN --url "$DRCLAW_URL" projects list.Pattern: user asks what needs attention
$DRCLAW_BIN --url "$DRCLAW_URL" digest portfolio --json.openclaw.portfolio.v1.focus field first.chat waiting --json if the user explicitly wants raw waiting sessions.Pattern: user asks OpenClaw to answer a waiting session
$DRCLAW_BIN --url "$DRCLAW_URL" chat reply --project ... --session ... -m ... --json.openclaw.turn.v1 from the response.decision.needed=true, surface the decision reason and quick actions.waiting_sessions, report that it is still processing.drclaw_wait_until_clear.sh and report the final clearance.Pattern: user suddenly has a new idea
/Users/<user>/vibelab/<slug>.$DRCLAW_BIN --url "$DRCLAW_URL" projects idea <path> --name <display-name> --idea <idea> --json.$DRCLAW_BIN --url "$DRCLAW_URL" chat reply on that session.Pattern: user wants an update without opening Dr. Claw
$DRCLAW_BIN --url "$DRCLAW_URL" digest daily --json, $DRCLAW_BIN --url "$DRCLAW_URL" digest project --project ... --json, or $DRCLAW_BIN --url "$DRCLAW_URL" digest portfolio --json.digest portfolio when the user wants cross-project progress, attention recommendations, or suggested replies.openclaw.* schema field for rendering.Other measured skills in the registry, with their headline benchmark lift.