CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

61

Quality

72%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Medium

Suggest reviewing before use

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/add-macos-statusbar/SKILL.md
SKILL.md
Quality
Evals
Security

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 --install

Then 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.

To uninstall, follow REMOVE.md.

Repository
nanocoai/nanoclaw
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.