Help Wanted: Apple Developer ID Sponsorship
This project currently requires users to build the app from source because we don't have an Apple Developer ID certificate for code signing and notarization. Without proper signing, macOS Gatekeeper blocks downloaded apps.
If you have an Apple Developer account and would like to help sponsor code signing for this project, please open an issue or reach out! This would allow us to distribute pre-built binaries that work out of the box for all users.
A beautiful native macOS menu bar application for managing the AntiGravity Claude Proxy server.
This app is a convenient wrapper around antigravity-claude-proxy, providing an easy-to-use menu bar interface to start, stop, and configure your proxy server. No need to deal with terminal commands – just click and go!
Built with Swift and SwiftUI, it offers a native macOS experience.
- 🎯 Native macOS Experience - Clean, native SwiftUI interface that feels right at home on macOS
- 🚀 One-Click Server Management - Start/stop the antigravity-claude-proxy server from your menu bar
- ⚡ Installation Check - Automatically detects if antigravity-claude-proxy is installed with helpful guidance if not
- 📋 Installation Instructions - Quick access to installation guide via menu bar or settings
- 🔄 Auto-start - Optionally start the server automatically when the app launches
- 🌐 Quick WebUI Access - Open the proxy web interface with one click
- ⚙️ Configurable Port - Set custom port for the proxy server (default: 8080)
- 🎛️ Account Selection Strategy - Choose between Hybrid, Sticky, or Round-Robin for multi-account load balancing
- 🔔 Notifications - Get notified when the server starts, stops, or encounters errors
- 🚦 Status Indicator - Menu bar icon shows server status (bolt icon: green when running, gray when stopped)
- 🎨 Beautiful Icons - Custom icons with template rendering for perfect menu bar integration
- 💾 Launch at Login - Start the app automatically when you log in to macOS
antigravity-claude-proxy npm package to be installed separately. The app will guide you through installation if it's not detected.
Install antigravity-claude-proxy globally:
npm install -g antigravity-claude-proxyOr use it via npx (the app will detect and use npx if the global package is not found).
For more information, see the antigravity-claude-proxy installation guide.
Since this app is not code-signed with an Apple Developer ID, you'll need to build it yourself. Don't worry - it's straightforward!
- macOS 13.0 or later
- Xcode Command Line Tools (
xcode-select --install) - Swift 5.9+
# Clone the repository
git clone https://github.com/IrvanFza/antigravity-claude-proxy-bar.git
cd antigravity-claude-proxy-bar
# Build and install to /Applications
make install
# Launch the app
open "/Applications/AntiGravity Claude Proxy.app"# Build the app bundle (creates "AntiGravity Claude Proxy.app" in current directory)
make build
# Run directly without installing
make run- Launch AntiGravity Claude Proxy - you'll see a menu bar icon (bolt)
- If antigravity-claude-proxy is not installed, you'll see a notification with instructions
- Once installed, click the menu bar icon and select "Start Server" (or press ⌘S)
- The icon will turn green when the server is running
| Menu Item | Shortcut | Description |
|---|---|---|
| Status | - | Shows current server status and port number |
| Start/Stop Server | ⌘S | Toggle the proxy server on/off |
| Open WebUI | ⌘O | Opens the web interface in your default browser |
| Installation Instructions | ⌘I | Opens the antigravity-claude-proxy installation guide |
| Settings... | ⌘, | Opens the settings window |
| Quit | ⌘Q | Stops the server and exits the app |
Setup Information Section
- Explains that this app is a wrapper for antigravity-claude-proxy
- Shows installation status with checkmark when installed
- Provides quick access to installation guide
Server Settings
- Port: Configure the port number for the proxy server (default: 8080)
- Strategy: Choose how requests are distributed across multiple accounts:
- Hybrid (Default): Smart distribution combining health, rate limiting, and quota awareness
- Sticky: Stays on the same account to maximize cache hits, switches only when rate-limited
- Round-Robin: Cycles through accounts sequentially for even load distribution
- Changes require server restart to take effect
Startup Options
- Auto-start server: Automatically start the server when the app launches
- Launch at login: Start the app automatically when you log in to macOS
Actions
- Open WebUI: Launch the web interface (only enabled when server is running)
- Copy Server URL: Copy
http://localhost:PORTto clipboard - Show/Hide Logs: Toggle real-time server logs display
View real-time server output by clicking "Show Logs" in the settings window. Logs are color-coded:
- Normal output: Default text color
- Errors: Red text
- Maximum 500 lines kept in memory
The app uses the same configuration as the antigravity-claude-proxy package:
- Config file:
~/.config/antigravity-proxy/config.json - Accounts:
~/.config/antigravity-proxy/accounts.json
Refer to the antigravity-claude-proxy documentation for configuration options.
Contributions are welcome! Whether you're fixing bugs, adding features, improving documentation, or sharing ideas, your help is appreciated.
- Fork the repository and clone your fork
- Install dependencies - You'll need:
- macOS 13.0 or later
- Xcode Command Line Tools
- Swift 5.9+
antigravity-claude-proxynpm package for testing
- Make your changes in a new branch
- Test your changes thoroughly
- Submit a pull request with a clear description of what you've changed and why
# Quick development build (debug mode)
make dev
# Full release build
make build
# Install to /Applications for testing
make install
# Clean build artifacts
make clean
# Test compilation only
make test-build
# Run the app
make runantigravity-claude-proxy-bar/
├── src/
│ ├── Sources/
│ │ ├── main.swift # App entry point
│ │ ├── AppDelegate.swift # Menu bar and window management
│ │ ├── ServerManager.swift # Server process control & installation check
│ │ ├── SettingsView.swift # SwiftUI settings UI
│ │ ├── Constants.swift # App constants (URLs, etc.)
│ │ └── Resources/
│ │ ├── AppIcon.icns # App icon
│ │ ├── icon-active.png # Menu bar icon (server running)
│ │ └── icon-inactive.png # Menu bar icon (server stopped)
│ ├── Package.swift # Swift Package Manager config
│ └── Info.plist # macOS app metadata
├── create-app-bundle.sh # Build script
├── Makefile # Build automation
└── README.md # This file
- AppDelegate: Manages the menu bar item, settings window, and app lifecycle
- ServerManager: Controls the antigravity-claude-proxy process, checks installation status, and manages logs
- SettingsView: SwiftUI interface with native macOS design and real-time status updates
- Constants: Centralized constants including GitHub URLs for installation instructions
Installation Detection
The app intelligently searches for antigravity-claude-proxy in multiple locations:
- Common system paths (
/usr/local/bin,/opt/homebrew/bin,/usr/bin) - Node version managers (Volta, fnm, asdf, NVM)
- Global package managers (npm, pnpm, yarn)
- Falls back to
npxif the global package is not found
Architecture
- Built with Swift and SwiftUI for native macOS performance
- Uses Combine framework for reactive UI updates
- Process management via Foundation's Process API
Found a bug or have a feature request? Please open an issue with:
- Clear description of the issue or feature
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Your macOS version and app version
- Relevant logs or screenshots
- Native macOS menu bar application with SwiftUI
- One-click server start/stop with keyboard shortcuts
- Real-time server logs with color-coded errors
- Configurable port settings
- Auto-start server on app launch
- Launch at login support
- Installation detection and user guidance
- Quick WebUI access and URL copy
- macOS notifications for server events
- Support for multiple node version managers (Volta, fnm, asdf, NVM, npm, pnpm, yarn)
- Sparkle framework for auto-updates
- Node PATH fix for GUI app compatibility (v1.0.1)
- VERSION file for centralized version management
- Account selection strategy with Hybrid, Sticky, and Round-Robin options (v1.1.0)
- (P0) Apple Developer ID for code signing - Allow users to download and run the app directly without building from source
- (P1) Add support for more node version managers (mise, proto, nodenv, n)
- (P1) Add port-in-use check with helpful error message
- (P1) Improve error handling and logging
See TODO.md for detailed implementation notes.
This app is built as a native macOS wrapper around antigravity-claude-proxy, an excellent proxy server for Claude AI.
Special thanks to:
- antigravity-claude-proxy - The core proxy server that powers this application
- VibeProxy - The inspiration for this project. The entire app structure, build setup, and code architecture were adapted from VibeProxy's excellent implementation.
Without these two excellent projects, this app wouldn't exist. Thank you to the maintainers and contributors of both projects!
MIT License - see LICENSE file for details
Made with ⚡ by IrvanFza

