MCPcopy Index your code
hub / github.com/ciderapp/CiderDeck

github.com/ciderapp/CiderDeck @v4.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.0.0 ↗ · + Follow
668 symbols 1,421 edges 52 files 35 documented · 5% updated 16d agov4.0.0 · 2026-06-21★ 33
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CiderDeck

CiderDeck

The official Stream Deck plugin for the Cider

Control playback, see what's playing, manage your queue and library, flip audio settings, and run a full Stream Deck + setup, all from your deck. CiderDeck talks to Cider's local API, so everything stays in sync with the app as it happens.

This is a ground-up rebuild of the original CiderDeck on Elgato's current Node SDK and Cider's V2 API. It installs as an update, so any buttons you already placed keep working.

What it does

Playback

Play/pause, next, previous, shuffle, and a three-state repeat. Put the album cover on a key, or use the Album Art Grid to spread one cover across a 2x2 (or any sized) block. The song-display tile scrolls long titles and is configurable.

Library and rating

Favorite, dislike, and add-to-library keys that always reflect the current track's real state.

Audio

Toggle Atmos, Crossfade, and Automix, and cycle the Listening Mode between Off, Gaming, and Unwind.

Queue

Clear the queue with a two-press confirm, flip the Smart Queue optimizer, and scroll the up-next queue as a coverflow on the Stream Deck + touchscreen.

Pins

Pin a playlist, album, or station to a key and start it in one press, shuffled if you like. Pick it from a searchable library window instead of pasting an id.

Stream Deck +

The playback dial puts the whole player on one encoder:

  • Rotate to seek or change volume, press to switch which.
  • A strip of status icons under the title for favorite, library, shuffle, and repeat.
  • Tap the screen edges to skip, the middle to play/pause.
  • Hold the screen or the dial for an action wheel where every entry shows its live state, and repeat cycles in place.

Settings in one place

Connection details and per-tile options live in a single window styled to match Stream Deck, with a tab for every tile you have placed.

Requirements

  • Cider 4.0+ with it's RPC API enabled
  • Stream Deck software 6.5 or newer
  • Any Stream Deck, including Mini, XL, and Stream Deck +

Setup

  1. Install from the Elgato Marketplace, or drop the .streamDeckPlugin onto the Stream Deck app.
  2. Drag a Cider tile onto a key.
  3. Open its inspector, click the gear, and choose Authorize with Cider. Approve the prompt in Cider and you are connected.

Every tile shares that one connection, so you only authorize once.

Build from source

npm install
npm run build
npx streamdeck restart sh.cider.streamdeck

The packaged plugin lives in sh.cider.streamdeck.sdPlugin/.

Credits

Made by Cider Collective, built with the @elgato/streamdeck SDK.

Extension points exported contracts — how you extend this code

Services (Interface)
(no doc)
src/services/index.ts
Envelope (Interface)
(no doc)
src/models/cider-api.ts
CoverSlot (Interface)
(no doc)
src/rendering/svg-coverflow.ts
ListResult (Interface)
(no doc)
src/services/cider-client.ts
PageMeta (Interface)
(no doc)
src/models/cider-api.ts
CoverflowModel (Interface)
(no doc)
src/rendering/svg-coverflow.ts
CiderSocketHandlers (Interface)
(no doc)
src/services/cider-socket.ts
Artwork (Interface)
(no doc)
src/models/cider-api.ts

Core symbols most depended-on inside this repo

t
called by 63
sh.cider.streamdeck.sdPlugin/ui/lib/sdpi-components.js
get
called by 58
sh.cider.streamdeck.sdPlugin/ui/lib/sdpi-components.js
set
called by 49
sh.cider.streamdeck.sdPlugin/ui/lib/sdpi-components.js
request
called by 47
src/services/cider-client.ts
e
called by 44
sh.cider.streamdeck.sdPlugin/ui/lib/sdpi-components.js
rt
called by 36
sh.cider.streamdeck.sdPlugin/ui/lib/sdpi-components.js
toString
called by 22
sh.cider.streamdeck.sdPlugin/ui/lib/sdpi-components.js
run
called by 22
sh.cider.streamdeck.sdPlugin/ui/lib/sdpi-components.js

Shape

Method 384
Function 149
Class 108
Interface 27

Languages

TypeScript100%

Modules by API surface

sh.cider.streamdeck.sdPlugin/ui/lib/sdpi-components.js246 symbols
src/services/cider-client.ts75 symbols
src/actions/playback-dial.ts25 symbols
src/actions/queue-dial.ts23 symbols
src/services/player-store.ts20 symbols
src/models/cider-api.ts16 symbols
src/actions/base/cider-action.ts14 symbols
src/rendering/svg-coverflow.ts13 symbols
src/actions/audio-toggle.ts13 symbols
src/actions/base/cider-dial-action.ts12 symbols
src/util/color.ts10 symbols
src/actions/song-display.ts10 symbols

For agents

$ claude mcp add CiderDeck \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact