appkit-menu-bar-builder

SkillDev tools

Generate NSMenu and NSStatusItem configurations for macOS menu bar applications

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the appkit-menu-bar-builder skill

What this skill tells your AI

The instructions your AI receives, as published by a5c-ai/babysitter in library/specializations/desktop-development/skills/appkit-menu-bar-builder/SKILL.md and read by ahel’s review.

Generate NSMenu and NSStatusItem configurations for macOS menu bar applications. This skill creates menu bar apps with proper status items, menus, and SwiftUI integration.

Capabilities

  • Create NSStatusItem menu bar apps
  • Generate NSMenu configurations
  • Integrate SwiftUI popovers with AppKit
  • Handle menu item actions
  • Configure keyboard shortcuts
  • Support dynamic menu updates
  • Handle light/dark mode icons
  • Generate agent app configurations (LSUIElement)

Input Schema

{
  "type": "object",
  "properties": {
    "projectPath": { "type": "string" },
    "appType": { "enum": ["menu-only", "popover", "window-and-menu"] },
    "menuStructure": { "type": "array" },
    "iconType": { "enum": ["system", "custom", "dynamic"] },
    "useSwiftUI": { "type": "boolean", "default": true }
  },
  "required": ["projectPath"]
}

Generated Code

import AppKit
import SwiftUI

class StatusBarController {
    private var statusItem: NSStatusItem
    private var popover: NSPopover

    init() {
        statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
        popover = NSPopover()
        popover.contentSize = NSSize(width: 300, height: 400)
        popover.behavior = .transient
        popover.contentViewController = NSHostingController(rootView: ContentView())

        if let button = statusItem.button {
            button.image = NSImage(systemSymbolName: "star.fill", accessibilityDescription: "App")
            button.action = #selector(togglePopover)
            button.target = self
        }
    }

    @objc func togglePopover() {
        if popover.isShown {
            popover.performClose(nil)
        } else if let button = statusItem.button {
            popover.show(relativeTo: button.bounds, of: button, preferredEdge: .minY)
        }
    }
}

Related Skills

  • swiftui-view-generator
  • macos-entitlements-generator

Signals

GitHub stars
2k
Forks
112
Last commit
Sep 2026
Advanced
Item type
skill
Key
appkit-menu-bar-builder
Source
github.com/a5c-ai/babysitter