@ciderapp/pluginkit is the open source plugin API for Cider.
It is the public bridge between a plugin and the closed source Cider frontend. The package does not reimplement Cider; it exposes the supported host APIs, Vue helpers, playback controls, context menu builders, dialog helpers, and plugin-scoped utilities that Cider provides at runtime.
If you are building a plugin, start with docs/API Documentation.md.
- Cider is the host application.
- PluginKit is the supported API surface exposed to plugins.
- The host injects runtime objects such as
window.__PLUGINSYS__,window.CiderApp, andwindow.CiderAudio. - Most helpers in this package are thin wrappers around those host objects.
import{definePluginContext,AppleMusic,addMainMenuEntry,subscribeEvent,useMessageListener,}from"@ciderapp/pluginkit";constplugin=definePluginContext({setup(){},name: "Example Plugin",identifier: "example-plugin",description: "Example plugin for Cider",version: "1.0.0",author: "You",repo: "https://github.com/you/example-plugin",});AppleMusic.playPause();constremoveMenuEntry=addMainMenuEntry({label: "Example action",onClick: ()=>console.log("Clicked"),});subscribeEvent("app:ready",()=>{console.log("Cider is ready");});useMessageListener("example:ping",(event)=>{console.log("Received",event);});- Install the latest LTS version of Node.js.
- Enable Corepack with
corepack enable. - Install dependencies with
pnpm install. - Run the local test and typecheck loop with
pnpm dev.
- Use this repository for PluginKit bugs, missing APIs, and integration issues with Cider's plugin host.
- Do not report plugin-specific bugs here; report those to the plugin author.
Published under the MIT license.