{
"agent:pipo:main": {
"sessionId": "1674eebe-1760-4e75-b984-9aeab7f202f1",
"updatedAt": 1772804929443,
"systemSent": true,
"abortedLastRun": false,
"chatType": "direct",
"deliveryContext": {
"channel": "webchat"
},
"lastChannel": "webchat",
"origin": {
"provider": "webchat",
"surface": "webchat",
"chatType": "direct"
},
"sessionFile": "/home/ubuntu/.openclaw/agents/pipo/sessions/1674eebe-1760-4e75-b984-9aeab7f202f1.jsonl",
"compactionCount": 0,
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"modelProvider": "openai-codex",
"model": "gpt-5.3-codex",
"contextTokens": 272000,
"systemPromptReport": {
"source": "run",
"generatedAt": 1772804439388,
"sessionId": "1674eebe-1760-4e75-b984-9aeab7f202f1",
"sessionKey": "agent:pipo:main",
"provider": "blockrun",
"model": "auto",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 51561,
"projectContextChars": 28320,
"nonProjectContextChars": 23241
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1319,
"injectedChars": 1319,
"truncated": false
},
{
"name": "HEARTBEAT.md",
"path": "/home/ubuntu/.openclaw/workspace/HEARTBEAT.md",
"missing": false,
"rawChars": 167,
"injectedChars": 167,
"truncated": false
},
{
"name": "BOOTSTRAP.md",
"path": "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md",
"missing": true,
"rawChars": 0,
"injectedChars": 68,
"truncated": false
},
{
"name": "MEMORY.md",
"path": "/home/ubuntu/.openclaw/workspace/MEMORY.md",
"missing": false,
"rawChars": 404,
"injectedChars": 404,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 2302,
"schemaChars": 17121,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1251,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 115,
"schemaChars": 1758,
"propertiesCount": 36
},
{
"name": "message",
"summaryChars": 124,
"schemaChars": 4249,
"propertiesCount": 86
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_spawn",
"summaryChars": 134,
"schemaChars": 895,
"propertiesCount": 15
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 895,
"propertiesCount": 6
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 201,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 514,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
},
"totalTokensFresh": false
},
"agent:pipo:telegram:slash:842987156": {
"origin": {
"label": "Snack lakes",
"provider": "telegram",
"surface": "telegram",
"chatType": "direct",
"from": "telegram:842987156",
"to": "telegram:842987156",
"accountId": "default"
},
"sessionId": "2f14978f-75c5-4d86-af26-68d77e773594",
"updatedAt": 1772635578330
},
"agent:pipo:telegram:direct:842987156": {
"sessionId": "76f2d64c-ddde-454f-94a7-d817b61abfa7",
"updatedAt": 1773854504526,
"systemSent": true,
"abortedLastRun": false,
"thinkingLevel": "high",
"verboseLevel": "off",
"reasoningLevel": "off",
"chatType": "direct",
"deliveryContext": {
"channel": "telegram",
"to": "telegram:842987156",
"accountId": "default"
},
"lastChannel": "telegram",
"lastTo": "telegram:842987156",
"lastAccountId": "default",
"origin": {
"label": "Snack lakes (@snacklakes) id:842987156",
"provider": "telegram",
"surface": "telegram",
"chatType": "direct",
"from": "telegram:842987156",
"to": "telegram:842987156",
"accountId": "default"
},
"sessionFile": "/home/ubuntu/.openclaw/agents/pipo/sessions/76f2d64c-ddde-454f-94a7-d817b61abfa7.jsonl",
"compactionCount": 0,
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n clawrouter\n Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.\n ~/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md\n \n \n imagegen\n Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.\n ~/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md\n \n \n release\n Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.\n ~/.openclaw/extensions/clawrouter/skills/release/SKILL.md\n \n \n x-api\n Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.\n ~/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n node-connect\n Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.\n /usr/lib/node_modules/openclaw/skills/node-connect/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n hevy\n Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.\n ~/.openclaw/workspace/skills/hevy/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "clawrouter",
"requiredEnv": []
},
{
"name": "imagegen",
"requiredEnv": []
},
{
"name": "release"
},
{
"name": "x-api",
"requiredEnv": []
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "node-connect"
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "asana"
},
{
"name": "model-router"
},
{
"name": "hevy"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "clawrouter",
"description": "Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "imagegen",
"description": "Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "release",
"description": "Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "x-api",
"description": "Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "node-connect",
"description": "Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.",
"filePath": "/usr/lib/node_modules/openclaw/skills/node-connect/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/node-connect",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like \"create a skill\", \"author a skill\", \"tidy up a skill\", \"improve this skill\", \"review the skill\", \"clean up the skill\", \"audit the skill\".",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "hevy",
"description": "Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/hevy/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/hevy",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"contextTokens": 400000,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773854493732,
"sessionId": "76f2d64c-ddde-454f-94a7-d817b61abfa7",
"sessionKey": "agent:pipo:telegram:direct:842987156",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 57807,
"projectContextChars": 28437,
"nonProjectContextChars": 29370
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
},
{
"name": "HEARTBEAT.md",
"path": "/home/ubuntu/.openclaw/workspace/HEARTBEAT.md",
"missing": false,
"rawChars": 167,
"injectedChars": 167,
"truncated": false
},
{
"name": "BOOTSTRAP.md",
"path": "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md",
"missing": true,
"rawChars": 0,
"injectedChars": 68,
"truncated": false
},
{
"name": "MEMORY.md",
"path": "/home/ubuntu/.openclaw/workspace/MEMORY.md",
"missing": false,
"rawChars": 404,
"injectedChars": 404,
"truncated": false
}
],
"skills": {
"promptChars": 15709,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "clawrouter",
"blockChars": 330
},
{
"name": "imagegen",
"blockChars": 278
},
{
"name": "release",
"blockChars": 359
},
{
"name": "x-api",
"blockChars": 301
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 823
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 224
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "node-connect",
"blockChars": 532
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 750
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "hevy",
"blockChars": 317
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19980,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 563,
"schemaChars": 5396,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
},
"inputTokens": 163255,
"outputTokens": 66,
"cacheRead": 0,
"cacheWrite": 0,
"totalTokens": 163255,
"totalTokensFresh": true,
"elevatedLevel": "full",
"channel": "telegram"
},
"agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113": {
"sessionId": "f5e7dbc4-7510-4180-851a-39c91f20b38a",
"updatedAt": 1773854453550,
"systemSent": true,
"label": "Cron: Subagent transcript hotfix drift check",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 13763,
"outputTokens": 102,
"totalTokens": 18297,
"totalTokensFresh": true,
"cacheRead": 22528,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773854453708,
"sessionId": "f5e7dbc4-7510-4180-851a-39c91f20b38a",
"sessionKey": "agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19980,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 563,
"schemaChars": 5396,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110": {
"sessionId": "5f7d445a-fda1-48a5-a8b3-6225214c0779",
"updatedAt": 1773841896300,
"systemSent": true,
"label": "Cron: DIA autonomous orders fetch (HTTP cookie mode)",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 14431,
"outputTokens": 181,
"totalTokens": 17922,
"totalTokensFresh": true,
"cacheRead": 21248,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773841896491,
"sessionId": "5f7d445a-fda1-48a5-a8b3-6225214c0779",
"sessionKey": "agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19597,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 138,
"schemaChars": 5013,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110:run:2b2fe38f-1949-41f6-9a48-85a829141dc8": {
"sessionId": "2b2fe38f-1949-41f6-9a48-85a829141dc8",
"updatedAt": 1773777096275,
"systemSent": true,
"label": "Cron: DIA autonomous orders fetch (HTTP cookie mode)",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 14434,
"outputTokens": 181,
"totalTokens": 17925,
"totalTokensFresh": true,
"cacheRead": 21248,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773777096458,
"sessionId": "2b2fe38f-1949-41f6-9a48-85a829141dc8",
"sessionKey": "agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19597,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 138,
"schemaChars": 5013,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113:run:94b7b689-2c3b-424b-94b7-40dfa351cc7f": {
"sessionId": "94b7b689-2c3b-424b-94b7-40dfa351cc7f",
"updatedAt": 1773789653535,
"systemSent": true,
"label": "Cron: Subagent transcript hotfix drift check",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 14570,
"outputTokens": 103,
"totalTokens": 18061,
"totalTokensFresh": true,
"cacheRead": 21248,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773789653710,
"sessionId": "94b7b689-2c3b-424b-94b7-40dfa351cc7f",
"sessionKey": "agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19597,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 138,
"schemaChars": 5013,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110:run:cfbedfd5-da1d-4c61-bf6d-c60a8b996a03": {
"sessionId": "cfbedfd5-da1d-4c61-bf6d-c60a8b996a03",
"updatedAt": 1773798696281,
"systemSent": true,
"label": "Cron: DIA autonomous orders fetch (HTTP cookie mode)",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 18024,
"outputTokens": 191,
"totalTokens": 17931,
"totalTokensFresh": true,
"cacheRead": 17664,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773798696467,
"sessionId": "cfbedfd5-da1d-4c61-bf6d-c60a8b996a03",
"sessionKey": "agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19597,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 138,
"schemaChars": 5013,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113:run:6dda3e42-c602-4ef7-8229-469223f5dbb6": {
"sessionId": "6dda3e42-c602-4ef7-8229-469223f5dbb6",
"updatedAt": 1773811253540,
"systemSent": true,
"label": "Cron: Subagent transcript hotfix drift check",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 18149,
"outputTokens": 98,
"totalTokens": 18056,
"totalTokensFresh": true,
"cacheRead": 17664,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773811253734,
"sessionId": "6dda3e42-c602-4ef7-8229-469223f5dbb6",
"sessionKey": "agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19597,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 138,
"schemaChars": 5013,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110:run:8330bb04-6b44-49d0-ae9d-e1039fcb14aa": {
"sessionId": "8330bb04-6b44-49d0-ae9d-e1039fcb14aa",
"updatedAt": 1773820296286,
"systemSent": true,
"label": "Cron: DIA autonomous orders fetch (HTTP cookie mode)",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 15466,
"outputTokens": 179,
"totalTokens": 17933,
"totalTokensFresh": true,
"cacheRead": 20224,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773820296470,
"sessionId": "8330bb04-6b44-49d0-ae9d-e1039fcb14aa",
"sessionKey": "agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19597,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 138,
"schemaChars": 5013,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113:run:0e9c02d5-b2f7-459b-b44e-e374a55ca5d0": {
"sessionId": "0e9c02d5-b2f7-459b-b44e-e374a55ca5d0",
"updatedAt": 1773832853542,
"systemSent": true,
"label": "Cron: Subagent transcript hotfix drift check",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 13530,
"outputTokens": 87,
"totalTokens": 18045,
"totalTokensFresh": true,
"cacheRead": 22272,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773832853725,
"sessionId": "0e9c02d5-b2f7-459b-b44e-e374a55ca5d0",
"sessionKey": "agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19597,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 138,
"schemaChars": 5013,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110:run:5f7d445a-fda1-48a5-a8b3-6225214c0779": {
"sessionId": "5f7d445a-fda1-48a5-a8b3-6225214c0779",
"updatedAt": 1773841896300,
"systemSent": true,
"label": "Cron: DIA autonomous orders fetch (HTTP cookie mode)",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 14431,
"outputTokens": 181,
"totalTokens": 17922,
"totalTokensFresh": true,
"cacheRead": 21248,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773841896491,
"sessionId": "5f7d445a-fda1-48a5-a8b3-6225214c0779",
"sessionKey": "agent:pipo:cron:ac54fa1b-77e7-4b76-b328-f2064b0d8110",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19597,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 138,
"schemaChars": 5013,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113:run:f5e7dbc4-7510-4180-851a-39c91f20b38a": {
"sessionId": "f5e7dbc4-7510-4180-851a-39c91f20b38a",
"updatedAt": 1773854453550,
"systemSent": true,
"label": "Cron: Subagent transcript hotfix drift check",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "model-router"
},
{
"name": "asana"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 400000,
"inputTokens": 13763,
"outputTokens": 102,
"totalTokens": 18297,
"totalTokensFresh": true,
"cacheRead": 22528,
"cacheWrite": 0,
"systemPromptReport": {
"source": "run",
"generatedAt": 1773854453708,
"sessionId": "f5e7dbc4-7510-4180-851a-39c91f20b38a",
"sessionKey": "agent:pipo:cron:579fa4af-8922-4db1-9c02-db2aaecab113",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 49073,
"projectContextChars": 28040,
"nonProjectContextChars": 21033
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
}
],
"skills": {
"promptChars": 13037,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 759
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 214
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 287
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 19980,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 563,
"schemaChars": 5396,
"propertiesCount": 94
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
}
},
"agent:pipo:discord:direct:1400466012054491186": {
"origin": {
"label": "nachlakes user id:1400466012054491186",
"provider": "discord",
"surface": "discord",
"chatType": "direct",
"from": "discord:1400466012054491186",
"to": "channel:1483878174290083990",
"accountId": "default"
},
"sessionId": "9c7be70c-d707-444f-a290-5ed7f588103e",
"updatedAt": 1774321199199,
"deliveryContext": {
"channel": "discord",
"to": "channel:1483878174290083990",
"accountId": "default"
},
"lastChannel": "discord",
"lastTo": "channel:1483878174290083990",
"lastAccountId": "default",
"systemSent": true,
"abortedLastRun": false,
"chatType": "direct",
"sessionFile": "/home/ubuntu/.openclaw/agents/pipo/sessions/9c7be70c-d707-444f-a290-5ed7f588103e.jsonl",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n ~/.openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n clawrouter\n Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.\n ~/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md\n \n \n imagegen\n Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.\n ~/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md\n \n \n release\n Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.\n ~/.openclaw/extensions/clawrouter/skills/release/SKILL.md\n \n \n x-api\n Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.\n ~/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n ~/openclaw-src-v2026.3.22/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n ~/openclaw-src-v2026.3.22/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n ~/openclaw-src-v2026.3.22/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n ~/openclaw-src-v2026.3.22/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n ~/openclaw-src-v2026.3.22/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.\n ~/openclaw-src-v2026.3.22/skills/coding-agent/SKILL.md\n \n \n discord\n Discord ops via the message tool (channel=discord).\n ~/openclaw-src-v2026.3.22/skills/discord/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n ~/openclaw-src-v2026.3.22/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n ~/openclaw-src-v2026.3.22/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n ~/openclaw-src-v2026.3.22/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n ~/openclaw-src-v2026.3.22/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n ~/openclaw-src-v2026.3.22/skills/github/SKILL.md\n \n \n gog\n Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n ~/openclaw-src-v2026.3.22/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n ~/openclaw-src-v2026.3.22/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n ~/openclaw-src-v2026.3.22/skills/mcporter/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n ~/openclaw-src-v2026.3.22/skills/nano-pdf/SKILL.md\n \n \n node-connect\n Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.\n ~/openclaw-src-v2026.3.22/skills/node-connect/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n ~/openclaw-src-v2026.3.22/skills/obsidian/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n ~/openclaw-src-v2026.3.22/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n ~/openclaw-src-v2026.3.22/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n ~/openclaw-src-v2026.3.22/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n ~/openclaw-src-v2026.3.22/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n ~/openclaw-src-v2026.3.22/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".\n ~/openclaw-src-v2026.3.22/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n ~/openclaw-src-v2026.3.22/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n ~/openclaw-src-v2026.3.22/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n ~/openclaw-src-v2026.3.22/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n ~/openclaw-src-v2026.3.22/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n ~/openclaw-src-v2026.3.22/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n ~/openclaw-src-v2026.3.22/skills/xurl/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n google-photos\n Manage Google Photos library. Upload photos, create albums, and list library content. Use when the user wants to backup, organize, or share images via Google Photos.\n ~/.openclaw/workspace/skills/google-photos/SKILL.md\n \n \n hevy\n Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.\n ~/.openclaw/workspace/skills/hevy/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "clawrouter",
"requiredEnv": []
},
{
"name": "imagegen",
"requiredEnv": []
},
{
"name": "release"
},
{
"name": "x-api",
"requiredEnv": []
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "discord",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "node-connect"
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "asana"
},
{
"name": "model-router"
},
{
"name": "google-photos",
"requiredEnv": []
},
{
"name": "hevy"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/home/ubuntu/.openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "clawrouter",
"description": "Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "imagegen",
"description": "Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "release",
"description": "Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "x-api",
"description": "Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/1password/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/blogwatcher/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/blucli/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/camsnap/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/clawhub/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/coding-agent/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "discord",
"description": "Discord ops via the message tool (channel=discord).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/discord/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/discord",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/eightctl/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gemini/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gh-issues/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gifgrep/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/github/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/healthcheck/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/himalaya/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/mcporter/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/nano-pdf/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "node-connect",
"description": "Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/node-connect/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/node-connect",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/obsidian/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/openai-whisper/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/openai-whisper-api/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/oracle/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/ordercli/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/sag/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like \"create a skill\", \"author a skill\", \"tidy up a skill\", \"improve this skill\", \"review the skill\", \"clean up the skill\", \"audit the skill\".",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/skill-creator/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/songsee/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/sonoscli/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/tmux/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/video-frames/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/wacli/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/xurl/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "google-photos",
"description": "Manage Google Photos library. Upload photos, create albums, and list library content. Use when the user wants to backup, organize, or share images via Google Photos.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/google-photos/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/google-photos",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "hevy",
"description": "Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/hevy/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/hevy",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "openrouter",
"model": "minimax/minimax-m2.7",
"systemPromptReport": {
"source": "run",
"generatedAt": 1774321191720,
"sessionId": "9c7be70c-d707-444f-a290-5ed7f588103e",
"sessionKey": "agent:pipo:discord:direct:1400466012054491186",
"provider": "openrouter",
"model": "minimax/minimax-m2.7",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 56357,
"projectContextChars": 28437,
"nonProjectContextChars": 27920
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
},
{
"name": "HEARTBEAT.md",
"path": "/home/ubuntu/.openclaw/workspace/HEARTBEAT.md",
"missing": false,
"rawChars": 167,
"injectedChars": 167,
"truncated": false
},
{
"name": "BOOTSTRAP.md",
"path": "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md",
"missing": true,
"rawChars": 0,
"injectedChars": 68,
"truncated": false
},
{
"name": "MEMORY.md",
"path": "/home/ubuntu/.openclaw/workspace/MEMORY.md",
"missing": false,
"rawChars": 404,
"injectedChars": 404,
"truncated": false
}
],
"skills": {
"promptChars": 15570,
"entries": [
{
"name": "acp-router",
"blockChars": 474
},
{
"name": "clawrouter",
"blockChars": 330
},
{
"name": "imagegen",
"blockChars": 278
},
{
"name": "release",
"blockChars": 359
},
{
"name": "x-api",
"blockChars": 301
},
{
"name": "1password",
"blockChars": 334
},
{
"name": "blogwatcher",
"blockChars": 229
},
{
"name": "blucli",
"blockChars": 210
},
{
"name": "camsnap",
"blockChars": 198
},
{
"name": "clawhub",
"blockChars": 418
},
{
"name": "coding-agent",
"blockChars": 818
},
{
"name": "discord",
"blockChars": 201
},
{
"name": "eightctl",
"blockChars": 218
},
{
"name": "gemini",
"blockChars": 207
},
{
"name": "gh-issues",
"blockChars": 494
},
{
"name": "gifgrep",
"blockChars": 229
},
{
"name": "github",
"blockChars": 558
},
{
"name": "gog",
"blockChars": 224
},
{
"name": "healthcheck",
"blockChars": 477
},
{
"name": "himalaya",
"blockChars": 369
},
{
"name": "mcporter",
"blockChars": 316
},
{
"name": "nano-pdf",
"blockChars": 220
},
{
"name": "node-connect",
"blockChars": 527
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 231
},
{
"name": "openai-whisper",
"blockChars": 219
},
{
"name": "openai-whisper-api",
"blockChars": 235
},
{
"name": "oracle",
"blockChars": 262
},
{
"name": "ordercli",
"blockChars": 234
},
{
"name": "sag",
"blockChars": 190
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 745
},
{
"name": "songsee",
"blockChars": 237
},
{
"name": "sonoscli",
"blockChars": 211
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 241
},
{
"name": "video-frames",
"blockChars": 215
},
{
"name": "wacli",
"blockChars": 263
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 373
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "google-photos",
"blockChars": 323
},
{
"name": "hevy",
"blockChars": 317
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 2981,
"schemaChars": 22386,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1066,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "message",
"summaryChars": 575,
"schemaChars": 10333,
"propertiesCount": 108
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 274,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 188,
"schemaChars": 1222,
"propertiesCount": 10
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 201,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
},
"cacheRead": 0,
"cacheWrite": 0,
"totalTokensFresh": true,
"compactionCount": 0,
"status": "done",
"startedAt": 1774321191812,
"authProfileOverride": "openrouter:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"contextTokens": 204800,
"inputTokens": 50870,
"outputTokens": 112,
"totalTokens": 50870,
"thinkingLevel": "high",
"elevatedLevel": "full",
"channel": "discord",
"endedAt": 1774321199096,
"runtimeMs": 7284
},
"agent:pipo:discord:channel:1483873338022428865": {
"chatType": "channel",
"channel": "discord",
"groupId": "1483873338022428865",
"groupChannel": "#general",
"space": "1483873336718135336",
"displayName": "discord:1483873336718135336#general",
"origin": {
"label": "Guild #general channel id:1483873338022428865",
"provider": "discord",
"surface": "discord",
"chatType": "channel",
"from": "discord:channel:1483873338022428865",
"to": "channel:1483873338022428865",
"accountId": "default"
},
"sessionId": "a8d0786c-5bdc-4894-b6cc-c4bcf895dfc6",
"updatedAt": 1774067368813,
"deliveryContext": {
"channel": "discord",
"to": "channel:1483873338022428865",
"accountId": "default"
},
"lastChannel": "discord",
"lastTo": "channel:1483873338022428865",
"lastAccountId": "default",
"systemSent": true,
"abortedLastRun": false,
"sessionFile": "/home/ubuntu/.openclaw/agents/pipo/sessions/a8d0786c-5bdc-4894-b6cc-c4bcf895dfc6.jsonl",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n clawrouter\n Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.\n ~/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md\n \n \n imagegen\n Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.\n ~/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md\n \n \n release\n Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.\n ~/.openclaw/extensions/clawrouter/skills/release/SKILL.md\n \n \n x-api\n Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.\n ~/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n discord\n Discord ops via the message tool (channel=discord).\n /usr/lib/node_modules/openclaw/skills/discord/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n node-connect\n Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.\n /usr/lib/node_modules/openclaw/skills/node-connect/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n hevy\n Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.\n ~/.openclaw/workspace/skills/hevy/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "clawrouter",
"requiredEnv": []
},
{
"name": "imagegen",
"requiredEnv": []
},
{
"name": "release"
},
{
"name": "x-api",
"requiredEnv": []
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "discord",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "node-connect"
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "asana"
},
{
"name": "model-router"
},
{
"name": "hevy"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "clawrouter",
"description": "Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "imagegen",
"description": "Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "release",
"description": "Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "x-api",
"description": "Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "discord",
"description": "Discord ops via the message tool (channel=discord).",
"filePath": "/usr/lib/node_modules/openclaw/skills/discord/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/discord",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "node-connect",
"description": "Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.",
"filePath": "/usr/lib/node_modules/openclaw/skills/node-connect/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/node-connect",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like \"create a skill\", \"author a skill\", \"tidy up a skill\", \"improve this skill\", \"review the skill\", \"clean up the skill\", \"audit the skill\".",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "hevy",
"description": "Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/hevy/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/hevy",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"contextTokens": 400000,
"systemPromptReport": {
"source": "run",
"generatedAt": 1774067358969,
"sessionId": "a8d0786c-5bdc-4894-b6cc-c4bcf895dfc6",
"sessionKey": "agent:pipo:discord:channel:1483873338022428865",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 57741,
"projectContextChars": 28437,
"nonProjectContextChars": 29304
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
},
{
"name": "HEARTBEAT.md",
"path": "/home/ubuntu/.openclaw/workspace/HEARTBEAT.md",
"missing": false,
"rawChars": 167,
"injectedChars": 167,
"truncated": false
},
{
"name": "BOOTSTRAP.md",
"path": "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md",
"missing": true,
"rawChars": 0,
"injectedChars": 68,
"truncated": false
},
{
"name": "MEMORY.md",
"path": "/home/ubuntu/.openclaw/workspace/MEMORY.md",
"missing": false,
"rawChars": 404,
"injectedChars": 404,
"truncated": false
}
],
"skills": {
"promptChars": 15918,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "clawrouter",
"blockChars": 330
},
{
"name": "imagegen",
"blockChars": 278
},
{
"name": "release",
"blockChars": 359
},
{
"name": "x-api",
"blockChars": 301
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 823
},
{
"name": "discord",
"blockChars": 206
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 224
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "node-connect",
"blockChars": 532
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 750
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "hevy",
"blockChars": 317
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 23600,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 563,
"schemaChars": 9016,
"propertiesCount": 95
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
},
"inputTokens": 20334,
"outputTokens": 221,
"cacheRead": 22656,
"cacheWrite": 0,
"totalTokens": 22872,
"totalTokensFresh": true
},
"agent:pipo:discord:channel:1483882072719360010": {
"chatType": "channel",
"channel": "discord",
"groupId": "1483882072719360010",
"groupChannel": "#hevy",
"space": "1483873336718135336",
"displayName": "discord:1483873336718135336#hevy",
"origin": {
"label": "Guild #hevy channel id:1483882072719360010",
"provider": "discord",
"surface": "discord",
"chatType": "channel",
"from": "discord:channel:1483882072719360010",
"to": "channel:1483882072719360010",
"accountId": "default"
},
"sessionId": "2e9b08a1-8f6f-44a9-8d0b-3a200a9cec0b",
"updatedAt": 1774112170551,
"deliveryContext": {
"channel": "discord",
"to": "channel:1483882072719360010",
"accountId": "default"
},
"lastChannel": "discord",
"lastTo": "channel:1483882072719360010",
"lastAccountId": "default",
"systemSent": true,
"abortedLastRun": false,
"sessionFile": "/home/ubuntu/.openclaw/agents/pipo/sessions/2e9b08a1-8f6f-44a9-8d0b-3a200a9cec0b.jsonl",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n clawrouter\n Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.\n ~/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md\n \n \n imagegen\n Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.\n ~/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md\n \n \n release\n Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.\n ~/.openclaw/extensions/clawrouter/skills/release/SKILL.md\n \n \n x-api\n Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.\n ~/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n discord\n Discord ops via the message tool (channel=discord).\n /usr/lib/node_modules/openclaw/skills/discord/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n node-connect\n Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.\n /usr/lib/node_modules/openclaw/skills/node-connect/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n hevy\n Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.\n ~/.openclaw/workspace/skills/hevy/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "clawrouter",
"requiredEnv": []
},
{
"name": "imagegen",
"requiredEnv": []
},
{
"name": "release"
},
{
"name": "x-api",
"requiredEnv": []
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "discord",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "node-connect"
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "asana"
},
{
"name": "model-router"
},
{
"name": "hevy"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "clawrouter",
"description": "Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "imagegen",
"description": "Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "release",
"description": "Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "x-api",
"description": "Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "discord",
"description": "Discord ops via the message tool (channel=discord).",
"filePath": "/usr/lib/node_modules/openclaw/skills/discord/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/discord",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "node-connect",
"description": "Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.",
"filePath": "/usr/lib/node_modules/openclaw/skills/node-connect/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/node-connect",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like \"create a skill\", \"author a skill\", \"tidy up a skill\", \"improve this skill\", \"review the skill\", \"clean up the skill\", \"audit the skill\".",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "hevy",
"description": "Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/hevy/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/hevy",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"authProfileOverride": "openai-codex:default",
"authProfileOverrideSource": "auto",
"authProfileOverrideCompactionCount": 0,
"modelProvider": "openai-codex",
"model": "gpt-5.4",
"contextTokens": 400000,
"systemPromptReport": {
"source": "run",
"generatedAt": 1774112144072,
"sessionId": "2e9b08a1-8f6f-44a9-8d0b-3a200a9cec0b",
"sessionKey": "agent:pipo:discord:channel:1483882072719360010",
"provider": "openai-codex",
"model": "gpt-5.4",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 57741,
"projectContextChars": 28437,
"nonProjectContextChars": 29304
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 681,
"injectedChars": 681,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
},
{
"name": "HEARTBEAT.md",
"path": "/home/ubuntu/.openclaw/workspace/HEARTBEAT.md",
"missing": false,
"rawChars": 167,
"injectedChars": 167,
"truncated": false
},
{
"name": "BOOTSTRAP.md",
"path": "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md",
"missing": true,
"rawChars": 0,
"injectedChars": 68,
"truncated": false
},
{
"name": "MEMORY.md",
"path": "/home/ubuntu/.openclaw/workspace/MEMORY.md",
"missing": false,
"rawChars": 404,
"injectedChars": 404,
"truncated": false
}
],
"skills": {
"promptChars": 15918,
"entries": [
{
"name": "acp-router",
"blockChars": 493
},
{
"name": "clawrouter",
"blockChars": 330
},
{
"name": "imagegen",
"blockChars": 278
},
{
"name": "release",
"blockChars": 359
},
{
"name": "x-api",
"blockChars": 301
},
{
"name": "1password",
"blockChars": 339
},
{
"name": "blogwatcher",
"blockChars": 234
},
{
"name": "blucli",
"blockChars": 215
},
{
"name": "camsnap",
"blockChars": 203
},
{
"name": "clawhub",
"blockChars": 423
},
{
"name": "coding-agent",
"blockChars": 823
},
{
"name": "discord",
"blockChars": 206
},
{
"name": "eightctl",
"blockChars": 223
},
{
"name": "gemini",
"blockChars": 212
},
{
"name": "gh-issues",
"blockChars": 499
},
{
"name": "gifgrep",
"blockChars": 234
},
{
"name": "github",
"blockChars": 563
},
{
"name": "gog",
"blockChars": 224
},
{
"name": "healthcheck",
"blockChars": 482
},
{
"name": "himalaya",
"blockChars": 374
},
{
"name": "mcporter",
"blockChars": 321
},
{
"name": "nano-banana-pro",
"blockChars": 236
},
{
"name": "nano-pdf",
"blockChars": 225
},
{
"name": "node-connect",
"blockChars": 532
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 236
},
{
"name": "openai-image-gen",
"blockChars": 263
},
{
"name": "openai-whisper",
"blockChars": 224
},
{
"name": "openai-whisper-api",
"blockChars": 240
},
{
"name": "oracle",
"blockChars": 267
},
{
"name": "ordercli",
"blockChars": 239
},
{
"name": "sag",
"blockChars": 195
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 750
},
{
"name": "songsee",
"blockChars": 242
},
{
"name": "sonoscli",
"blockChars": 216
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 246
},
{
"name": "video-frames",
"blockChars": 220
},
{
"name": "wacli",
"blockChars": 268
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 378
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "hevy",
"blockChars": 317
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 23600,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1683,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 2689,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 563,
"schemaChars": 9016,
"propertiesCount": 95
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 123,
"schemaChars": 767,
"propertiesCount": 7
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 260,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
},
"inputTokens": 82740,
"outputTokens": 721,
"cacheRead": 2560,
"cacheWrite": 0,
"totalTokens": 85300,
"totalTokensFresh": true
},
"agent:pipo:discord:channel:1484770890045591762": {
"sessionId": "9405eb13-e630-41b2-9858-368c8e2b9b55",
"updatedAt": 1774325981106,
"systemSent": true,
"abortedLastRun": false,
"displayName": "discord:g-1484770890045591762",
"chatType": "channel",
"channel": "discord",
"groupId": "1484770890045591762",
"deliveryContext": {
"channel": "discord",
"to": "channel:1484770890045591762",
"accountId": "default"
},
"lastChannel": "discord",
"lastTo": "channel:1484770890045591762",
"lastAccountId": "default",
"origin": {
"label": "1484770890045591762",
"provider": "discord",
"surface": "discord",
"chatType": "channel",
"from": "discord:channel:1484770890045591762",
"to": "channel:1484770890045591762",
"accountId": "default"
},
"sessionFile": "/home/ubuntu/.openclaw/agents/pipo/sessions/9405eb13-e630-41b2-9858-368c8e2b9b55.jsonl",
"compactionCount": 0,
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n ~/.openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n clawrouter\n Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.\n ~/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md\n \n \n imagegen\n Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.\n ~/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md\n \n \n release\n Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.\n ~/.openclaw/extensions/clawrouter/skills/release/SKILL.md\n \n \n x-api\n Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.\n ~/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n ~/openclaw-src-v2026.3.22/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n ~/openclaw-src-v2026.3.22/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n ~/openclaw-src-v2026.3.22/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n ~/openclaw-src-v2026.3.22/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n ~/openclaw-src-v2026.3.22/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.\n ~/openclaw-src-v2026.3.22/skills/coding-agent/SKILL.md\n \n \n discord\n Discord ops via the message tool (channel=discord).\n ~/openclaw-src-v2026.3.22/skills/discord/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n ~/openclaw-src-v2026.3.22/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n ~/openclaw-src-v2026.3.22/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n ~/openclaw-src-v2026.3.22/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n ~/openclaw-src-v2026.3.22/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n ~/openclaw-src-v2026.3.22/skills/github/SKILL.md\n \n \n gog\n Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n ~/openclaw-src-v2026.3.22/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n ~/openclaw-src-v2026.3.22/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n ~/openclaw-src-v2026.3.22/skills/mcporter/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n ~/openclaw-src-v2026.3.22/skills/nano-pdf/SKILL.md\n \n \n node-connect\n Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.\n ~/openclaw-src-v2026.3.22/skills/node-connect/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n ~/openclaw-src-v2026.3.22/skills/obsidian/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n ~/openclaw-src-v2026.3.22/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n ~/openclaw-src-v2026.3.22/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n ~/openclaw-src-v2026.3.22/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n ~/openclaw-src-v2026.3.22/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n ~/openclaw-src-v2026.3.22/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".\n ~/openclaw-src-v2026.3.22/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n ~/openclaw-src-v2026.3.22/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n ~/openclaw-src-v2026.3.22/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n ~/openclaw-src-v2026.3.22/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n ~/openclaw-src-v2026.3.22/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n ~/openclaw-src-v2026.3.22/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n ~/openclaw-src-v2026.3.22/skills/xurl/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n google-photos\n Manage Google Photos library. Upload photos, create albums, and list library content. Use when the user wants to backup, organize, or share images via Google Photos.\n ~/.openclaw/workspace/skills/google-photos/SKILL.md\n \n \n hevy\n Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.\n ~/.openclaw/workspace/skills/hevy/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "clawrouter",
"requiredEnv": []
},
{
"name": "imagegen",
"requiredEnv": []
},
{
"name": "release"
},
{
"name": "x-api",
"requiredEnv": []
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "discord",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "node-connect"
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "asana"
},
{
"name": "model-router"
},
{
"name": "google-photos",
"requiredEnv": []
},
{
"name": "hevy"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/home/ubuntu/.openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "clawrouter",
"description": "Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "imagegen",
"description": "Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "release",
"description": "Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "x-api",
"description": "Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/1password/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/blogwatcher/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/blucli/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/camsnap/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/clawhub/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/coding-agent/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "discord",
"description": "Discord ops via the message tool (channel=discord).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/discord/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/discord",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/eightctl/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gemini/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gh-issues/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gifgrep/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/github/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/healthcheck/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/himalaya/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/mcporter/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/nano-pdf/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "node-connect",
"description": "Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/node-connect/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/node-connect",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/obsidian/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/openai-whisper/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/openai-whisper-api/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/oracle/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/ordercli/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/sag/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like \"create a skill\", \"author a skill\", \"tidy up a skill\", \"improve this skill\", \"review the skill\", \"clean up the skill\", \"audit the skill\".",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/skill-creator/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/songsee/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/sonoscli/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/tmux/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/video-frames/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/wacli/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/home/ubuntu/openclaw-src-v2026.3.22/skills/xurl/SKILL.md",
"baseDir": "/home/ubuntu/openclaw-src-v2026.3.22/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "google-photos",
"description": "Manage Google Photos library. Upload photos, create albums, and list library content. Use when the user wants to backup, organize, or share images via Google Photos.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/google-photos/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/google-photos",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "hevy",
"description": "Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/hevy/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/hevy",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"status": "done",
"startedAt": 1774324232099,
"endedAt": 1774324249774,
"runtimeMs": 17675,
"systemPromptReport": {
"source": "run",
"generatedAt": 1774324232043,
"sessionId": "9405eb13-e630-41b2-9858-368c8e2b9b55",
"sessionKey": "agent:pipo:discord:channel:1484770890045591762",
"provider": "openrouter",
"model": "minimax/minimax-m2.5",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 57662,
"projectContextChars": 28450,
"nonProjectContextChars": 29212
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 694,
"injectedChars": 694,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
},
{
"name": "HEARTBEAT.md",
"path": "/home/ubuntu/.openclaw/workspace/HEARTBEAT.md",
"missing": false,
"rawChars": 167,
"injectedChars": 167,
"truncated": false
},
{
"name": "BOOTSTRAP.md",
"path": "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md",
"missing": true,
"rawChars": 0,
"injectedChars": 68,
"truncated": false
},
{
"name": "MEMORY.md",
"path": "/home/ubuntu/.openclaw/workspace/MEMORY.md",
"missing": false,
"rawChars": 404,
"injectedChars": 404,
"truncated": false
}
],
"skills": {
"promptChars": 15570,
"entries": [
{
"name": "acp-router",
"blockChars": 474
},
{
"name": "clawrouter",
"blockChars": 330
},
{
"name": "imagegen",
"blockChars": 278
},
{
"name": "release",
"blockChars": 359
},
{
"name": "x-api",
"blockChars": 301
},
{
"name": "1password",
"blockChars": 334
},
{
"name": "blogwatcher",
"blockChars": 229
},
{
"name": "blucli",
"blockChars": 210
},
{
"name": "camsnap",
"blockChars": 198
},
{
"name": "clawhub",
"blockChars": 418
},
{
"name": "coding-agent",
"blockChars": 818
},
{
"name": "discord",
"blockChars": 201
},
{
"name": "eightctl",
"blockChars": 218
},
{
"name": "gemini",
"blockChars": 207
},
{
"name": "gh-issues",
"blockChars": 494
},
{
"name": "gifgrep",
"blockChars": 229
},
{
"name": "github",
"blockChars": 558
},
{
"name": "gog",
"blockChars": 224
},
{
"name": "healthcheck",
"blockChars": 477
},
{
"name": "himalaya",
"blockChars": 369
},
{
"name": "mcporter",
"blockChars": 316
},
{
"name": "nano-pdf",
"blockChars": 220
},
{
"name": "node-connect",
"blockChars": 527
},
{
"name": "notion",
"blockChars": 210
},
{
"name": "obsidian",
"blockChars": 231
},
{
"name": "openai-whisper",
"blockChars": 219
},
{
"name": "openai-whisper-api",
"blockChars": 235
},
{
"name": "oracle",
"blockChars": 262
},
{
"name": "ordercli",
"blockChars": 234
},
{
"name": "sag",
"blockChars": 190
},
{
"name": "session-logs",
"blockChars": 235
},
{
"name": "skill-creator",
"blockChars": 745
},
{
"name": "songsee",
"blockChars": 237
},
{
"name": "sonoscli",
"blockChars": 211
},
{
"name": "summarize",
"blockChars": 233
},
{
"name": "tmux",
"blockChars": 241
},
{
"name": "video-frames",
"blockChars": 215
},
{
"name": "wacli",
"blockChars": 263
},
{
"name": "weather",
"blockChars": 202
},
{
"name": "xurl",
"blockChars": 373
},
{
"name": "asana",
"blockChars": 378
},
{
"name": "model-router",
"blockChars": 668
},
{
"name": "google-photos",
"blockChars": 323
},
{
"name": "hevy",
"blockChars": 317
},
{
"name": "bitwarden",
"blockChars": 321
},
{
"name": "parallel-preview-orchestrator",
"blockChars": 534
}
]
},
"tools": {
"listChars": 3441,
"schemaChars": 25373,
"entries": [
{
"name": "read",
"summaryChars": 298,
"schemaChars": 392,
"propertiesCount": 4
},
{
"name": "edit",
"summaryChars": 129,
"schemaChars": 591,
"propertiesCount": 6
},
{
"name": "write",
"summaryChars": 127,
"schemaChars": 313,
"propertiesCount": 3
},
{
"name": "exec",
"summaryChars": 181,
"schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
"schemaChars": 961,
"propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1066,
"schemaChars": 2799,
"propertiesCount": 48
},
{
"name": "canvas",
"summaryChars": 106,
"schemaChars": 661,
"propertiesCount": 18
},
{
"name": "nodes",
"summaryChars": 122,
"schemaChars": 1800,
"propertiesCount": 37
},
{
"name": "cron",
"summaryChars": 3420,
"schemaChars": 690,
"propertiesCount": 13
},
{
"name": "message",
"summaryChars": 575,
"schemaChars": 10333,
"propertiesCount": 108
},
{
"name": "tts",
"summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
{
"name": "gateway",
"summaryChars": 464,
"schemaChars": 497,
"propertiesCount": 12
},
{
"name": "agents_list",
"summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
"schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
"schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
"schemaChars": 274,
"propertiesCount": 5
},
{
"name": "sessions_yield",
"summaryChars": 97,
"schemaChars": 60,
"propertiesCount": 1
},
{
"name": "sessions_spawn",
"summaryChars": 198,
"schemaChars": 1179,
"propertiesCount": 17
},
{
"name": "subagents",
"summaryChars": 105,
"schemaChars": 191,
"propertiesCount": 4
},
{
"name": "session_status",
"summaryChars": 207,
"schemaChars": 89,
"propertiesCount": 2
},
{
"name": "web_search",
"summaryChars": 188,
"schemaChars": 1222,
"propertiesCount": 10
},
{
"name": "web_fetch",
"summaryChars": 129,
"schemaChars": 374,
"propertiesCount": 3
},
{
"name": "image",
"summaryChars": 201,
"schemaChars": 342,
"propertiesCount": 6
},
{
"name": "pdf",
"summaryChars": 275,
"schemaChars": 400,
"propertiesCount": 6
},
{
"name": "memory_search",
"summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
{
"name": "memory_get",
"summaryChars": 151,
"schemaChars": 128,
"propertiesCount": 3
},
{
"name": "blockrun_x_users_lookup",
"summaryChars": 619,
"schemaChars": 223,
"propertiesCount": 1
}
]
}
},
"inputTokens": 24903,
"outputTokens": 762,
"cacheRead": 368,
"cacheWrite": 0,
"totalTokens": 25271,
"totalTokensFresh": true
},
"agent:pipo:discord:channel:1484959300676878496": {
"sessionId": "d161bcef-759c-41f1-9d0a-7bb9ee6c7f73",
"updatedAt": 1774321267318,
"systemSent": true,
"abortedLastRun": false,
"modelOverride": "default",
"providerOverride": "claude-opus-cli",
"displayName": "discord:1483873336718135336#alias",
"chatType": "channel",
"channel": "discord",
"groupId": "1484959300676878496",
"deliveryContext": {
"channel": "discord",
"to": "channel:1484959300676878496",
"accountId": "default"
},
"lastChannel": "discord",
"lastTo": "channel:1484959300676878496",
"lastAccountId": "default",
"origin": {
"label": "Guild #alias channel id:1484959300676878496",
"provider": "discord",
"surface": "discord",
"chatType": "channel",
"from": "discord:channel:1484959300676878496",
"to": "channel:1484959300676878496",
"accountId": "default"
},
"sessionFile": "/home/ubuntu/.openclaw/agents/pipo/sessions/d161bcef-759c-41f1-9d0a-7bb9ee6c7f73.jsonl",
"compactionCount": 0,
"groupChannel": "#alias",
"space": "1483873336718135336",
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n acp-router\n Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.\n /usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md\n \n \n clawrouter\n Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.\n ~/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md\n \n \n imagegen\n Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.\n ~/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md\n \n \n release\n Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.\n ~/.openclaw/extensions/clawrouter/skills/release/SKILL.md\n \n \n x-api\n Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.\n ~/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md\n \n \n 1password\n Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.\n /usr/lib/node_modules/openclaw/skills/1password/SKILL.md\n \n \n blogwatcher\n Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.\n /usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md\n \n \n blucli\n BluOS CLI (blu) for discovery, playback, grouping, and volume.\n /usr/lib/node_modules/openclaw/skills/blucli/SKILL.md\n \n \n camsnap\n Capture frames or clips from RTSP/ONVIF cameras.\n /usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md\n \n \n clawhub\n Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.\n /usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md\n \n \n coding-agent\n Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.\n /usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md\n \n \n discord\n Discord ops via the message tool (channel=discord).\n /usr/lib/node_modules/openclaw/skills/discord/SKILL.md\n \n \n eightctl\n Control Eight Sleep pods (status, temperature, alarms, schedules).\n /usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md\n \n \n gemini\n Gemini CLI for one-shot Q&A, summaries, and generation.\n /usr/lib/node_modules/openclaw/skills/gemini/SKILL.md\n \n \n gh-issues\n Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]\n /usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md\n \n \n gifgrep\n Search GIF providers with CLI/TUI, download results, and extract stills/sheets.\n /usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md\n \n \n github\n GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.\n /usr/lib/node_modules/openclaw/skills/github/SKILL.md\n \n \n gog\n Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\n ~/.openclaw/workspace/skills/gog/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n himalaya\n CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).\n /usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md\n \n \n mcporter\n Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.\n /usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md\n \n \n nano-banana-pro\n Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).\n /usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md\n \n \n nano-pdf\n Edit PDFs with natural-language instructions using the nano-pdf CLI.\n /usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md\n \n \n node-connect\n Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.\n /usr/lib/node_modules/openclaw/skills/node-connect/SKILL.md\n \n \n notion\n Notion API for creating and managing pages, databases, and blocks.\n ~/.openclaw/workspace/skills/notion/SKILL.md\n \n \n obsidian\n Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.\n /usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md\n \n \n openai-image-gen\n Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.\n /usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md\n \n \n openai-whisper\n Local speech-to-text with the Whisper CLI (no API key).\n /usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md\n \n \n openai-whisper-api\n Transcribe audio via OpenAI Audio Transcriptions API (Whisper).\n /usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md\n \n \n oracle\n Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\n /usr/lib/node_modules/openclaw/skills/oracle/SKILL.md\n \n \n ordercli\n Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).\n /usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md\n \n \n sag\n ElevenLabs text-to-speech with mac-style say UX.\n /usr/lib/node_modules/openclaw/skills/sag/SKILL.md\n \n \n session-logs\n Search and analyze your own session logs (older/parent conversations) using jq.\n ~/.openclaw/workspace/skills/session-logs/SKILL.md\n \n \n skill-creator\n Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".\n /usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n songsee\n Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.\n /usr/lib/node_modules/openclaw/skills/songsee/SKILL.md\n \n \n sonoscli\n Control Sonos speakers (discover/status/play/volume/group).\n /usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md\n \n \n summarize\n Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).\n ~/.openclaw/workspace/skills/summarize/SKILL.md\n \n \n tmux\n Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.\n /usr/lib/node_modules/openclaw/skills/tmux/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n wacli\n Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).\n /usr/lib/node_modules/openclaw/skills/wacli/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n ~/.openclaw/workspace/skills/weather/SKILL.md\n \n \n xurl\n A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.\n /usr/lib/node_modules/openclaw/skills/xurl/SKILL.md\n \n \n asana\n Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).\n ~/.agents/skills/asana/SKILL.md\n \n \n model-router\n Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need "which model should I use", "route this task", "optimize cost", "switch model", "cheapest model for this", "use the right model", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.\n ~/.agents/skills/model-router/SKILL.md\n \n \n google-photos\n Manage Google Photos library. Upload photos, create albums, and list library content. Use when the user wants to backup, organize, or share images via Google Photos.\n ~/.openclaw/workspace/skills/google-photos/SKILL.md\n \n \n hevy\n Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.\n ~/.openclaw/workspace/skills/hevy/SKILL.md\n \n \n bitwarden\n Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.\n ~/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md\n \n \n parallel-preview-orchestrator\n Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview/<name>/`, but agent-specific runs may also publish to `/<agent-name>/<site-name>/` when the human asks for that exact naming convention.\n ~/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md\n \n",
"skills": [
{
"name": "acp-router"
},
{
"name": "clawrouter",
"requiredEnv": []
},
{
"name": "imagegen",
"requiredEnv": []
},
{
"name": "release"
},
{
"name": "x-api",
"requiredEnv": []
},
{
"name": "1password",
"requiredEnv": []
},
{
"name": "blogwatcher",
"requiredEnv": []
},
{
"name": "blucli",
"requiredEnv": []
},
{
"name": "camsnap",
"requiredEnv": []
},
{
"name": "clawhub",
"requiredEnv": []
},
{
"name": "coding-agent",
"requiredEnv": []
},
{
"name": "discord",
"requiredEnv": []
},
{
"name": "eightctl",
"requiredEnv": []
},
{
"name": "gemini",
"requiredEnv": []
},
{
"name": "gh-issues",
"primaryEnv": "GH_TOKEN",
"requiredEnv": []
},
{
"name": "gifgrep",
"requiredEnv": []
},
{
"name": "github",
"requiredEnv": []
},
{
"name": "gog"
},
{
"name": "healthcheck"
},
{
"name": "himalaya",
"requiredEnv": []
},
{
"name": "mcporter",
"requiredEnv": []
},
{
"name": "nano-banana-pro",
"primaryEnv": "GEMINI_API_KEY",
"requiredEnv": [
"GEMINI_API_KEY"
]
},
{
"name": "nano-pdf",
"requiredEnv": []
},
{
"name": "node-connect"
},
{
"name": "notion"
},
{
"name": "obsidian",
"requiredEnv": []
},
{
"name": "openai-image-gen",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "openai-whisper",
"requiredEnv": []
},
{
"name": "openai-whisper-api",
"primaryEnv": "OPENAI_API_KEY",
"requiredEnv": [
"OPENAI_API_KEY"
]
},
{
"name": "oracle",
"requiredEnv": []
},
{
"name": "ordercli",
"requiredEnv": []
},
{
"name": "sag",
"primaryEnv": "ELEVENLABS_API_KEY",
"requiredEnv": [
"ELEVENLABS_API_KEY"
]
},
{
"name": "session-logs",
"requiredEnv": []
},
{
"name": "skill-creator"
},
{
"name": "songsee",
"requiredEnv": []
},
{
"name": "sonoscli",
"requiredEnv": []
},
{
"name": "summarize"
},
{
"name": "tmux",
"requiredEnv": []
},
{
"name": "video-frames",
"requiredEnv": []
},
{
"name": "wacli",
"requiredEnv": []
},
{
"name": "weather"
},
{
"name": "xurl",
"requiredEnv": []
},
{
"name": "asana"
},
{
"name": "model-router"
},
{
"name": "google-photos",
"requiredEnv": []
},
{
"name": "hevy"
},
{
"name": "bitwarden",
"requiredEnv": []
},
{
"name": "parallel-preview-orchestrator",
"requiredEnv": []
}
],
"resolvedSkills": [
{
"name": "acp-router",
"description": "Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions (\"telephone game\" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation.",
"filePath": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/extensions/acpx/skills/acp-router",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "clawrouter",
"description": "Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/clawrouter",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "imagegen",
"description": "Generate images via BlockRun's image API. Trigger when the user asks to generate, create, draw, or make an image.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/imagegen",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "release",
"description": "Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/release",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "x-api",
"description": "Look up X/Twitter user profiles via BlockRun's API. Trigger when the user asks to look up, find, or get info about X/Twitter users or handles.",
"filePath": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/extensions/clawrouter/skills/x-api",
"source": "openclaw-extra",
"disableModelInvocation": false
},
{
"name": "1password",
"description": "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.",
"filePath": "/usr/lib/node_modules/openclaw/skills/1password/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/1password",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blogwatcher",
"description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blogwatcher/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blogwatcher",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "blucli",
"description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
"filePath": "/usr/lib/node_modules/openclaw/skills/blucli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/blucli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "camsnap",
"description": "Capture frames or clips from RTSP/ONVIF cameras.",
"filePath": "/usr/lib/node_modules/openclaw/skills/camsnap/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/camsnap",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "clawhub",
"description": "Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/clawhub/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/clawhub",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "coding-agent",
"description": "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:\"acp\"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.",
"filePath": "/usr/lib/node_modules/openclaw/skills/coding-agent/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/coding-agent",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "discord",
"description": "Discord ops via the message tool (channel=discord).",
"filePath": "/usr/lib/node_modules/openclaw/skills/discord/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/discord",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "eightctl",
"description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
"filePath": "/usr/lib/node_modules/openclaw/skills/eightctl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/eightctl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gemini",
"description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gemini/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gemini",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gh-issues",
"description": "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]",
"filePath": "/usr/lib/node_modules/openclaw/skills/gh-issues/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gh-issues",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gifgrep",
"description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
"filePath": "/usr/lib/node_modules/openclaw/skills/gifgrep/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/gifgrep",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "github",
"description": "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.",
"filePath": "/usr/lib/node_modules/openclaw/skills/github/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/github",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "gog",
"description": "Read-only Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/gog/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/gog",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "healthcheck",
"description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
"filePath": "/usr/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/healthcheck",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "himalaya",
"description": "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).",
"filePath": "/usr/lib/node_modules/openclaw/skills/himalaya/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/himalaya",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "mcporter",
"description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
"filePath": "/usr/lib/node_modules/openclaw/skills/mcporter/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/mcporter",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-banana-pro",
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-banana-pro",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "nano-pdf",
"description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/nano-pdf/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/nano-pdf",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "node-connect",
"description": "Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.",
"filePath": "/usr/lib/node_modules/openclaw/skills/node-connect/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/node-connect",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "notion",
"description": "Notion API for creating and managing pages, databases, and blocks.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/notion/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/notion",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "obsidian",
"description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
"filePath": "/usr/lib/node_modules/openclaw/skills/obsidian/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/obsidian",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-image-gen",
"description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-image-gen/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-image-gen",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper",
"description": "Local speech-to-text with the Whisper CLI (no API key).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "openai-whisper-api",
"description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
"filePath": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/openai-whisper-api",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "oracle",
"description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
"filePath": "/usr/lib/node_modules/openclaw/skills/oracle/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/oracle",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "ordercli",
"description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
"filePath": "/usr/lib/node_modules/openclaw/skills/ordercli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/ordercli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sag",
"description": "ElevenLabs text-to-speech with mac-style say UX.",
"filePath": "/usr/lib/node_modules/openclaw/skills/sag/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sag",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "session-logs",
"description": "Search and analyze your own session logs (older/parent conversations) using jq.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/session-logs/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/session-logs",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "skill-creator",
"description": "Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like \"create a skill\", \"author a skill\", \"tidy up a skill\", \"improve this skill\", \"review the skill\", \"clean up the skill\", \"audit the skill\".",
"filePath": "/usr/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/skill-creator",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "songsee",
"description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
"filePath": "/usr/lib/node_modules/openclaw/skills/songsee/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/songsee",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "sonoscli",
"description": "Control Sonos speakers (discover/status/play/volume/group).",
"filePath": "/usr/lib/node_modules/openclaw/skills/sonoscli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/sonoscli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "summarize",
"description": "Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/summarize/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/summarize",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "tmux",
"description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
"filePath": "/usr/lib/node_modules/openclaw/skills/tmux/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/tmux",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "video-frames",
"description": "Extract frames or short clips from videos using ffmpeg.",
"filePath": "/usr/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/video-frames",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "wacli",
"description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
"filePath": "/usr/lib/node_modules/openclaw/skills/wacli/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/wacli",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "weather",
"description": "Get current weather and forecasts (no API key required).",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/weather/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/weather",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "xurl",
"description": "A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.",
"filePath": "/usr/lib/node_modules/openclaw/skills/xurl/SKILL.md",
"baseDir": "/usr/lib/node_modules/openclaw/skills/xurl",
"source": "openclaw-bundled",
"disableModelInvocation": false
},
{
"name": "asana",
"description": "Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).",
"filePath": "/home/ubuntu/.agents/skills/asana/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/asana",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "model-router",
"description": "Intelligent cost-aware model routing that classifies task complexity and selects the optimal AI model. Automatically routes simple tasks to cheap models and complex tasks to premium models. Use when you need \"which model should I use\", \"route this task\", \"optimize cost\", \"switch model\", \"cheapest model for this\", \"use the right model\", or to balance quality vs cost across AI providers. Supports progressive escalation, 5-tier routing, and current model pricing.",
"filePath": "/home/ubuntu/.agents/skills/model-router/SKILL.md",
"baseDir": "/home/ubuntu/.agents/skills/model-router",
"source": "agents-skills-personal",
"disableModelInvocation": false
},
{
"name": "google-photos",
"description": "Manage Google Photos library. Upload photos, create albums, and list library content. Use when the user wants to backup, organize, or share images via Google Photos.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/google-photos/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/google-photos",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "hevy",
"description": "Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/hevy/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/hevy",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "bitwarden",
"description": "Set up and use Bitwarden CLI (bw). Use when installing the CLI, unlocking vault, or reading/generating secrets via bw. Handles session management with BW_SESSION.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/openclaw-bitwarden",
"source": "openclaw-workspace",
"disableModelInvocation": false
},
{
"name": "parallel-preview-orchestrator",
"description": "Orchestrate parallel preview-site creation across multiple CLI backends (`codex-cli`, `gemini-cli`, `deepseek-code`) and publish each result with `pipo-deploy`. Default routing is `/preview//`, but agent-specific runs may also publish to `///` when the human asks for that exact naming convention.",
"filePath": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator/SKILL.md",
"baseDir": "/home/ubuntu/.openclaw/workspace/skills/parallel-preview-orchestrator",
"source": "openclaw-workspace",
"disableModelInvocation": false
}
],
"version": 0
},
"modelProvider": "claude-opus-cli",
"model": "default",
"contextTokens": 200000,
"systemPromptReport": {
"source": "run",
"generatedAt": 1774321258877,
"sessionId": "d161bcef-759c-41f1-9d0a-7bb9ee6c7f73",
"sessionKey": "agent:pipo:discord:channel:1484959300676878496",
"provider": "claude-opus-cli",
"model": "default",
"workspaceDir": "/home/ubuntu/.openclaw/workspace",
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000,
"bootstrapTruncation": {
"warningMode": "once",
"warningShown": false,
"truncatedFiles": 0,
"nearLimitFiles": 0,
"totalNearLimit": false
},
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
"chars": 36671,
"projectContextChars": 28450,
"nonProjectContextChars": 8221
},
"injectedWorkspaceFiles": [
{
"name": "AGENTS.md",
"path": "/home/ubuntu/.openclaw/workspace/AGENTS.md",
"missing": false,
"rawChars": 14397,
"injectedChars": 14397,
"truncated": false
},
{
"name": "SOUL.md",
"path": "/home/ubuntu/.openclaw/workspace/SOUL.md",
"missing": false,
"rawChars": 1664,
"injectedChars": 1664,
"truncated": false
},
{
"name": "TOOLS.md",
"path": "/home/ubuntu/.openclaw/workspace/TOOLS.md",
"missing": false,
"rawChars": 9018,
"injectedChars": 9018,
"truncated": false
},
{
"name": "IDENTITY.md",
"path": "/home/ubuntu/.openclaw/workspace/IDENTITY.md",
"missing": false,
"rawChars": 694,
"injectedChars": 694,
"truncated": false
},
{
"name": "USER.md",
"path": "/home/ubuntu/.openclaw/workspace/USER.md",
"missing": false,
"rawChars": 1436,
"injectedChars": 1436,
"truncated": false
},
{
"name": "HEARTBEAT.md",
"path": "/home/ubuntu/.openclaw/workspace/HEARTBEAT.md",
"missing": false,
"rawChars": 167,
"injectedChars": 167,
"truncated": false
},
{
"name": "BOOTSTRAP.md",
"path": "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md",
"missing": true,
"rawChars": 0,
"injectedChars": 68,
"truncated": false
},
{
"name": "MEMORY.md",
"path": "/home/ubuntu/.openclaw/workspace/MEMORY.md",
"missing": false,
"rawChars": 404,
"injectedChars": 404,
"truncated": false
}
],
"skills": {
"promptChars": 0,
"entries": []
},
"tools": {
"listChars": 1030,
"schemaChars": 0,
"entries": []
}
},
"cliSessionIds": {
"claude-opus-cli": "d161bcef-759c-41f1-9d0a-7bb9ee6c7f73"
},
"status": "done",
"startedAt": 1774321258842,
"endedAt": 1774321267280,
"runtimeMs": 8438
}
}