Files
fidelity-ai-workspace/core/services/menu-bar-app-design.md

2.3 KiB

AI Workspace Menu Bar App Design

Goal

Provide a small native macOS control surface for the AI Workspace Service Manager.

The app should not reimplement service logic. It should call the service manager/daemon API or CLI and display status, actions, and diagnostics.

  • SwiftUI MenuBarExtra app.
  • Local-only, no cloud dependency.
  • Start at login optional through LaunchAgent later.
  • Read-only status by default; explicit user actions for start/stop/restart.

Initial UI

AI Workspace ▾
  Profile: Fidelity

  Services
    ✓ Context MCP          Running
    ✓ Mattermost Proxy     Running
    ✓ Mattermost Desktop   Launched
    ✓ Photo Inbox          Running

  Actions
    Start Fidelity
    Stop Fidelity
    Restart Context MCP
    Open Mattermost
    Open Photo Inbox Folder
    Copy Photo Inbox Upload URL
    Open Project Knowledge
    Open Logs

  Diagnostics
    Run Doctor
    Copy Doctor JSON
    Show Recent Errors

  Settings
    Start at Login
    Open Config Folder

Backend Contract

The first version can shell out to:

python3 scripts/aiw/services.py status --profile fidelity
python3 scripts/aiw/services.py status --profile fidelity --json
python3 scripts/aiw/services.py doctor --profile fidelity --json
python3 scripts/aiw/services.py start --profile fidelity
python3 scripts/aiw/services.py stop --profile fidelity
python3 scripts/aiw/services.py restart aiw-context-mcp --profile fidelity

Use status --json for frequent UI refreshes and doctor --json for explicit diagnostics. Longer term, prefer a small local daemon HTTP/Unix-socket API so the UI does not parse terminal text.

Production-Ready Rules

  • Do not store secrets in the app bundle.
  • Do not expose services beyond localhost unless explicitly configured.
  • Show whether a process is managed or externally running.
  • Surface missing dependencies from doctor checks.
  • Never let the app promote project memory automatically.
  • Keep capture services and context MCP separate; the app only orchestrates lifecycle.

Implementation Phases

  1. CLI-backed SwiftUI menu bar app using status --json for live status and doctor --json for diagnostics.
  2. Add profile selector and service action buttons.
  3. Add LaunchAgent support for start at login.
  4. Replace shell parsing with a daemon API if daily use proves stable.