workled
MUST call set_agent_state via MCP on each agent state transition (thinking, idle, input, error). Use when connected to a workled device via MCP, controlling the agents state indica…
git-hub-cloud
@git-hub-cloud
Install
$ openclaw skills install @git-hub-cloud/workledworkled MCP Controller
Mandatory State Protocol
Call set_agent_state via MCP on every state transition:
| State | When |
|---|---|
thinking | First tool call of every reply; user submits a message |
idle | Turn finished; session torn down |
input | Any time the agent is waiting on the user — calling an input tool (question/ask/confirm), sitting inside a client-side modal (hermes _confirm_destructive_slash, etc.), or after rendering a plain-text choice list / multi-option question and waiting for the user's pick |
error | Runtime error occurred |
Per-turn procedure (execute every turn, in order):
- Turn starting / user message received →
set_agent_state("thinking")— first action, before any other tool call. - Before rendering options / choices / opening any modal / asking a question →
set_agent_state("input"). - End of turn, work done, no more output pending →
set_agent_state("idle"). - Runtime error / failed tool call →
set_agent_state("error").
Pre-Reply Gate — check BEFORE emitting your final visible message:
- Did I call
set_agent_stateat least once this turn? - Does the LED state match what I'm about to show (idle if done, input if asking, thinking if still working)?
- If either is NO, emit the correct
set_agent_statecall first, then the reply.
MCP Tool Reference
| Tool | Property | Description | Usage |
|---|---|---|---|
| set_agent_state | state_name: string | Set LED to reflect agent state (thinking/idle/input/error) | set_agent_state("thinking") |
| set_brightness | brightness: string | LED brightness 0-255 | set_brightness("128") |
| set_effect | effect_name: string, effect_json: string | effect_name ∈ led(manual effect)/idle/thinking/input/error; effect_json is a JSON string {"type","hue","saturation","value","speed"}. Map natural-language colors to HSV (see table below). | set_effect("led", '{"type":"breathe","hue":180,"speed":50}') |
| get_effect | effect_name: string | Get effect_name config as JSON | get_effect("thinking") |
| set_macro | macro_name: string, macro_json: string | Set the macro for a touch pad gesture; macro_name ∈ single_click/double_click/long_press_start; macro_json is a JSON array of segments (see Macro Format); empty macro_json resets | set_macro("single_click", '[{"combo":"ctrl+c"}]') |
| get_macro | macro_name: string | Returns the macro as a JSON array string, or empty string if unset (password values masked) | get_macro("single_click") |
Mapping natural-language colors to set_effect
Use type:"solid" unless the user asks for an animation. Map a color name to HSV:
| Description | type | hue | saturation | value |
|---|---|---|---|---|
| pure white | solid | 0 | 0 | 255 |
| warm white | solid | 30 | 80 | 255 |
| red | solid | 0 | 255 | 255 |
| orange | solid | 30 | 255 | 255 |
| yellow | solid | 60 | 255 | 255 |
| green | solid | 120 | 255 | 255 |
| cyan/teal | solid | 180 | 255 | 255 |
| blue | solid | 240 | 255 | 255 |
| purple/violet | solid | 270 | 255 | 255 |
| pink | solid | 330 | 200 | 255 |
| dim/night mode | solid | 30 | 80 | 60 |
| rainbow (animated) | rainbow | - | - | - |
Rule of thumb: hue 0-359 picks the hue, saturation 0-255 (0 = white/pastel, 255 = vivid), value 0-255 brightness. Pastel/white tones use low saturation; vivid tones use 255.
Macro Format
Full macro reference macro_format.md
Setup & Troubleshooting
If the device is not responding, run node <skill-dir>/index.js status
and follow the JSON hint it prints. Full install / deployment /
troubleshooting reference: device_setup.md
Contributing
Top skills in this category
百度网盘
@wscats百度网盘(Baidu Drive, pan.baidu.com)文件管理 — 上传、下载、转存、分享、搜索、移动、复制、重命名、创建文件夹、删除(高风险,需用户确认)。 同时支持 Agent 记忆备份/恢复(kimiclaw/maxclaw/qclaw/openclaw)。 TRIGGER: 用户消息明确提及"百...
wechat-mp-writer-skill-mxx
@hahacatlsq微信公众号文章全流程写作助手。支持热点选题、文章撰写、AI去味润色(去除机器感)、配图建议、一键发布到公众号草稿箱。适用于技术博主、自媒体创作者、企业公众号运营等场景。当用户需要写公众号文章、润色内容、寻找配图或发布到微信时使用此skill。
Weiyun Skills
@wscats微云网盘 MCP 接口完整技能。包含 weiyun.list、weiyun.list_by_category、weiyun.download、weiyun.delete、weiyun.upload、weiyun.gen_share_link、weiyun.rename_file、weiyun.rename_dir...
Blog Writer
@tomstools11This skill should be used when writing blog posts, articles, or long-form content in the writer's distinctive writing style. It produces authentic, opinionated content that matches the writer's voice—direct, conversational, and grounded in personal experience. The skill handles the complete workflow from research review through Notion publication. Use this skill for drafting blog posts, thought leadership pieces, or any writing meant to reflect the writer's perspective on AI, productivity, sales, marketing, or technology topics.
Agent Commerce Engine
@nowloadyA production-ready universal engine for Agentic Commerce. This tool enables autonomous agents to interact with any compatible headless e-commerce backend thr...