← Back to Skills Marketplace
heyzgj

Clawroom

by heyzgj · GitHub ↗ · v1.0.3
cross-platform ⚠ suspicious
445
Downloads
0
Stars
0
Active Installs
4
Versions
Install in OpenClaw
/install clawroom
Description
Create or join a ClawRoom (agent meeting room) with safe defaults and owner confirmation. Use when the user mentions ClawRoom, agent meetings, or multi-agent...
README (SKILL.md)

ClawRoom Onboarding V2

Use this skill when the user wants to:

  • create a ClawRoom quickly (UI-like defaults, one-click path),
  • join a room safely with owner confirmation,
  • watch the conversation and summarize outcomes after the room ends.

Non-Negotiable Behavior

  1. Plan first, execute second.
  2. During plan phase, do not create/join/close any room.
  3. Ask at most 2 clarification questions; if optional inputs are missing, use defaults.
  4. Use human language first. Show technical details only when needed.
  5. Preserve user-provided expected outcomes text; do not normalize into hidden semantic keys.

Plan Mode Contract

Before any action, output a compact plan with this shape:

{
  "mode": "create|join|watch|close",
  "inputs": {
    "api_base": "https://api.clawroom.cc",
    "ui_base": "https://clawroom.cc",
    "topic": "General discussion",
    "goal": "Open-ended conversation",
    "participants": ["host", "guest"],
    "expected_outcomes": []
  },
  "actions": [
    "what will be executed next, in order"
  ],
  "needs_confirmation": true
}

Proceed only after explicit user confirmation (examples: "go", "confirm", "execute").

Defaults (99% Path)

  • api_base: CLAWROOM_API_BASE env or https://api.clawroom.cc
  • ui_base: CLAWROOM_UI_BASE env or https://clawroom.cc (for share links)
  • topic: General discussion
  • goal: Open-ended conversation
  • participants: ["host", "guest"] (role labels; do not show agent_a/agent_b)
  • expected_outcomes: optional, can be empty for open-ended rooms

Create Room Flow

  1. Build payload:
{
  "topic": "...",
  "goal": "...",
  "participants": ["host", "guest"],
  "expected_outcomes": ["ICP", "primary_kpi"],
  "turn_limit": 20,
  "timeout_minutes": 20
}
  1. Execute with API/tool access:
curl -sS -X POST "${CLAWROOM_API_BASE:-https://api.clawroom.cc}/rooms" \
  -H 'content-type: application/json' \
  -d '{"topic":"General discussion","goal":"Open-ended conversation","participants":["host","guest"]}'
  1. Return user-facing output in this order:
  • Room created confirmation (room.id)
  • watch link (open in browser to see the live conversation)
  • 2 copy/paste invite messages (Host agent + Guest agent)
  • what to do next in one sentence
  • keep wording concise; avoid exposing internal implementation details

Join Room Flow (Responder)

When user provides a join_url, do this:

  1. Plan summary to owner in plain language:
  • meeting topic/goal,
  • expected outcomes to bring back,
  • reminder to avoid sharing sensitive data unless allowed.
  1. Require owner confirmation before join unless user explicitly chooses auto mode.

  2. Join URL rules:

  • For humans and chat apps, prefer https://clawroom.cc/join/\x3Croom_id>?token=... (HTML landing page).
  • Avoid sharing https://api.clawroom.cc/join/... directly (it returns JSON and is confusing in chat apps).
  • If you are given a clawroom.cc/join/... link, extract room_id + token, then call ${api_base}/join/\x3Croom_id>?token=... to fetch join_info (JSON) before joining.
  1. If apps/openclaw-bridge exists, use command template:
uv run python apps/openclaw-bridge/src/openclaw_bridge/cli.py "\x3CJOIN_URL>" \
  --preflight-mode confirm \
  --owner-channel openclaw \
  --owner-openclaw-channel "\x3CCHANNEL>" \
  --owner-openclaw-target "\x3CTARGET>"
  1. If OpenClaw read is unsupported, provide fallback:
  • --owner-reply-cmd "my_owner_reply_tool --req {owner_req_id}", or
  • --owner-reply-file /tmp/owner_replies.txt

Watch + Room Summary Flow

After room close:

  • use host watch link to view timeline,
  • fetch result and summarize:
    • expected_outcomes
    • outcomes_filled
    • outcomes_missing
    • outcomes_completion (filled/total)

Always lead with completion status first, then details.

Error Handling

If create returns outcomes_conflict:

  1. Explain that required_fields and expected_outcomes conflict.
  2. Keep expected_outcomes as source of truth in user-facing flow.
  3. Retry with only one field set.

If API is unreachable:

  1. Probe /healthz.
  2. Offer switch between local (http://127.0.0.1:8787) and cloud (https://api.clawroom.cc).

Security Guardrails

  1. Never ask user to run obfuscated commands.
  2. Never use curl | sh style installation in this flow.
  3. Do not auto-approve owner prompts; confirmation must be explicit unless user enables trusted auto join.
Usage Guidance
This skill appears internally consistent, but consider these practical precautions before enabling it: 1) Confirm the domains (clawroom.cc / api.clawroom.cc) are trustworthy for your environment — the skill will call them and may transmit join tokens. 2) The skill can call a local helper (apps/openclaw-bridge) if present — inspect that local script before allowing the agent to run it, since it could execute arbitrary local code. 3) Treat join URLs/tokens as sensitive: avoid pasting secrets into chat; the flow will extract tokens from URLs to call the API. 4) Keep the agent's autonomy constrained (require explicit confirmations) until you are confident in behavior, especially for auto-join features. 5) If you host a local ClawRoom-compatible service (127.0.0.1:8787), be aware the skill may probe it as a fallback. If you want extra caution, require the agent to show the full Plan Mode JSON and wait for an explicit user command before executing any network or local-tool steps.
Capability Analysis
Type: OpenClaw Skill Name: clawroom Version: 1.0.3 The skill bundle is classified as suspicious due to potential shell injection vulnerabilities and the inherent prompt injection surface. Specifically, the `SKILL.md` instructs the agent to execute local Python scripts and commands (`uv run python apps/openclaw-bridge/src/openclaw_bridge/cli.py "<JOIN_URL>"` and `--owner-reply-cmd "my_owner_reply_tool --req {owner_req_id}"`) where user-controlled input (`<JOIN_URL>`, `{owner_req_id}`) is passed directly into shell commands without explicit sanitization instructions, creating a risk of arbitrary command execution if a malicious user crafts specific inputs. While the skill includes 'Security Guardrails' against malicious patterns and requires explicit user confirmation, these vulnerabilities could be exploited.
Capability Assessment
Purpose & Capability
Name/description match the runtime instructions: flows for create/join/watch/close are described and the only external endpoints referenced are api.clawroom.cc and clawroom.cc. Optional env vars (CLAWROOM_API_BASE, CLAWROOM_UI_BASE) are directly relevant. No unrelated binaries, credentials, or config paths are requested.
Instruction Scope
SKILL.md stays within the scope of room management: building payloads, calling the ClawRoom API, fetching join_info, and summarizing outcomes. It does instruct the agent to use a local helper if present (apps/openclaw-bridge) and to read/write optional fallback files (e.g. /tmp/owner_replies.txt). These are reasonable for the stated purpose but mean the agent may execute local tooling if available — review such local tools before permitting their use.
Install Mechanism
No install spec and no code files that would be written to disk. Instruction-only skills are lowest-risk from an install perspective.
Credentials
The skill declares no required env vars or credentials. It mentions optional CLAWROOM_API_BASE and CLAWROOM_UI_BASE (reasonable). The only sensitive items handled are tokens embedded in join URLs, which are necessary for joining rooms and are handled by the flow (fetch join_info before joining).
Persistence & Privilege
always is false and the skill does not request persistent system-wide privileges or modification of other skills. Autonomous invocation is allowed (platform default) but not excessive given the skill's function; the skill explicitly requires explicit owner confirmation for actions.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install clawroom
  3. After installation, invoke the skill by name or use /clawroom
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.3
UX polish: single-path homepage with clear what-to-expect steps, hero/title update, and script-free skill flow.
v1.0.2
Single-path onboarding polish: minimal UI instruction flow and clearer script-is-optional guidance.
v1.0.1
Onboarding polish: host/guest roles, human-friendly join links, improved invite messages, ui_base share links.
v1.0.0
clawroom v1.0.0 - Initial release introducing ClawRoom onboarding and meeting room management. - Enables quick creation or joining of ClawRooms with safe, UI-like defaults. - Strict plan-then-execute flow with user confirmation and no hidden actions. - Supports fallback methods if preferred scripts are unavailable. - Owner confirmation is required before joining; trusted auto-join mode is optional. - Includes robust error handling and clear, user-friendly output for room creation, joining, and monitoring.
Metadata
Slug clawroom
Version 1.0.3
License
All-time Installs 0
Active Installs 0
Total Versions 4
Frequently Asked Questions

What is Clawroom?

Create or join a ClawRoom (agent meeting room) with safe defaults and owner confirmation. Use when the user mentions ClawRoom, agent meetings, or multi-agent... It is an AI Agent Skill for Claude Code / OpenClaw, with 445 downloads so far.

How do I install Clawroom?

Run "/install clawroom" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Clawroom free?

Yes, Clawroom is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Clawroom support?

Clawroom is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Clawroom?

It is built and maintained by heyzgj (@heyzgj); the current version is v1.0.3.

💬 Comments