macOS utility that makes Xcode Intelligence and Agent Mode work with non-native LLM providers via a local OpenAI-compatible proxy.
Xcode's built-in Intelligence features only support a handful of providers natively. ProxyPilot runs a local proxy on your Mac that translates requests, letting you use any OpenAI-compatible provider (or Anthropic's API) with Xcode Intelligence and Agent Mode.
- macOS 15+
- Xcode with Intelligence enabled
First-time setup: Before building, read BUILDING.md to configure bundle identifiers and optional integrations (Sparkle, PostHog). The project ships with placeholder values that you'll need to replace.
ProxyPilot uses XcodeGen to generate its Xcode project.
# Install XcodeGen if you don't have it
brew install xcodegen
# Generate Xcode project
zsh scripts/update_xcodeproj.sh
# Open in Xcode
open ProxyPilot.xcodeprojBuild and run the ProxyPilot-macOS scheme.
Build a Release app bundle and install to /Applications/ProxyPilot.app:
zsh scripts/build_and_install.shProxyPilot also ships a CLI for headless/agent workflows:
cd ProxyPilotCLI
swift build -c release
# One-command Xcode Agent setup
.build/release/proxypilot setup xcodeSee ProxyPilotCLI/README.md for full CLI documentation.
- In ProxyPilot, set your upstream provider and API key, then click Start
- In Xcode -> Settings -> Intelligence -> Add a Model Provider:
- Choose Locally Hosted
- Port:
4000 - Description: any label (e.g.
ProxyPilot)
Xcode validates by calling GET /v1/models on the local proxy.
- Menu bar mode -- persistent status icon, Start/Stop proxy, Open Settings, Quit
- First-run onboarding + preflight -- guided setup checks with one-click fix actions
- Diagnostics bundle export -- redacted logs + environment manifest + copyable support summary
- Watchdog auto-recovery -- detects unexpected stops and retries startup with backoff
- Auto-start on login -- register via SMAppService (toggle in Settings)
- SSE streaming -- full
stream: truesupport for/v1/chat/completions - Multi-provider -- 9 upstream providers including direct Google Gemini support
- Anthropic API translation --
POST /v1/messagestranslated to OpenAI format, supports both buffered and streaming responses - Xcode Agent config -- one-click install for Claude Agent in Xcode routing through ProxyPilot
- Safety limits -- request/concurrency caps with explicit
413/429responses
| Provider | Type | API Key Required |
|---|---|---|
| z.ai | Cloud | Yes |
| OpenRouter | Cloud | Yes |
| OpenAI | Cloud | Yes |
| Google (Gemini) | Cloud | Yes |
| xAI | Cloud | Yes |
| Chutes | Cloud | Yes |
| Groq | Cloud | Yes |
| Ollama | Local | No |
| LM Studio | Local | No |
| Method | Path | Format | Description |
|---|---|---|---|
| GET | /v1/models |
OpenAI | Model list (always unauthenticated) |
| POST | /v1/chat/completions |
OpenAI | Chat completions (buffered + streaming) |
| POST | /v1/messages |
Anthropic | Translated to OpenAI upstream (buffered + streaming) |
ProxyPilot/ # macOS SwiftUI app
ProxyPilotCore/ # Cross-platform Swift package (shared proxy engine)
ProxyPilotCLI/ # CLI + MCP server
ProxyPilotTests/ # GUI test suite
Shared library used by both the GUI app and CLI:
- ProxyEngine -- SwiftNIO-based cross-platform proxy server
- Translation -- Anthropic-to-OpenAI request/response translation
- Models -- Upstream model metadata, provider definitions, model discovery
- Secrets -- SecretsProvider protocol with Keychain (macOS) and file-based implementations
- HTTPParsing -- Request parsing, auth validation, model filtering
SwiftUI menu bar app with:
LocalProxyServerusing Network framework (NWListener)- Sparkle for auto-updates
- Keychain-backed API key storage
- Per-provider configurable default models
ArgumentParser-based CLI with MCP server mode:
proxypilot start,stop,status,models,logsproxypilot setup xcode-- one-command Xcode Agent routingproxypilot serve --mcp-- MCP server for AI agent integration
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
This means you are free to use, modify, and distribute this software, including over a network, as long as you:
- Make your source code available under the same license
- Include the original copyright and license notice
- State any changes you made
See LICENSE for the full text.
Contributions are welcome! Please open an issue or pull request.
When contributing, please note:
- Run
zsh scripts/update_xcodeproj.shafter adding or removing Swift files - The project targets macOS 15+ with Swift 6
- ProxyPilotCore has its own test suite:
cd ProxyPilotCore && swift test