Skip to main content
macOS · Free

Rotate your Apple OAuth key in 30 seconds.

Sign in with Apple forces you to regenerate the client secret every 6 months. This native macOS app generates it locally from your .p8—nothing is sent to an Apple Keys server for signing.

Apple Keys: What's new changelog (v1.1.0) and release timeline in the macOS app

Compare to manual

7 steps in the portal. 3 in Apple Keys.

Same outcome. A 130× speedup. Same `.p8`, same ES256-signed JWT — just without the dread.

#
Apple Developer portal
Apple Keys
1

Log into Apple Developer portal & find your Services ID

5 min

Open Apple Keys & pick your saved profile

5 sec
2

Locate Key ID, Team ID, Services ID across pages

5 min

handled automatically

3

Download (or re-download) the .p8 signing key

3 min

Drag the .p8 into the drop zone

5 sec
4

Read Apple's JWT spec — header, claims, ES256

10 min

handled automatically

5

Write or copy a Python/Ruby script using PyJWT or jwt gem

10 min

handled automatically

6

Run the script, debug ES256 / PEM errors

8 min

Click Generate — JWT appears, signed with ES256

1 sec
7

Copy the JWT into env vars on every server & redeploy

4 min

Copy to clipboard, paste into your secret manager

10 sec
Total
~45 min
~21 sec

Times are honest estimates for a developer who's done it once before. First-timers usually spend 90+ minutes on the manual flow.

Live demo

Drop. Click. Done.

Watch a full client secret rotation in under three seconds.

Apple Keys

Signing key

AuthKey_ABC123DEF4.p8

241 bytes · PKCS#8

Drop your .p8 here

Key ID

ABC123DEF4

Team ID

9Y876ZABC1

Services ID

com.aiherrera.app

client_secret (JWT)

// awaiting signing key
Waiting for signature

Illustration only—not the downloadable Mac app.

Built for developers who'd rather ship.

No SaaS upload

Signing runs locally in the sandboxed macOS app. Apple Keys never receives your `.p8`—there is no server-side key handling.

30-second rotation

Drop key, generate, copy JWT—with decoded payloads and expiry so you’re never guessing.

Profiles that scale

Dedicated profile editor: Key ID, Team ID, Services ID, tags, and notes across prod/staging—stored only on your Mac.

Rotation history

Track runs and expiry thresholds. Add rotation notes, export snapshots—exported JSON may include client secrets (treat exports like passwords).

Three steps. That's it.

01

Add your Apple identifiers

Use the profile editor: Key ID, Team ID, Services ID, plus optional tags and notes—saved only on this device.

02

Load your .p8

Drag your `.p8` from Apple—or open it from disk. Optionally store it securely in Keychain so you skip reloading next time.

03

Generate & copy

One click produces a fresh ES256 JWT with clear expiry. Copy it into your env or secret manager.

Your secrets stay yours.

No telemetry-backed key handling by us. Signing happens inside the sandboxed macOS app—offline-capable—with optional Keychain-backed storage for identifiers and, optionally, your `.p8`. Successful generations appear in rotation history so you can copy again later; exported JSON snapshots can include client secrets—treat backups like credential exports.

Sandboxed Mac appNo uploads for signingIdentifiers in KeychainFree download

What's new.

You're on v1.1.0 — download builds align with GitHub Releases.

Pulled from GitHub Releases.

  1. v1.1.0· May 2026Latest
    • See release notes on GitHub.
  2. v1.0.1· April 2026Release
    • Updated the Mac app icon and Dock / Finder appearance
    • Added a small script so future icon changes stay consistent
    • Dropped unused web placeholder assets from the bundle
  3. v1.0.0· April 2026Release
    • Initial public release
    • Drag-and-drop .p8 signing with ES256
    • Multiple profiles (Key ID / Team ID / Services ID)
    • Rotation history with expiry tracking
    • Universal binary — Apple Silicon + Intel

Questions, answered.

Stop dreading rotation day.

Free forever. Download once for your Mac — optional Keychain storage, reminders, and local rotation history included.

Built by Alain Iglesias · Love it? Sponsor