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.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add OpenLAIR/dr-claw --skill dr-claw --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dr Claw?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/openlair-dr-claw)More formats (shields.io, HTML) on the badges page.
---
name: dr-claw
description: 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.
---
# Dr. Claw for OpenClaw
Use this skill when OpenClaw needs to operate Dr. Claw from chat or mobile, especially for:
- listing Dr. Claw projects
- finding sessions waiting for response
- replying into a session on the user's behalf
- continuing, approving, rejecting, retrying, or resuming workflows
- creating a new project from a fresh idea
- generating daily or per-project digests
- consuming stable `openclaw.*` JSON schema payloads
- running the background event-driven watcher daemon
## Preconditions
Before 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:
```bash
DRCLAW_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.
## Core operating rule
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:
```bash
cat "$(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.
## Project discovery
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.
## Session lookup and waiting triage
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:
- whether user input is required
- which quick action to render next
- whether the session is still processing
Recommended triage flow:
1. Resolve the project first if needed.
2. Use `chat waiting --json` to find actionable sessions.
3. Use `chat sessions --project ... --json` when the user wants more detail.
## Replying to an existing session
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.
## Workflow control
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
```
## Digests and reporting
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
```
## Response format guidance for mobile / chat
Keep replies compact:
- first line: direct answer
- then: short project / session / status bullets if relevant
- always include exact session ids when asking the user to choose one
- when reporting a post-reply state, say whether the session is still processing or has cleared
When JSON is available:
- prefer `openclaw.decision.needed` to decide whether to interrupt the user
- prefer `openclaw.next_actions` for quick replies or buttons
- prefer `openclaw.turn.summary` / `openclaw.focus` for compact rendering
## Event-driven watcher daemon
Use 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:
- subscribes to Dr. Claw WebSocket events
- reacts to important event types only
- resolves the affected project when possible, including path-based file change events
- compares workflow snapshots to derive higher-level `openclaw.event.v1.event.signals`
- current useful signals include `human_decision_needed`, `waiting_for_human`, `blocker_detected`, `blocker_cleared`, `task_completed`, `next_task_changed`, `attention_needed`, and `session_aborted`
- asks OpenClaw agent to generate the final Feishu/Lark notification when enough project context is available
- parses delivered agent output back into clean human-facing text instead of leaking plugin logs / raw JSON
- enriches events with `openclaw.event.v1` and project-level status when possible
- deduplicates repeated notifications for a 6-hour time window
- pushes only attention-worthy updates to the configured OpenClaw channel
Watcher runtime files:
- state: `~/.drclaw/openclaw-watcher-state.json`
- log: `~/.drclaw/logs/openclaw-watcher.log`
## Reliable OpenClaw patterns
Pattern: list projects
1. Run `$DRCLAW_BIN --url "$DRCLAW_URL" projects list`.
2. Present short names, display names, and paths only when needed.
Pattern: user asks what needs attention
1. Run `$DRCLAW_BIN --url "$DRCLAW_URL" digest portfolio --json`.
2. Use the embedded `openclaw.portfolio.v1.focus` field first.
3. Fall back to `chat waiting --json` if the user explicitly wants raw waiting sessions.
Pattern: user asks OpenClaw to answer a waiting session
1. Run `$DRCLAW_BIN --url "$DRCLAW_URL" chat reply --project ... --session ... -m ... --json`.
2. Read `openclaw.turn.v1` from the response.
3. If `decision.needed=true`, surface the decision reason and quick actions.
4. If the same session is still present in `waiting_sessions`, report that it is still processing.
5. Optionally run `drclaw_wait_until_clear.sh` and report the final clearance.
Pattern: user suddenly has a new idea
1. Pick a workspace path, usually `/Users/<user>/vibelab/<slug>`.
2. Run `$DRCLAW_BIN --url "$DRCLAW_URL" projects idea <path> --name <display-name> --idea <idea> --json`.
3. Return the created project, session id, and first Dr. Claw reply.
4. Continue the discussion with `$DRCLAW_BIN --url "$DRCLAW_URL" chat reply` on that session.
Pattern: user wants an update without opening Dr. Claw
1. Run `$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`.
2. Use `digest portfolio` when the user wants cross-project progress, attention recommendations, or suggested replies.
3. Prefer the `openclaw.*` schema field for rendering.
4. Summarize only the load-bearing items: waiting sessions, task progress, blockers, next actions.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!