Ledge add-ons

Add-ons are small programs that give Ledge new abilities without a new version of Ledge. You install them from the Add-on Store in Settings, and anyone can build one with LedgeKit.

The three pieces

What it isWhere
Add-on StoreThe page in Ledge's Settings that lists published add-ons and installs themSettings → Add-on Store
LedgeKitThe Swift package add-ons are written with, and the ledgekit command that checks a manifestAmmyy9908/LedgeKit
LedgeAddOnsThe public repository of add-on source. Developers open pull requests here; merged add-ons are built and listed in the StoreAmmyy9908/LedgeAddOns

How an add-on works

An add-on is a folder ending in .ledgeaddon. It holds a manifest, addon.json, that says who made it and what it needs, an icon, and a native executable built with LedgeKit.

Ledge runs the executable when it needs the add-on: it writes one JSON request to the program's standard input and reads one JSON response back. Ledge draws everything you see. The add-on does the work behind it, such as asking Spotify whether a song is in your Liked Songs.

Spotify Likes

The first add-on is Spotify Likes. It puts the heart in Ledge's player for Spotify songs, so you can add the song that's playing to your Liked Songs or take it out. This used to be built into Ledge; it now ships on its own, and you only install it if you want it.

A second add-on, Notifications, is in development. It shows macOS notification banners in the notch. It isn't in the public catalogue yet.

Where things stand

LedgeKit is a developer preview at version 0.1.0. Today:

  • The Store lists every published add-on, and installs it after checking each file against the catalogue.
  • You can load a .ledgeaddon you built yourself from your Mac.
  • Ledge can run Spotify Likes, and Notifications, which is still in development. Other add-ons appear in the Store as needing a newer Ledge, and can't be installed yet.
  • Add-ons can't draw their own settings or controls yet. Ledge provides those for the capabilities it supports.