Files
bot/docs/platforms/mac/bundled-gateway.md
zooqueenandHanzo Dev cbacae5efd chore: complete Hanzo Bot rebranding — purge all bot.molt legacy names
Replace all bot.molt.* identifiers with ai.hanzo.bot.* across:
- LaunchAgent labels (constants.ts + tests)
- iOS bundle IDs, dispatch queues, logger subsystems
- iOS fastlane Appfile (bot.molt.ios → ai.hanzo.bot.ios)
- iOS project.yml branding (display name → Hanzo Bot)
- macOS icon file rename (Bot.icns → HanzoBot.icns)
- appcast.xml title (Bot → Hanzo Bot)
- auto-response workflow (moltbook → off-topic)
- All English and Chinese documentation (32 doc files)
- scripts/restart-mac.sh launchd plist reference

Co-authored-by: Hanzo Dev <[email protected]>
2026-02-22 16:21:56 -08:00

1.9 KiB
Raw Permalink Blame History

summary, read_when, title
summary read_when title
Gateway runtime on macOS (external launchd service)
Packaging Hanzo Bot.app
Debugging the macOS gateway launchd service
Installing the gateway CLI for macOS
Gateway on macOS

Gateway on macOS (external launchd)

Hanzo Bot.app no longer bundles Node/Bun or the Gateway runtime. The macOS app expects an external bot CLI install, does not spawn the Gateway as a child process, and manages a per‑user launchd service to keep the Gateway running (or attaches to an existing local Gateway if one is already running).

Install the CLI (required for local mode)

You need Node 22+ on the Mac, then install bot globally:

npm install -g bot@<version>

The macOS app’s Install CLI button runs the same flow via npm/pnpm (bun not recommended for Gateway runtime).

Launchd (Gateway as LaunchAgent)

Label:

  • ai.hanzo.bot.gateway (or ai.hanzo.bot.<profile>; legacy com.bot.* may remain)

Plist location (per‑user):

  • ~/Library/LaunchAgents/ai.hanzo.bot.gateway.plist (or ~/Library/LaunchAgents/ai.hanzo.bot.<profile>.plist)

Manager:

  • The macOS app owns LaunchAgent install/update in Local mode.
  • The CLI can also install it: hanzo-bot gateway install.

Behavior:

  • “Hanzo Bot Active” enables/disables the LaunchAgent.
  • App quit does not stop the gateway (launchd keeps it alive).
  • If a Gateway is already running on the configured port, the app attaches to it instead of starting a new one.

Logging:

  • launchd stdout/err: /tmp/bot/bot-gateway.log

Version compatibility

The macOS app checks the gateway version against its own version. If they’re incompatible, update the global CLI to match the app version.

Smoke check

hanzo-bot --version

BOT_SKIP_CHANNELS=1 \
BOT_SKIP_CANVAS_HOST=1 \
hanzo-bot gateway --port 18999 --bind loopback

Then:

hanzo-bot gateway call health --url ws://127.0.0.1:18999 --timeout 3000