/Catalogue/Prompt/nanocoai/nanocoai-nanoclaw-add-macos-statusbar

Origin: github

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.

by nanocoai · updated 22h ago · imported from GitHub

Installs0+0/7d
Security score40/100
Retention 14d0%
GitHub stars30.8K

Skill logic

Execution graph
User message
Prompt rewrites behaviour
Response

SKILL.md

View on GitHub ↗

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.

Discussion

No comments yet — start the thread.

Sign in to join the discussion.

/More from nanocoai/nanoclaw

nanocoai· 22h agoCommunity
add-dashboard

Prompts · TypeScript · v0.1.0

Add a monitoring dashboard to NanoClaw. Installs @nanoco/nanoclaw-dashboard and a pusher that sends periodic JSON snapshots.

#ai-agents#ai-assistant#claude-code

0 30.8K
nanocoai· 22h agoCommunity
nanoclaw

MCP servers · TypeScript · v0.1.0

A lightweight alternative to OpenClaw that runs in containers for security. Connects to WhatsApp, Telegram, Slack, Discord, Gmail and other messaging apps,, has memory, scheduled jobs, and runs directly on Anthropic's Agents SDK

#ai-agents#ai-assistant#claude-code

0 30.8K
nanocoai· 22h agoCommunity
add-anydoc

Prompts · TypeScript · v0.1.0

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when agents need to read attached Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, or text-based PDF files without uploading them to a hosted parser.

#ai-agents#ai-assistant#claude-code

0 30.8K
nanocoai· 22h agoCommunity
add-atomic-chat-tool

Prompts · TypeScript · v0.1.0

Add Atomic Chat MCP server so the container agent can call local models served by the Atomic Chat desktop app via its OpenAI-compatible API.

#ai-agents#ai-assistant#claude-code

0 30.8K