← Back to Skills Marketplace
zhixiangshon-cell

Dynamic Island

by zhixiangshon-cell · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ✓ Security Clean
71
Downloads
1
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install dynamic-island
Description
macOS desktop widget showing real-time status and recent messages of multiple OpenClaw agents with a frosted glass dynamic island UI.
README (SKILL.md)

OpenClaw Dynamic Island

macOS Dynamic Island 风格的多 Agent 状态监控桌面小组件。

功能

  • 毛玻璃药丸窗口,悬浮在屏幕顶部
  • 5种状态自动切换:待命、收到消息、思考中、搞定了、出错了
  • emolog 可爱图标
  • 多 Agent 同时管理,鼠标悬停展开查看
  • 每个 Agent 显示最近 2 条对话消息
  • 光标跟随高亮 Agent
  • 点击 Agent 跳转飞书聊天
  • 任务完成晃动 + 音效提示

安装

一键安装(检查环境 + 编译 widget + 创建配置):

cd ~/.openclaw/skills/dynamic-island
bash setup.sh

安装脚本会自动:

  • 检查 macOS、Swift、Python3 环境
  • 安装 websockets 依赖
  • 编译 Swift widget
  • 创建 config.json 配置文件

启动

./start.sh

停止

./start.sh stop

配置

复制 config.example.jsonconfig.json

cp config.example.json config.json

编辑 config.json

{
  "agents_dir": "~/.openclaw/agents",
  "http_port": 7788,
  "ws_port": 7789,
  "agent_names": {
    "my-agent-id": "My Bot"
  },
  "agent_links": {
    "my-agent-id": "lark://applink.feishu.cn/client/chat/open?openId=xxx"
  }
}
字段 说明 默认值
agents_dir OpenClaw agents 目录路径 ~/.openclaw/agents
http_port HTTP 服务端口 7788
ws_port WebSocket 端口 7789
agent_names Agent ID → 显示名映射 {}
agent_links Agent ID → 飞书聊天链接(可点击跳转) {}

架构

setup.sh        — 一键安装脚本(环境检查 + 编译 + 配置)
start.sh        — 启动/停止脚本
server.py       — 监控 agent 会话 JSONL 文件,通过 WebSocket 推送事件
index.html      — 渲染 emolog 图标 + 多 Agent UI
widget.swift    — macOS 原生药丸窗口(NSPanel + 毛玻璃 + hover 检测)
emolog/         — emolog 自定义图标
config.json     — 本地配置(git-ignored)

使用场景

当你需要:

  • 同时监控多个 OpenClaw Agent 的工作状态
  • 在桌面上实时看到 Agent 的思考、执行、完成过程
  • 通过飞书聊天链接快速跳转到对应 Agent

就说"启动灵动岛"或"打开 dynamic island"来激活此技能。

Usage Guidance
This package appears to implement what it claims: a local macOS widget that reads OpenClaw agent session logs and displays recent messages. Before installing, consider: 1) Privacy — server.py reads your ~/.openclaw/agents/*/sessions/*.jsonl and surfaces up to ~80 characters of recent messages in the UI; do not run it if those session logs contain sensitive content you don't want shown. 2) Local-only network footprint — the service binds to localhost (HTTP/WebSocket) and the WebView content is served locally; there are no obvious outbound exfil endpoints in the code. 3) Clickable links — the widget can open configured URLs (e.g., lark:// or http://) at the OS level via the WebView bridge; only put trusted links in config.json. 4) Installation actions — setup.sh will compile Swift code (requires Xcode CLT) and pip-install 'websockets' into your Python environment; it also offers commands to create a LaunchAgent for auto-start. 5) Metadata inconsistency — the skill registry said 'no required config paths', but it expects your agents directory (~/.openclaw/agents) and a config.json; treat that as an undeclared requirement. If you need higher assurance, request or review the full server.py and index.html output (both included) line-by-line and confirm there are no unexpected outbound network calls in any truncated portions not shown.
Capability Analysis
Type: OpenClaw Skill Name: dynamic-island Version: 1.0.1 The bundle provides a macOS Dynamic Island-style desktop widget for monitoring OpenClaw agent statuses. It consists of a Python backend (server.py) that monitors local session logs in ~/.openclaw/agents and a Swift-based native UI (widget.swift) that renders status updates via a local WebSocket. While the tool requires file system access and compiles native code during setup, its behavior is transparent, well-documented, and strictly aligned with its stated purpose of real-time status visualization without any evidence of data exfiltration or malicious intent.
Capability Assessment
Purpose & Capability
The code, scripts, and SKILL.md align with the declared purpose: a macOS widget that monitors OpenClaw agent session JSONL files and presents status via a local HTTP/WebSocket UI and a native Swift panel. One mismatch: registry metadata lists 'Required config paths: none', but the runtime expects and reads the agents directory (default ~/.openclaw/agents) and a local config.json — this config path is effectively required for full functionality and should be declared.
Instruction Scope
SKILL.md directs running setup.sh and start.sh which compile the Swift widget, install the Python websockets package, and run a local server. The runtime (server.py) explicitly watches ~/.openclaw/agents/*/sessions/*.jsonl and extracts up to ~80 characters of message text to show in the UI. That behavior is consistent with the stated purpose but is privacy-relevant: the skill reads user agent session files and surfaces recent messages in the UI. The widget can also trigger opening configured Feishu (lark://) or other URLs via the WebView -> native bridge; that is expected for the clickable agent links but means the web UI can request the OS to open arbitrary URLs if misconfigured.
Install Mechanism
There is no remote download/install step in the provided install scripts — setup.sh uses local swiftc to compile widget.swift and pip3 to install the 'websockets' Python package (from PyPI). All files are included in the skill bundle. No external URLs, shorteners, or arbitrary archives are downloaded by the scripts.
Credentials
The skill does not request secrets or environment variables in the registry metadata. In practice the Swift widget reads an optional OPENCLAW_HTTP_PORT environment variable to override the HTTP port, and the server expects access to the user's agents directory (~/.openclaw/agents) and to create config.json in the skill directory. Reading session files is necessary for the stated function, but the metadata should have declared the config/path dependency. No unrelated credentials or external tokens are requested.
Persistence & Privilege
The skill does not request 'always: true' or other elevated platform privileges. It provides instructions for an optional LaunchAgent install (auto-start) via shell commands shown in the README and SKILL.md, but it does not perform persistent system changes automatically in the provided scripts. The skill writes PID files under /tmp while running and does not modify other skills' configs.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install dynamic-island
  3. After installation, invoke the skill by name or use /dynamic-island
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
- Added a setup.sh script for one-click installation, including environment checks, widget compilation, and configuration file creation. - Updated installation instructions in SKILL.md to use the new setup.sh, simplifying the setup process. - Expanded architecture section to include setup.sh and clarify its role. - No changes to the core functionality or configuration options.
v1.0.0
- Initial release of the Dynamic Island macOS desktop widget for OpenClaw. - Real-time status monitoring for multiple agents with frosted glass pill UI. - Supports five agent states: idle, alert, thinking, done, and error. - Hover to expand and view agent list with recent messages; click agent to jump to Lark chat. - Includes emolog icons, task completion effects, and flexible configuration via config.json.
Metadata
Slug dynamic-island
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Dynamic Island?

macOS desktop widget showing real-time status and recent messages of multiple OpenClaw agents with a frosted glass dynamic island UI. It is an AI Agent Skill for Claude Code / OpenClaw, with 71 downloads so far.

How do I install Dynamic Island?

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

Is Dynamic Island free?

Yes, Dynamic Island is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Dynamic Island support?

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

Who created Dynamic Island?

It is built and maintained by zhixiangshon-cell (@zhixiangshon-cell); the current version is v1.0.1.

💬 Comments