Apple Apps & ServicesDocumentedScanned

clawdbot-macos-build

Build the Clawdbot macOS menu bar app from source.

Share:

Installation

npx clawhub@latest install clawdbot-macos-build

View the full skill documentation and source below.

Documentation

Clawdbot macOS App Build

The macOS companion app provides menu-bar status, native notifications, and access to Mac hardware (camera, screen recording, system commands). This skill builds it from source.

Prerequisites

  • macOS (10.14+)
  • Xcode 15+ with Command Line Tools
  • Node.js >= 22
  • pnpm package manager
  • 30+ GB free disk space (Swift build artifacts)
  • Internet connection (large dependencies)

Quick Build

# Clone repo
cd /tmp && rm -rf clawdbot-build && git clone  clawdbot-build

# Install + build
cd /tmp/clawdbot-build
pnpm install
pnpm ui:build

# Build macOS app with ad-hoc signing
ALLOW_ADHOC_SIGNING=1 bash scripts/package-mac-app.sh

# Install to /Applications
cp -r dist/Clawdbot.app /Applications/Clawdbot.app

# Launch
open /Applications/Clawdbot.app

Build Steps Explained

1. Clone Repository

Clones the latest Clawdbot source from GitHub. This includes the macOS app source in apps/macos/.

2. Install Dependencies (pnpm install)

Installs Node.js dependencies for the entire workspace (~1 minute). Warnings about missing binaries in some extensions are harmless.

3. Build UI (pnpm ui:build)

Compiles the Control UI (Vite → TypeScript/React). Output goes to dist/control-ui/. Takes ~30 seconds.

5. Package macOS App (scripts/package-mac-app.sh)

Runs the full Swift build pipeline:
  • Fetches Swift package dependencies (SwiftUI libraries, etc.)
  • Compiles the macOS app for your architecture (arm64 for M1+, x86_64 for Intel)
  • Bundles resources (model catalog, localizations, etc.)
  • Code-signs the app
Signing options:
  • Ad-hoc signing (fastest): ALLOW_ADHOC_SIGNING=1 — good for local testing, app won't notarize for distribution
  • Developer ID signing (production): Set SIGN_IDENTITY="Developer ID Application: " if you have a signing certificate
This step takes 10-20 minutes depending on your Mac.

6. Install to /Applications

Copies the built app to the system Applications folder so it runs like any other macOS app.

7. Launch

Opens the app. On first run, you'll see permission prompts (Notifications, Accessibility, Screen Recording, etc.) — approve them for full functionality.

Troubleshooting

"Invalid tools version"

Swift build requires 6.2+. Update Xcode:
softwareupdate -i -a

"No signing identity found"

Use ad-hoc signing for local builds:
ALLOW_ADHOC_SIGNING=1 bash scripts/package-mac-app.sh

Swift compilation hangs or is very slow

  • Ensure Xcode is fully updated: xcode-select --install or update via App Store
  • Check disk space: df -h (need ~30GB free)
  • Close other apps to free RAM

App won't launch after build

Check that it's properly signed:
codesign -v /Applications/Clawdbot.app

If signing failed, rebuild with ALLOW_ADHOC_SIGNING=1.

What the App Does

  • Menu bar status — See Gateway health and receive notifications
  • Permission management — Owns TTC prompts for Notifications, Accessibility, Screen Recording, Microphone, etc.
  • Local/Remote modes:
- Local: Gateway runs on your Mac; app manages launchd service - Remote: App connects to Gateway on another machine (VPS, home server) via SSH/Tailscale; keeps your Mac accessible even while sleeping
  • Mac hardware access: Camera, screen recording, Canvas, voice wake-word
  • Deep linking: Trigger agent requests via clawdbot:// URL scheme
See the official docs:

Building for Distribution

For production distribution, you'll need:

  • Apple Developer ID certificate (paid)

  • Notarization credentials

  • See:


For personal use, ad-hoc signing is fine.

Next Steps

After the app launches:

  • Complete the permission checklist (TCC prompts)

  • Choose Local or Remote mode

  • If Local: ensure the Gateway is running (clawdbot gateway status)

  • Open Clawdbot.app menu bar icon to configure
  • Then from the terminal, you can manage the Gateway:

    clawdbot gateway status
    clawdbot gateway restart