#9131: feat: add macOS launcher app builder
scripts
stale
Cluster:
Gateway and macOS Improvements
## Summary
- Adds a simple AppleScript-based macOS launcher that starts the gateway and opens Control UI
- Includes build script and README for easy installation
## What it does
1. Checks if gateway is already running
2. If not, starts `openclaw gateway run` in the background
3. Opens http://127.0.0.1:18789/ in the browser
4. Shows a notification
## Usage
```bash
./scripts/macos-launcher/build.sh
# Creates ~/Desktop/OpenClaw.app
```
## Test plan
- [ ] Run `./scripts/macos-launcher/build.sh`
- [ ] Double-click the created app
- [ ] Verify gateway starts and Control UI opens
🤖 Generated with [Claude Code](https://claude.ai/code)
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
Adds a small macOS launcher under `scripts/macos-launcher/`:
- AppleScript app that tries to detect whether the gateway is running, start it in the background if not, then opens the Control UI URL and notifies the user.
- `build.sh` compiles the AppleScript to `OpenClaw.app` (optionally copying the existing `.icns` from `apps/macos/...`).
- README with build/install instructions.
Main functional concern: the launcher’s “is it running / did it start” logic is currently optimistic and can report success/open the UI even when the gateway didn’t actually start.
<h3>Confidence Score: 3/5</h3>
- Not safe to merge as-is due to launcher reliability issues in common setups.
- The changes are small and isolated, but the launcher can incorrectly skip starting the gateway (broad `pgrep -f` match) and can claim the gateway started even when it refused to start due to missing config/flags; both lead to a broken user experience for the primary use case.
- scripts/macos-launcher/OpenClaw.applescript
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
**Context used:**
- Context from `dashboard` - CLAUDE.md ([source](https://app.greptile.com/review/custom-context?memory=fd949e91-5c3a-4ab5-90a1-cbe184fd6ce8))
- Context from `dashboard` - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=0d0c8278-ef8e-4d6c-ab21-f5527e322f13))
<!-- /greptile_comment -->
Most Similar PRs
#8260: fix(macOS): gateway readiness detection + reversible Configure later
by xksteven · 2026-02-03
73.2%
#22304: Gateway: fix launchd start after stop
by apethree · 2026-02-21
69.6%
#18438: macOS: add in-app CLI + gateway install with reset support
by rimusz · 2026-02-16
68.7%
#12599: Fix gateway bind
by WeiKuo06 · 2026-02-09
67.5%
#18236: macOS daemon: bootstrap LaunchAgent on gateway start after stop
by agisilaos · 2026-02-16
67.3%
#12234: gateway: incident tracking, recover command, and ciao ERR_SERVER_CL...
by levineam · 2026-02-09
67.0%
#19229: feat: add Apple Container setup with Docker/Podman fallbacks
by navingate · 2026-02-17
67.0%
#10182: fix: skip non-openclaw LaunchAgents in doctor gateway scan
by Yida-Dev · 2026-02-06
67.0%
#11191: feat: REALLYopenClaw JAILBREAK - disable global gateway lock by def...
by latamapac · 2026-02-07
66.8%
#19969: feat: add per-release dual-lane release gate hunt toolkit
by vibecodooor · 2026-02-18
66.8%