openclaw/docs/platforms/mac/bundled-gateway.md
Jon Shapiro 92697edb7c fix(venice): add compat settings to prevent HTTP 400 errors
Venice's API doesn't support certain OpenAI-compatible parameters that
Clawdbot sends by default:

- `store`: Venice returns HTTP 400 with no body when this is present
- `developer` role: Not supported by Venice's API

This adds VENICE_COMPAT settings (supportsStore: false,
supportsDeveloperRole: false) to all Venice model definitions, both
from the static catalog and dynamically discovered models.

Fixes issues reported in PR #1666 where users experienced silent
failures (HTTP 400, no body) when using Venice models.

Co-authored-by: jonisjongithub <jonisjongithub@users.noreply.github.com>
Co-authored-by: Clawdbot <bot@clawd.bot>
2026-01-26 17:56:01 -08:00

1.9 KiB
Raw Blame History

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

Gateway on macOS (external launchd)

Clawdbot.app no longer bundles Node/Bun or the Gateway runtime. The macOS app expects an external clawdbot CLI install, does not spawn the Gateway as a child process, and manages a peruser 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 clawdbot globally:

npm install -g clawdbot@<version>

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

Launchd (Gateway as LaunchAgent)

Label:

  • com.clawdbot.gateway (or com.clawdbot.<profile>)

Plist location (peruser):

  • ~/Library/LaunchAgents/com.clawdbot.gateway.plist (or ~/Library/LaunchAgents/com.clawdbot.<profile>.plist)

Manager:

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

Behavior:

  • “Clawdbot 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/clawdbot/clawdbot-gateway.log

Version compatibility

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

Smoke check

clawdbot --version

CLAWDBOT_SKIP_CHANNELS=1 \
CLAWDBOT_SKIP_CANVAS_HOST=1 \
clawdbot gateway --port 18999 --bind loopback

Then:

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