ShipZen Security and Capability Boundaries
Last updated: 2026-08-31
ShipZen is a local-first macOS client for App Store Connect. This page explains the published architecture in concrete terms: where credentials live, which connections are direct, which named services receive limited data, and which Apple workflows remain on the App Store Connect website.
Credentials and direct Apple requests
-
Secrets stay in the macOS Keychain. ShipZen stores the App Store
Connect
.p8private key, AI provider keys, ChatGPT sign-in tokens, and the local MCP token in device-only Keychain entries that do not sync through iCloud Keychain. - The Apple private key does not leave your Mac. ShipZen uses it locally to sign short-lived authentication tokens. App Store Connect requests then go from the app to Apple's API and Apple-operated upload or download addresses. No ShipZen server proxies those requests or receives your App Store Connect credentials or app data.
- AI is optional and direct. If you enable AI features, ShipZen connects from your Mac to the OpenAI, Anthropic, or ChatGPT service you select. The provider receives the content you choose to process under that provider's terms; ShipZen does not proxy or resell the request.
- Local MCP access is opt-in. The optional MCP server listens on localhost, requires a per-install bearer token, and leaves every MCP write waiting for confirmation in ShipZen.
Capability matrix
ShipZen works within Apple's official App Store Connect API. A feature being visible in Apple's website does not mean Apple exposes it through that API.
| Area | ShipZen handles | Web-only or outside ShipZen |
|---|---|---|
| Metadata and localization | Read and edit supported version fields across locales, validate limits, and show diffs before metadata saves. | Any field or action Apple has not exposed through the official API. |
| Screenshots and URLs | Upload and reorder screenshots, check their specifications, and test your support, marketing, and privacy URLs. | Unsupported product-page surfaces remain in App Store Connect. |
| TestFlight | View builds, groups, testers, and feedback, with supported basic beta-review actions. | Apple-only or unsupported beta workflows. |
| Reviews | Read customer reviews, draft responses, and post supported responses. | Any review operation Apple does not expose through the API. |
| Reports and pricing | Display available analytics, sales, and financial reports and manage supported territory pricing. Some reports require a Vendor Number and suitable access. | Unsupported finance or pricing operations. |
| Submission checks | Check supported metadata, URL, screenshot, build, in-app-purchase, age-rating, and export-compliance signals before submission. | Apple makes the authoritative App Review and submission decisions. |
| App privacy | Explain the boundary and route you to the relevant Apple page. | Privacy nutrition-label declarations; Apple provides no official public write API for them. |
| Account and legal setup | Surface available status signals and provide a checklist with links to the right Apple pages. | Enrollment, agreements, tax, banking, and other legal actions use Apple's web flows; D-U-N-S is handled with Dun & Bradstreet when required. |
ShipZen does not submit hidden AI changes. AI and MCP writes wait for confirmation, and metadata changes show a full diff. Some direct manual actions, including screenshot uploads or reordering, tester invitations, and a first review response, can apply when you take the action rather than through a diff screen.
Named external services
“Local-first” does not mean “never connects to a network.” In addition to direct Apple and optional AI-provider requests, ShipZen's published privacy model names these limited connections:
- RevenueCat validates ShipZen Pro purchases using a random identifier, App Store receipt and transaction data, and basic app and device information.
- Sentry receives content-free crash, hang, error, and session-health reports for diagnostics.
- PostHog receives a small set of content-free usage events only if you turn usage analytics on.
- open.er-api.com supplies exchange rates through requests that carry no credentials, identifiers, metadata, or personal data.
- Your own app URLs receive plain requests when the validator checks whether the support, marketing, and privacy-policy addresses respond.
The website is separate from the macOS app. It is hosted on Cloudflare Pages. If you join the waitlist, the site stores your email, signup time, and signup section; a separate IP record is kept for up to one hour for abuse rate-limiting, and Resend delivers the signup notification. The Privacy Policy is the detailed source for data categories, purposes, retention, and user choices.
Evidence boundary
This is an architecture and capability disclosure based on ShipZen's current published behavior. It is not a claim of third-party certification, a penetration-test report, or a guarantee that software or an outside service cannot fail. Apple's API and the named providers can change. Material changes to ShipZen's handling of data belong in the Privacy Policy; corrections can be sent to [email protected].