{"slug":"add-macos-statusbar","title":"add-macos-statusbar","summary":"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.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-08-24T05:37:17.033453Z","repo":{"url":"https://github.com/nanocoai/nanoclaw","stars":30867,"forks":12793,"license":"MIT","updatedAt":"2026-10-01T15:15:04Z"},"bodyHtml":"<hr>\n<h2>name: add-macos-statusbar\ndescription: 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.</h2>\n<h1>Add macOS Menu Bar Status Indicator</h1>\n<p>Adds a persistent menu bar icon that shows NanoClaw's running status and lets the user\nstart, stop, or restart the service — similar to how Docker Desktop appears in the menu bar.</p>\n<p><strong>macOS only.</strong> Requires Xcode Command Line Tools (<code>swiftc</code>).</p>\n<h2>Phase 1: Pre-flight</h2>\n<h3>Check platform</h3>\n<p>If not on macOS, stop and tell the user:</p>\n<blockquote>\n<p>This skill is macOS only. The menu bar status indicator uses AppKit and requires <code>swiftc</code> (Xcode Command Line Tools).</p>\n</blockquote>\n<h3>Check for swiftc</h3>\n<pre><code>which swiftc\n</code></pre>\n<p>If not found, tell the user:</p>\n<blockquote>\n<p>Xcode Command Line Tools are required. Install them by running:</p>\n<pre><code>xcode-select --install\n</code></pre>\n<p>Then re-run <code>/add-macos-statusbar</code>.</p>\n</blockquote>\n<h3>Check if already installed</h3>\n<pre><code>launchctl list | grep com.nanoclaw.statusbar\n</code></pre>\n<p>If it returns a PID (not <code>-</code>), tell the user it's already installed and skip to Phase 3 (Verify).</p>\n<h2>Phase 2: Compile and Install</h2>\n<h3>Compile the Swift binary</h3>\n<p>The source lives in the skill directory. Compile it into <code>dist/</code>:</p>\n<pre><code>mkdir -p dist\nswiftc -O -o dist/statusbar \"${CLAUDE_SKILL_DIR}/add/src/statusbar.swift\"\n</code></pre>\n<p>This produces a small native binary at <code>dist/statusbar</code>.</p>\n<p>On macOS Sequoia or later, clear the quarantine attribute so the binary can run:</p>\n<pre><code>xattr -cr dist/statusbar\n</code></pre>\n<h3>Create the launchd plist</h3>\n<p>Determine the absolute project root and home directory:</p>\n<pre><code>pwd\necho $HOME\n</code></pre>\n<p>Create <code>~/Library/LaunchAgents/com.nanoclaw.statusbar.plist</code>, substituting the actual values\nfor <code>{PROJECT_ROOT}</code> and <code>{HOME}</code>:</p>\n<pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"&gt;\n&lt;plist version=\"1.0\"&gt;\n&lt;dict&gt;\n    &lt;key&gt;Label&lt;/key&gt;\n    &lt;string&gt;com.nanoclaw.statusbar&lt;/string&gt;\n    &lt;key&gt;ProgramArguments&lt;/key&gt;\n    &lt;array&gt;\n        &lt;string&gt;{PROJECT_ROOT}/dist/statusbar&lt;/string&gt;\n    &lt;/array&gt;\n    &lt;key&gt;RunAtLoad&lt;/key&gt;\n    &lt;true/&gt;\n    &lt;key&gt;KeepAlive&lt;/key&gt;\n    &lt;true/&gt;\n    &lt;key&gt;EnvironmentVariables&lt;/key&gt;\n    &lt;dict&gt;\n        &lt;key&gt;HOME&lt;/key&gt;\n        &lt;string&gt;{HOME}&lt;/string&gt;\n    &lt;/dict&gt;\n    &lt;key&gt;StandardOutPath&lt;/key&gt;\n    &lt;string&gt;{PROJECT_ROOT}/logs/statusbar.log&lt;/string&gt;\n    &lt;key&gt;StandardErrorPath&lt;/key&gt;\n    &lt;string&gt;{PROJECT_ROOT}/logs/statusbar.error.log&lt;/string&gt;\n&lt;/dict&gt;\n&lt;/plist&gt;\n</code></pre>\n<h3>Load the service</h3>\n<pre><code>launchctl load ~/Library/LaunchAgents/com.nanoclaw.statusbar.plist\n</code></pre>\n<h2>Phase 3: Verify</h2>\n<pre><code>launchctl list | grep com.nanoclaw.statusbar\n</code></pre>\n<p>The first column should show a PID (not <code>-</code>).</p>\n<p>Tell the user:</p>\n<blockquote>\n<p>The bolt icon should now appear in your macOS menu bar. Click it to see NanoClaw's status and control the service.</p>\n<ul>\n<li><strong>Green dot</strong> — NanoClaw is running</li>\n<li><strong>Red dot</strong> — NanoClaw is stopped</li>\n</ul>\n<p>Use <strong>Restart</strong> after making code changes, and <strong>View Logs</strong> to open the log file directly.</p>\n</blockquote>\n<p>To uninstall, follow <a href=\"REMOVE.md\">REMOVE.md</a>.</p>\n","files":[{"path":"add/src/statusbar.swift","sizeBytes":5262,"isText":false},{"path":"REMOVE.md","sizeBytes":547,"isText":true},{"path":"SKILL.md","sizeBytes":3125,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-08-24T05:38:49.832995Z","sha256":"35CE9780F40DA80B4E285A3420294B6640E3E82FC38C20F3BE60DB42800881F7","sizeBytes":3834},"review":null,"source":{"repositoryUrl":"https://github.com/nanocoai/nanoclaw","path":".claude/skills/add-macos-statusbar","license":"MIT","commit":"962d527cf20f82d84372ea8cd6ab30e9acbeb868","subtreeSha":"5B1C3E8BF60AF6C865F7B4B149FE8EFCC32CEE701D9B74D440A1885F387C6C52","lastSyncedAt":"2026-10-01T15:23:47.22384Z"},"reviewedAt":"2026-08-24T05:45:03.138696Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-macos-statusbar"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install nanocoai-nanoclaw@llmmart"},{"target":"git","command":"git clone https://github.com/nanocoai/nanoclaw.git"}]}