Agent skill

Control UI

by openclaw in openclaw/openclaw

Operate and troubleshoot the OpenClaw Control UI: navigate connected clients, organize sessions, build session dashboards, and handle direct or Tailscale-hosted Gateways.

MITAuto-check passed

Install Control UI

skills CLI
$ npx skills add openclaw/openclaw --skill control-ui -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openclaw/openclaw control-ui --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openclaw/openclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/control-ui .claude/skills/control-ui && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
control-ui
GitHub stars
392k
Token cost
~1.8k tokens
SKILL.md length
1,013 words
Files
3 (incl. references)
Skills in repo
93
Repo updated
First seen
Licence
MIT

At a glance

Operate and troubleshoot the OpenClaw Control UI: navigate connected clients, organize sessions, build session dashboards, and handle direct or Tailscale-hosted Gateways.

  • Works in 3 steps: Identify the target session and whether… → Read current state before changing it → If the task targets another session's…
  • SKILL.md covers Mental model, Start safely, Navigate and arrange the UI and Build a session dashboard, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Control UI is an agent skill from openclaw/openclaw. Operate and troubleshoot the OpenClaw Control UI: navigate connected clients, organize sessions, build session dashboards, and handle direct or Tailscale-hosted Gateways.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/dashboards.md` and `references/hosting.md`).

The repository describes itself as: The AI that really does things. Any OS. Any Platform. The lobster way. 🦞. The licence is MIT.

Example prompts

  • “/control-ui”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Identify the target session and whether the Control UI is local/direct or
  2. Read current state before changing it
  3. If the task targets another session's board, move the work into that session.

What it can do on your machine

Read from SKILL.md and the folder at commit 1eb5970. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Control UI loads about 1.8k tokens when it runs, and up to ~4.3k if it reads all its reference files. Until then it costs about 45 tokens; SKILL.md has 1,013 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from openclaw/openclaw at commit 1eb5970, republished under its MIT licence (© openclaw). 1,013 words, ~1,819 tokens.

Download SKILL.mdSave it as .claude/skills/control-ui/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
control-ui
description
Operate and troubleshoot the OpenClaw Control UI: navigate connected clients, organize sessions, build session dashboards, and handle direct or Tailscale-hosted Gateways.
user-invocable
true

Control UI

Use OpenClaw's typed UI tools for state and layout. Use browser automation only to inspect or interact with rendered pixels.

Mental model

  • A sidebar item is a session, not a dashboard page.
  • Each session owns one board. The board contains tabs and widgets.
  • Pinning a session keeps it in the sidebar. Sessions with a stored board appear in the /dashboards gallery.
  • screen changes connected Control UI layout and navigation. It does not read the page or take screenshots.
  • sessions_list finds sessions. sessions renames, groups, pins, or archives them. It does not edit board content.
  • dashboard reads and arranges the current session's board and registered plugin widgets. show_widget authors or updates custom HTML/SVG widgets.

Do not replace these operations with shell calls or raw Gateway RPC when the typed tool exists.

Start safely

  1. Identify the target session and whether the Control UI is local/direct or published through Tailscale or another HTTPS proxy.
    • If the user wants a dedicated sidebar dashboard, choose or create its visible session before authoring any widget. A tab is only a partition inside one session's board; it never creates a sidebar row.
    • If the current turn is running in a temporary or parent session, hand the dashboard task to the intended visible session first. Board widgets are keyed by session and cannot be moved to another session afterward.
  2. Read current state before changing it:
    • use sessions_list to resolve the session;
    • use dashboard with action: "read" for the current session;
    • inspect existing tabs, stable widget names, owners, sizes, and panel layout.
  3. If the task targets another session's board, move the work into that session. Dashboard tools intentionally operate on the current session.

Read hosting.md before opening or repairing a remote Control UI. Read dashboards.md before creating or restructuring a board. Use the visualize skill for widget composition, libraries, interactive code explanations, and dashboard content. Keep session and board organization here.

Navigate and arrange the UI

Use screen for deterministic client commands:

  • navigate to open a session by sessionKey;
  • sidebar_show / sidebar_hide for the session sidebar;
  • split_right / split_down, focus, and close_pane for panes;
  • terminal_show / terminal_hide and browser_show / browser_hide for docked panels.

screen broadcasts to every connected Control UI that advertises UI commands; it cannot select one browser tab. Confirm the blast radius when several clients may be open. If it reports no capable client, ask the user to open the Control UI and retry.

Use the in-app browser or an available browser-control tool when the task needs DOM inspection, clicking, typing, or screenshots. Reuse the existing signed-in Control UI tab when possible.

Build a session dashboard

  1. Call dashboard read. Reuse suitable tabs and widget names.
  2. Create or rename tabs with tab_create / tab_update; use short lowercase slug IDs.
  3. Add content with the correct owner:
    • native text, metrics, tables, charts, and links: show_widget with pin: true and report;
    • self-contained custom HTML/SVG or registered-source content: show_widget with pin: true;
    • trusted plugin widgets: dashboard widget_put with an advertised pluginKind. Do not embed Grafana or another external application in an <iframe> inside show_widget; widget sandboxes reject child-frame URLs and navigation. Use an ordinary user-clicked link to open the application, fetch an exact HTTPS API through declared capabilities.netOrigins, use a Gateway data binding, or install/use a trusted plugin widget instead.
  4. Use a stable name when calling show_widget. Reusing the same name with new widget_code updates the widget in place.
  5. Arrange with widget_move, widget_resize, and tab reordering. Prefer size presets and board order over pixel placement.
  6. Pin the current session with sessions patch when it should stay prominent.
  7. Call dashboard focus_tab to show the intended tab in the dashboard side panel. If no Control UI is connected, the command returns unavailable; have the user open the session and retry.
  8. Choose the presentation after focusing the tab. set_presentation with presentation: "expanded" expands the dashboard; "split" shows it beside chat in the current panel layout. The human can use Expand side panel for a full-width dashboard, Collapse to bring chat back, or close the panel for chat alone.

Never create a fake top-level page for a dashboard. For a dedicated dashboard, use a dedicated session, pin that session, and build its board from inside it.

Show full SKILL.md (314 more words)Show less

Update without breaking the board

  • Read first and mutate the smallest unit.
  • Keep stable tab IDs and widget names unless replacement is intentional.
  • Do not change a widget's content owner in place. Remove it, then recreate it with the new owner or registered kind.
  • Capability grants are bound to exact widget bytes and revision. Changed content may require approval again.
  • Resetting a conversation preserves its board. Deleting the session deletes the board.

Verify the result

Use two layers of proof:

  1. State: dashboard read shows the expected tabs, widgets, names, owners, order, and sizes; sessions_list shows the expected session metadata.
  2. Rendered UI: open the actual Control UI, confirm the correct session and dashboard panel, then inspect or screenshot the widget frame. Exercise any important controls.

An HTTP 200 for the shell or widget route is transport proof, not visual proof. Do not claim the dashboard works until the sandboxed frame renders. For widgets that fetch live data, exercise that fetch from the rendered frame. A host-side curl does not prove the browser received the required capability grant or accepted the endpoint's CORS and mixed-content policy. If no browser-control or connected-client inspection is available, report the dashboard as published but visually unverified instead of claiming success.

Recovery order

When a widget is blank or stale:

  1. confirm the expected session, tab, widget name, and revision with dashboard read;
  2. classify the hosting path using hosting.md;
  3. verify the Control UI origin, the separate widget sandbox origin, and the protocol used on every reverse-proxy hop;
  4. if widget JavaScript reports Failed to fetch, verify its exact HTTPS origin is declared and granted in capabilities.netOrigins, then check browser CORS and mixed-content errors;
  5. after a Gateway restart or routing change, republish/update the widget so the browser receives a fresh ticketed frame URL;
  6. reload the Control UI and verify the rendered frame, not only route status.

© openclaw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/control-ui of openclaw/openclaw.

  • SKILL.md
  • references/dashboards.md
  • references/hosting.md

Open the folder on GitHubat commit 1eb5970

Compare with similar skills

Control UI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Control UI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Control UI this skillopenclaw/openclaw392k—~1.8kAutomated safety check: PassMIT
ConnectComposioHQ/awesome-claude-skills77k3 repos~987Automated safety check: PassNone
It Operationsdavila7/claude-code-templates32k1 repos~3.7kAutomated safety check: PassMIT
Operator Approval Loopaffaan-m/ECC275k—~3.3kAutomated safety check: PassMIT
Breadcrumb Navigationthedaviddias/Front-End-Checklist74k—~418Automated safety check: PassMIT
Navigation Landmarkthedaviddias/Front-End-Checklist74k—~417Automated safety check: PassMIT

Similar skills

  • Connect

    ComposioHQ/awesome-claude-skills

    Connect Claude to any app. An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~987 tokens
    Productivity & AutomationAuto-check passed
  • It Operations

    davila7/claude-code-templates

    Manages IT infrastructure, monitoring, incident response, and service reliability.

    32k GitHub starsUsed in 1 repo~3.7k tokens
    DevOps & CloudAuto-check passed
  • Operator approval contract with internal filing notices for agent-drafted outbound messages, hashed drafts, epoch-keyed decisions, durable delivery claims and receipts, and a pre-draft baseline gate.

    275k GitHub stars~3.3k tokensUpdated 3 days ago
    Auto-check passed
  • Breadcrumb Navigation

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing templates, rendered HTML, or shared components related to Implement accessible breadcrumb navigation.

    74k GitHub stars~418 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Navigation Landmark

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing templates, rendered HTML, or shared components related to Use navigation landmark regions.

    74k GitHub stars~417 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Keyboard Navigation

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Enable keyboard navigation for all elements.

    74k GitHub stars~567 tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from openclaw/openclaw

All 93 skills in this repo
  • Openclaw Live Updater

    openclaw/openclaw

    Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.

    392k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Tmux

    openclaw/openclaw

    Control tmux sessions/panes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.

    392k GitHub starsUsed in 2 repos~640 tokens
    Auto-check passed
  • Feishu Doc

    openclaw/openclaw

    Feishu document read/write workflows. An agent skill from openclaw/openclaw.

    392k GitHub stars~516 tokensUpdated today
    Auto-check passed
  • Openclaw PR Maintainer

    openclaw/openclaw

    Review, triage, repair, or land OpenClaw issues and pull requests with current-source evidence and the native maintainer workflow.

    392k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Browser Automation

    openclaw/openclaw

    A skill your agent uses when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

    392k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Clawsweeper

    openclaw/openclaw

    A skill your agent uses for all ClawSweeper work: OpenClaw issue/PR sweep reports, repair jobs, cloud fix PRs, @clawsweeper maintainer mention commands, trusted ClawSweeper-reviewed…

    392k GitHub stars~3k tokensUpdated today
    Auto-check passed

Questions about Control UI

What does Control UI do?

Operate and troubleshoot the OpenClaw Control UI: navigate connected clients, organize sessions, build session dashboards, and handle direct or Tailscale-hosted Gateways. Control UI is an agent skill from openclaw/openclaw. Operate and troubleshoot the OpenClaw Control UI: navigate connected clients, organize sessions, build session dashboards, and handle direct or Tailscale-hosted Gateways.

How do I install Control UI in Claude Code?

Run `npx skills add openclaw/openclaw --skill control-ui -a claude-code`. Or copy the skill folder (skills/control-ui in openclaw/openclaw) into .claude/skills/control-ui in your project. Claude Code loads it when a task matches its description.

How do I install Control UI in Codex?

Run `npx skills add openclaw/openclaw --skill control-ui -a codex`. Or copy the skill folder (skills/control-ui in openclaw/openclaw) into .agents/skills/control-ui in your project. Codex loads it when a task matches its description.

Can I use Control UI in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openclaw/openclaw --skill control-ui -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/control-ui, .gemini/skills/control-ui, .github/skills/control-ui and .opencode/skills/control-ui in your project.

What does Control UI need to run?

SKILL.md names no scripts, command-line tools or credentials: Control UI is instructions for the agent only.

Does Control UI access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Control UI safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Control UI use?

Control UI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Control UI use?

About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.4k tokens, read only when the agent opens those files.

What are the alternatives to Control UI?

Skills that share tags, products or a category with Control UI: Connect (ComposioHQ/awesome-claude-skills, 77k stars), It Operations (davila7/claude-code-templates, 32k stars), Operator Approval Loop (affaan-m/ECC, 275k stars) and Breadcrumb Navigation (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Control UI?

openclaw (a GitHub organization) maintains it in openclaw/openclaw, which has 391,610 GitHub stars. The repository holds 93 skills in this directory. The repository was last updated on October 8, 2026.

Source: openclaw/openclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.