AI Workspace macOS Menu Bar App
Minimal SwiftUI MenuBarExtra app for controlling local AI Workspace services.
The app is intentionally a thin UI over the service manager. It reads live status from:
python3 scripts/aiw/services.py status --profile fidelity --json
and sends lifecycle actions through scripts/aiw/services.py.
Build
swift build --package-path apps/mac/AIWorkspace
Package as .app
apps/mac/AIWorkspace/scripts/package-app.sh
Install to ~/Applications/AIWorkspace.app:
apps/mac/AIWorkspace/scripts/package-app.sh --install
The script defaults to the per-user install location because this workspace is a
developer-local utility and frequent rebuilds should not require sudo. To
install system-wide instead, pass an explicit install directory:
INSTALL_DIR=/Applications apps/mac/AIWorkspace/scripts/package-app.sh --install
APP_PATH=/Applications/AIWorkspace.app apps/mac/AIWorkspace/scripts/install-start-at-login.sh
Avoid keeping both ~/Applications/AIWorkspace.app and
/Applications/AIWorkspace.app installed unless you are intentionally comparing
builds. They share the same bundle identifier (com.aiworkspace.menu) and can
confuse LaunchServices, login item registration, and which copy opens at login.
If both exist, quit any running AI Workspace instances and remove the stale copy.
Build a DMG
apps/mac/AIWorkspace/scripts/build-dmg.sh
This creates:
apps/mac/AIWorkspace/dist/AIWorkspace.dmg
The DMG contains AIWorkspace.app and an Applications shortcut for drag-and-drop installation.
One-step local install, optionally enabling start at login and opening the app:
apps/mac/AIWorkspace/scripts/install.sh --start-at-login --open
Start at login
Preferred: open the installed app and use the Start at Login toggle in the UI. The app uses macOS SMAppService for login item registration.
Development fallback after installing the app bundle:
apps/mac/AIWorkspace/scripts/install-start-at-login.sh
To remove the login item:
apps/mac/AIWorkspace/scripts/uninstall-start-at-login.sh
Run during development
swift run --package-path apps/mac/AIWorkspace AIWorkspace
Current actions
- Refresh status
- Start Fidelity services
- Stop Fidelity services
- Restart Context MCP
- Open Mattermost through the service manager
- Open Mattermost through the local proxy-managed launcher
- Run Doctor
- Copy Doctor JSON
- Copy Photo Inbox URL
- Copy recent logs
- Open MCP Health
- Open logs folder
- Open project knowledge
Notes
- This is not yet packaged as a signed
.appbundle. - Start at login should be implemented later through a LaunchAgent or app login item.
- Start at Login is available in the app UI through
SMAppService. The LaunchAgent scripts are retained as development fallback utilities. - The app should remain a UI layer; service lifecycle remains in
scripts/aiw/services.py.