-
Notifications
You must be signed in to change notification settings - Fork 12
reference dependencies
DroidProxy has a deliberately small dependency surface: one Swift package, one vendored runtime binary, the macOS system frameworks, and a separate set of npm dependencies for the marketing website.
Declared in /Users/nikhilanand/droidproxy/src/Package.swift and pinned in
/Users/nikhilanand/droidproxy/src/Package.resolved.
| Dependency | Declared | Resolved | Purpose | Where used |
|---|---|---|---|---|
Sparkle (github.com/sparkle-project/Sparkle) |
from: "2.5.0" |
2.8.1 (revision 5581748cef2bae787496fe6d61139aebe0a451f6) |
macOS auto-update framework: appcast polling, EdDSA signature verification, and update installation. | Linked into the CLIProxyMenuBar executable target; Sparkle.framework is copied into Contents/Frameworks and signed by create-app-bundle.sh. Driven from /Users/nikhilanand/droidproxy/src/Sources/AppDelegate.swift. |
The package defines one executable product, CLIProxyMenuBar, targeting
.macOS(.v13) with swift-tools-version: 5.9. The Resources directory
(including config.yaml and the bundled binary) is declared as a copied
resource. A CLIProxyMenuBarTests test target is also defined.
The backend server is shipped as a prebuilt binary rather than a source dependency:
| Dependency | Version | Purpose | Where used |
|---|---|---|---|
cli-proxy-api (from router-for-me/CLIProxyAPI) |
Auto-bumped (latest upstream darwin_aarch64), about 40 MB |
The actual provider proxy: serves Claude / Codex / Gemini / Kimi OAuth traffic on 127.0.0.1:8318. |
Committed at /Users/nikhilanand/droidproxy/src/Sources/Resources/cli-proxy-api, copied into Contents/Resources/, code-signed, and managed as a child process by ServerManager. |
Notes:
- Upstream releases are downloaded only by the
/Users/nikhilanand/droidproxy/.github/workflows/update-cliproxyapi.ymlworkflow (12-hourly cron), which opens achore(deps): bump CLIProxyAPIpull request. The release build itself does not re-download it; it ships the committed binary and verifies its version from theCLIProxyAPI Version: <x.y.z>banner (read viacli-proxy-api -h). - See Deployment for the full auto-bump and release flow.
Imported across /Users/nikhilanand/droidproxy/src/Sources/**:
| Framework | Purpose |
|---|---|
| Cocoa | App entry point (main.swift) and AppDelegate AppKit lifecycle. |
| AppKit | Menu-bar UI, icon handling, and settings window chrome. |
| SwiftUI | Settings UI (SettingsView, LogoView). |
| Network | Raw TCP HTTP proxy in ThinkingProxy (NWListener / NWConnection). |
| ServiceManagement | Launch-at-login registration in SettingsView. |
| UserNotifications | User-facing notifications from AppDelegate. |
| WebKit | Embedded web views (auth / login flows) in AppDelegate. |
| Combine | Observable state in ServerManager and OAuthUsageTracker. |
The marketing site under /Users/nikhilanand/droidproxy/website is a separate
build, configured by /Users/nikhilanand/droidproxy/website/package.json. It is
independent of the app build and does not ship in the .app.
| Dependency | Version | Purpose | Where used |
|---|---|---|---|
react |
^19.0.0 |
UI library. | Website runtime. |
react-dom |
^19.0.0 |
React DOM renderer. | Website runtime. |
vite |
^6.0.0 |
Dev server and bundler (dev, build, preview scripts). |
Website build (dev dependency). |
typescript |
~5.7.0 |
Type checking; build runs tsc before vite build. |
Website build (dev dependency). |
@vitejs/plugin-react |
^4.3.0 |
Vite React integration. | Website build (dev dependency). |
@types/react |
^19.0.0 |
React type definitions. | Website build (dev dependency). |
@types/react-dom |
^19.0.0 |
React DOM type definitions. | Website build (dev dependency). |