add-macos-statusbar
Add a macOS menu bar status indicator for NanoClaw. Shows a bolt icon with a green/red dot indicating whether NanoClaw is running, with Start, Stop, and Restart controls. macOS only.
- License 许可
- MIT
- 最近更新
- 2026-10-30
- Stars
- ★ 5
- Forks
- 2
01 前言 Front Matter
- name
- add-macos-statusbar
- description
- Add a macOS menu bar status indicator for NanoClaw. Shows a bolt icon with a green/red dot indicating whether NanoClaw is running, with Start, Stop, and Restart controls. macOS only.
02 资源文件 1
- 其他add/src/statusbar.swift5.1 KB
03 SKILL.md 正文
Add macOS Menu Bar Status Indicator
Adds a persistent menu bar icon that shows NanoClaw's running status and lets the user start, stop, or restart the service — similar to how Docker Desktop appears in the menu bar.
macOS only. Requires Xcode Command Line Tools (swiftc).
Phase 1: Pre-flight
Check platform
If not on macOS, stop and tell the user:
This skill is macOS only. The menu bar status indicator uses AppKit and requires
swiftc(Xcode Command Line Tools).
Check for swiftc
which swiftc
If not found, tell the user:
Xcode Command Line Tools are required. Install them by running:
xcode-select --installThen re-run
/add-macos-statusbar.
Check if already installed
launchctl list | grep com.nanoclaw.statusbar
If it returns a PID (not -), tell the user it's already installed and skip to Phase 3 (Verify).
Phase 2: Compile and Install
Compile the Swift binary
The source lives in the skill directory. Compile it into dist/:
mkdir -p dist
swiftc -O -o dist/statusbar "${CLAUDE_SKILL_DIR}/add/src/statusbar.swift"
This produces a small native binary at dist/statusbar.
On macOS Sequoia or later, clear the quarantine attribute so the binary can run:
xattr -cr dist/statusbar
Create the launchd plist
Determine the absolute project root and home directory:
pwd
echo $HOME
Create ~/Library/LaunchAgents/com.nanoclaw.statusbar.plist, substituting the actual values
for {PROJECT_ROOT} and {HOME}:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.nanoclaw.statusbar</string>
<key>ProgramArguments</key>
<array>
<string>{PROJECT_ROOT}/dist/statusbar</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>EnvironmentVariables</key>
<dict>
<key>HOME</key>
<string>{HOME}</string>
</dict>
<key>StandardOutPath</key>
<string>{PROJECT_ROOT}/logs/statusbar.log</string>
<key>StandardErrorPath</key>
<string>{PROJECT_ROOT}/logs/statusbar.error.log</string>
</dict>
</plist>
Load the service
launchctl load ~/Library/LaunchAgents/com.nanoclaw.statusbar.plist
Phase 3: Verify
launchctl list | grep com.nanoclaw.statusbar
The first column should show a PID (not -).
Tell the user:
The bolt icon should now appear in your macOS menu bar. Click it to see NanoClaw's status and control the service.
- Green dot — NanoClaw is running
- Red dot — NanoClaw is stopped
Use Restart after making code changes, and View Logs to open the log file directly.
Removal
launchctl unload ~/Library/LaunchAgents/com.nanoclaw.statusbar.plist
rm ~/Library/LaunchAgents/com.nanoclaw.statusbar.plist
rm dist/statusbar
04 同仓库更多 Skills
whatsapp-formatting
Format messages for WhatsApp, including mentions that render as real WhatsApp tags. Use when responding in a WhatsApp conversation (platform_id / chatJid ends with @s.whatsapp.net or @g.us).
welcome
Introduce yourself to a newly connected channel. Triggered automatically when a channel is first wired. Send a friendly greeting and brief overview of what you can do.
vercel-cli
Deploy apps to Vercel. Use when asked to deploy, ship, or publish a web application, or manage Vercel projects, domains, and environment variables.
slack-formatting
Format messages for Slack using mrkdwn syntax. Use when responding to Slack channels (folder starts with "slack_" or JID contains slack identifiers).
self-customize
Customize your own agent — add capabilities, install packages, add MCP servers, edit code or CLAUDE.md. Use when the user asks you to add a feature, install a tool, or modify how you work. For non-trivial code changes, delegate to a builder agent via create_agent.
onecli-gateway
OneCLI Gateway: transparent HTTPS proxy that injects stored credentials into outbound calls. You MUST use this skill when the user asks you to read emails, check calendar, access GitHub repos, create issues, check Stripe payments, or interact with ANY external service or API. Do NOT use browser extensions or OAuth CLI tools. Make HTTP requests directly; the gateway injects credentials automatically.