# TOOLS.md - Local Notes Skills define _how_ tools work. This file is for _your_ specifics — the stuff that's unique to your setup. ## What Goes Here Things like: - Camera names and locations - SSH hosts and aliases - Preferred voices for TTS - Speaker/room names - Device nicknames - Anything environment-specific ## Examples ```markdown ### Cameras - living-room → Main area, 180° wide angle - front-door → Entrance, motion-triggered ### SSH - home-server → 192.168.1.100, user: admin ### TTS - Preferred voice. Preferred: "Nova" (warm, slightly British) ``` ## ClawTeam Multi-Agent Orchestration > **Important:** ClawTeam CLI command is `oh`. On our OpenClaw setup, ALWAYS explicitly specify `tmux openclaw` as backend+agent — `oh spawn` defaults to `claude` which we don't have. > Official repo: https://github.com/HKUDS/ClawTeam ### ⚠️ CRITICAL: Spawn Syntax ``` oh spawn tmux openclaw --team --agent-name --task "" ``` **NOT** `oh spawn --team ...` (defaults to `claude` → will fail) **NOT** `oh spawn tmux claude` (we don't have claude CLI) ### Team Setup ```bash # Create team (you become the leader — set env vars first) export CLAWTEAM_AGENT_ID="leader-001" export CLAWTEAM_AGENT_NAME="leader" export CLAWTEAM_AGENT_TYPE="leader" oh team spawn-team -d "" -n leader # View team status oh status oh board show oh board attach # tiled tmux view ``` ### Task Management ```bash # Create tasks (with owner, dependencies, priority) oh task create "" -o oh task create "" -o --blocked-by oh task create "Hotfix" -o --priority high # Update status oh task update --status pending oh task update --status in_progress oh task update --status completed oh task update --status blocked # List/filter tasks oh task list --status pending oh task list --owner oh task list --priority high # Wait for all sub-agents to finish oh task wait oh task wait --timeout 300 --poll-interval 10 ``` ### Spawn Workers (OpenClaw Specific) ```bash # ✅ CORRECT — always use tmux openclaw oh spawn tmux openclaw --team --agent-name --task "" # ✅ With non-default provider/model via profile oh spawn tmux --profile --team --agent-name --task "" # ❌ WRONG — defaults to claude oh spawn --team --agent-name --task "" oh spawn tmux claude --team --agent-name --task "" ``` ### Communication (Inbox) ```bash # Send message to agent oh inbox send "" # Broadcast to all oh inbox broadcast "" # Receive (destructive — consumes message) oh inbox receive --agent # Peek (non-destructive) oh inbox peek --agent # Watch for new messages oh inbox watch --agent ``` ### Profiles & Presets ```bash # List built-in provider templates oh preset list oh preset show # Generate reusable profile from preset oh preset generate-profile --name # Or use interactive TUI oh profile wizard # Test a profile before using in team oh profile test # Fix broken profile on fresh machine oh profile doctor claude ``` ### Git Context & Conflict Checks ```bash oh context log oh context diff oh context files oh context conflicts oh context inject --agent ``` ### Workspace Management ```bash oh workspace list oh workspace merge ``` ### Snapshots & Recovery ```bash oh team snapshot --tag oh team snapshots oh team restore --snapshot ``` ### Worker Loop Protocol Workers should NOT exit after completing their initial task. Expected loop: ```bash # 1. Check tasks oh task list --owner # 2. Check inbox for new instructions oh inbox receive --agent # 3. If idle, notify leader oh lifecycle idle ``` ### Cleanup ```bash oh team cleanup # kill workers, cleanup worktrees oh lifecycle request-shutdown ``` ### JSON Output ```bash oh --json team discover oh --json board show oh --json task list --status pending ``` Requires: - `pip install clawteam` - Python 3.10+ - `tmux` installed - OpenClaw CLI available on PATH (`openclaw`) - Git repo for worktree isolation - Data directory: `~/.clawteam/`