GitHunt
SK

Skyline-23/Applepie-RPC

Applepie

Applepie icon

macOS menu bar app that publishes now-playing info to Discord Rich Presence.

Download · Homebrew · Development

Applepie pulls playback metadata from:

  • Your Mac (Music.app)
  • AirPlay targets like HomePod / Apple TV (via pyatv through PylibKit)

Then it keeps your Discord activity updated with track details and playback progress.

Features

  • Discord Rich Presence with track title, artist, album, and artwork
  • Playback progress bar (position and duration)
  • AirPlay device selection + pairing flow for protected devices
  • Adjustable update interval
  • Clear cached pairing credentials

Install

  1. Download the latest DMG from the GitHub Releases page.
  2. Move Applepie-RPC.app into /Applications.
  3. Launch Applepie and grant permissions when prompted.

Homebrew

Homebrew tap is hosted in a dedicated repo:
https://github.com/Skyline-23/homebrew-applepie-rpc

brew tap skyline-23/applepie-rpc
brew install --cask applepie-rpc

To upgrade:

brew upgrade --cask applepie-rpc

Updates (Sparkle)

Applepie supports automatic updates (Sparkle) via:
https://github.com/Skyline-23/Applepie-RPC/releases/latest/download/appcast.xml

To avoid conflicts with cask-managed installs, Applepie prefers Homebrew as the update authority when it detects a Homebrew cask install.

Requirements

  • macOS
  • Discord desktop app running
  • Apple Music authorization (prompted at launch)
  • Accessibility permission (prompted at launch)
  • AirPlay devices on the same network (for HomePod/Apple TV)

Usage

  • Click the menu bar icon to open the UI.
  • Select an AirPlay device from the Device menu.
  • If pairing is required, enter the PIN shown on the device.
  • Adjust the update interval slider to control polling.
  • Use Clear Cache to remove stored pairing credentials.

Troubleshooting

  • No progress bar: some devices do not expose duration; try another target or re-pair.
  • RPC not updating: confirm Discord is running and check logs for [DiscordService].
  • Pairing issues: Clear Cache and retry pairing.

Notes

  • Pairing credentials are stored under ~/Library/Application Support/Applepie-RPC/pyatv_storage.json.
  • The Python runtime is bundled via PylibKit; no system Python setup is required.

Development

  1. Open Applepie-RPC.xcodeproj in Xcode.
  2. Build and run the Applepie-RPC target.
  3. Grant permissions when prompted.

Release Flow

  1. Create a tag like v1.2.3 and push it.
  2. GitHub Actions builds the app, creates a DMG, generates appcast.xml, and publishes a release.
  3. The workflow updates Skyline-23/homebrew-applepie-rpc cask version/sha automatically.
  4. Clients will see the update once the tag and appcast are live.

Tag naming follows SemVer: vMAJOR.MINOR.PATCH (3-part). For hotfixes, bump PATCH. Legacy 4-part tags exist; avoid creating new ones.

Required GitHub secrets

  • CERT_P12_BASE64, CERT_PASSWORD, KEYCHAIN_PASSWORD
  • APPLE_ID, APPLE_PASSWORD, TEAM_ID
  • APPSTORE_PRIVATE_KEY_P8, APPSTORE_KEY_ID
  • SPARKLE_ED25519_PRIVATE_KEY (matches SUPublicEDKey in Info.plist)

Languages

Python54.4%Swift37.7%C6.2%Cython0.7%Shell0.5%Ruby0.1%PLSQL0.1%Makefile0.1%Motoko0.0%HTML0.0%C++0.0%CSS0.0%JavaScript0.0%PowerShell0.0%XSLT0.0%Batchfile0.0%VBScript0.0%

Contributors

Created April 18, 2025
Updated March 21, 2026