···11+get the user's top albums.
22+33+```bash
44+rocksky albums [options] [did]
55+```
66+77+### Example
88+99+```bash
1010+rocksky albums did:plc:7vdlgi2bflelz7mmuxoqjfcr
1111+```
+11
CLI/Commands/artists.md
···11+get the user's top artists.
22+33+```bash
44+rocksky artists [options] [did]
55+```
66+77+### Example
88+99+```bash
1010+rocksky artists did:plc:7vdlgi2bflelz7mmuxoqjfcr
1111+```
+11
CLI/Commands/create apikey.md
···11+create a new API key.
22+33+```bash
44+rocksky create apikey [options] <name>
55+```
66+77+### Example
88+99+```bash
1010+rocksky create apikey -d "Used for my scrobbling bot" scrobbler-bot
1111+```
···11+login with your BlueSky account and get a session token.
22+33+```bash
44+rocksky login <handle>
55+```
66+77+### Example
88+99+```bash
1010+rocksky login tsiry-sandratraina.com
1111+```
+6
CLI/Commands/mcp.md
···11+starts an MCP server to use with Claude or other LLMs
22+33+```bash
44+rocksky mcp
55+```
66+
+11
CLI/Commands/nowplaying.md
···11+get the currently playing track.
22+33+```bash
44+rocksky nowplaying [did]
55+```
66+77+### Example
88+99+```bash
1010+rocksky nowplaying did:plc:7vdlgi2bflelz7mmuxoqjfcr
1111+```
+11
CLI/Commands/scrobble.md
···11+scrobble a track to your profile.
22+33+```bash
44+rocksky scrobble [options] <track> <artist>
55+```
66+77+### Example
88+99+```bash
1010+rocksky scrobble "Karma Police" "Radiohead"
1111+```
+11
CLI/Commands/scrobbles.md
···11+display recently played tracks.
22+33+```bash
44+rocksky scrobbles [options] [did]
55+```
66+77+### Example
88+99+```bash
1010+rocksky scrobbles did:plc:7vdlgi2bflelz7mmuxoqjfcr
1111+```
+11
CLI/Commands/search.md
···11+search for tracks, albums, or accounts.
22+33+```bash
44+rocksky search [options] <query>
55+```
66+77+### Example
88+99+```bash
1010+rocksky seach "linkin park"
1111+```
+11
CLI/Commands/stats.md
···11+get the user's listening stats.
22+33+```bash
44+rocksky stats [options] [did]
55+```
66+77+### Example
88+99+```bash
1010+rocksky stats did:plc:7vdlgi2bflelz7mmuxoqjfcr
1111+```
+11
CLI/Commands/tracks.md
···11+get the user's top tracks.
22+33+```bash
44+rocksky tracks [options] [did]
55+```
66+77+### Example
88+99+```bash
1010+rocksky tracks did:plc:7vdlgi2bflelz7mmuxoqjfcr
1111+```
+5
CLI/Commands/whoami.md
···11+get the current logged-in user.
22+33+```bash
44+rocksky whoami
55+```
+12
CLI/Overview.md
···11+The Rocksky CLI is a command line interface that allows you scrobble tracks, view stats, and manage your listening history
22+33+## Installation
44+55+```bash
66+npm install -g @rocksky/cli
77+```
88+You can also use the CLI without installing it globally by running `npx`:
99+1010+```bash
1111+npx @rocksky/cli --help
1212+```
+46
FAQ.md
···11+Answers to common frequently asked questions.
22+33+## What is Rocksky?
44+Rocksky is a decentralized, open-source (soon) music tracking and discovery platform built on the [AT Protocol](https://atproto.com). It works like [Last.fm](https://www.last.fm) but publishes your listening history directly to your Bluesky account.
55+66+## What are the supported players?
77+Currently, Rocksky supports:
88+99+- ✅ Spotify (via API)
1010+1111+- ✅ any player with last.fm extension
1212+1313+## How do I sign up?
1414+You don't need to create a new account for Rocksky. All you need is a [Bluesky](https://bsky.app/) account. We use your Bluesky handle to associate and publish your listening activity using the AT Protocol.
1515+1616+## What is the AT Protocol?
1717+The AT Protocol (Authenticated Transfer Protocol) is an open, decentralized social networking protocol designed by the creators of Bluesky. It enables portable identities, composable data, and federation.
1818+1919+Rocksky uses ATProto to publish your listening history to your own feed, making it discoverable and shareable across the decentralized social web.
2020+2121+Learn more: https://atproto.com/
2222+2323+## Is Rocksky open source?
2424+Not yet — but it will be open source soon! You'll be able to self-host, build integrations, and contribute to the project via GitHub.
2525+2626+Stay tuned for the launch announcement!
2727+2828+## How does Cloud Drive integration work?
2929+Rocksky lets you connect your Google Drive or Dropbox account to access and index your personal music collection stored in the cloud. Once connected, Rocksky scans your files and tracks your listening activity — all tied to your Bluesky handle.
3030+3131+## Which cloud drives are supported?
3232+Currently, Rocksky supports:
3333+✅ Google Drive
3434+✅ Dropbox
3535+3636+## Is my data private?
3737+Yes. Your cloud drive data is never shared. Rocksky only scans audio files you give permission for and publishes listening activity (like "now playing" and scrobbles). Your actual music files stay private.
3838+3939+## Can I stream music directly from my cloud drive?
4040+Yes! Once your files are indexed, you can stream them directly from Google Drive or Dropbox through the Rocksky interface.
4141+4242+## Do I need to re-upload my music?
4343+No. As long as your music is already stored in Google Drive or Dropbox, Rocksky can access and play it — no re-upload needed.
4444+4545+## Are you affiliated with Bluesky?
4646+No. Rocksky is an independent project built on top of the AT Protocol, the same protocol that powers Bluesky. We are not affiliated with or endorsed by Bluesky.
+47
How-Tos/How to Use Rocksky with Jellyfin.md
···11+Rocksky now provides a **ListenBrainz-compatible scrobbling API**, allowing you to use the existing ListenBrainz plugin for Jellyfin with zero code changes, just a config update!
22+33+## Requirements
44+55+- A running Jellyfin server
66+- A Rocksky account
77+- A Rocksky API Key from the [API Applications](https://rocksky.app/apikeys) page
88+99+## 1. Install the ListenBrainz Plugin for Jellyfin
1010+1111+Use the community-maintained plugin:
1212+1313+### Plugin Repository:
1414+https://github.com/lyarenei/jellyfin-plugin-listenbrainz
1515+1616+Once installed, go to:
1717+**Dashboard > Plugins > ListenBrainz > Settings**
1818+1919+## 2. Configure the Plugin to Use Rocksky
2020+2121+Update the default ListenBrainz API URL and token:
2222+2323+### API URL:
2424+2525+From:
2626+```
2727+https://api.listenbrainz.org
2828+```
2929+3030+To:
3131+```
3232+https://audioscrobbler.rocksky.app
3333+```
3434+3535+### API Token:
3636+1. Go to Rocksky [API Applications](https://rocksky.app/apikeys)
3737+2. Create or copy your API Key
3838+3. Paste it into the Token field in the plugin settings
3939+4040+✅ Save and restart the server if needed.
4141+4242+4343+
4444+4545+## 3. Verify It’s Working
4646+Start playing a track on Jellyfin
4747+Head to https://rocksky.app — your recent scrobbles should appear in real time
+44
How-Tos/How to Use Rocksky with Kodi.md
···11+Rocksky now supports the **ListenBrainz API**, so you can use [Kodi](https://kodi.tv/)'s built-in ListenBrainz scrobbler to track your listening directly to Rocksky — no plugin modifications needed.
22+33+## Requirements
44+- Kodi media center installed
55+- A Rocksky account
66+- A Rocksky API Key from the [API Applications](https://rocksky.app/apikeys) page
77+88+## 1. Install the ListenBrainz Add-on in Kodi
99+1. Open Kodi
1010+2. Go to **Add-ons > Install from repository**
1111+3. Select **Kodi Add-on repository**
1212+4. Navigate to **Service Add-ons**
1313+5. Search for **ListenBrainz Scrobbler**
1414+6. **Click Install**
1515+1616+Once installed, you'll see the plugin under **My Add-ons > Service Add-ons**
1717+1818+1919+## 2. Configure the Plugin for Rocksky
2020+1. Open the ListenBrainz plugin settings
2121+2. Update the following:
2222+2323+**API URL**
2424+Replace:
2525+```
2626+https://api.listenbrainz.org
2727+```
2828+With:
2929+```
3030+https://audioscrobbler.rocksky.app
3131+```
3232+**API Token**
3333+1. Go to Rocksky [API Applications](https://rocksky.app/apikeys) page
3434+2. Copy your API Key
3535+3. Paste it into the Token field
3636+3737+✅ Save the settings and restart Kodi if needed.
3838+3939+4040+
4141+4242+## 3. Confirm It’s Working
4343+- Play any song in Kodi
4444+- Visit https://rocksky.app to see your recent scrobble
+65
How-Tos/Migrating from Listenbrainz to Rocksky.md
···11+Rocksky now supports a **ListenBrainz-compatible API** for scrobbling! This means you can switch your existing [ListenBrainz](https://listenbrainz.org) integration to Rocksky in just a few simple steps.
22+33+## What You Need
44+ - A Rocksky account
55+ - A Rocksky API Key (you can generate one in the [API Applications](https://rocksky.app/apikeys) page)
66+ - A scrobbling app or script that supports the ListenBrainz API
77+88+## Step-by-Step Migration
99+### 1. Update the API URL
1010+Change the ListenBrainz API endpoint:
1111+1212+From:
1313+1414+```
1515+https://api.listenbrainz.org
1616+```
1717+To:
1818+1919+```
2020+https://audioscrobbler.rocksky.app
2121+```
2222+2323+### 2. Replace the Authorization Token
2424+In ListenBrainz, you typically send a `Authorization: Token <token>` header.
2525+To switch to Rocksky:
2626+- Go to Rocksky [API Applications](https://rocksky.app/apikeys)
2727+- Copy your API Key
2828+- Use it as the token in the Authorization header:
2929+3030+```
3131+Authorization: Token <rocksky_api_key>
3232+```
3333+3434+### 3. Test the Integration
3535+Try sending a test scrobble to:
3636+3737+```
3838+POST https://audioscrobbler.rocksky.app/1/submit-listens
3939+Content-Type: application/json
4040+Authorization: Token <rocksky_api_key>
4141+```
4242+4343+Example body:
4444+```json
4545+{
4646+ "listen_type": "playing_now",
4747+ "payload": [
4848+ {
4949+ "track_metadata": {
5050+ "artist_name": "Daft Punk",
5151+ "track_name": "Harder, Better, Faster, Stronger",
5252+ "release_name": "Discovery"
5353+ },
5454+ "listened_at": 1716541200
5555+ }
5656+ ]
5757+}
5858+```
5959+6060+## Notes
6161+- **Compatibility:** Rocksky mirrors the ListenBrainz API behavior for scrobbling (`/submit-listens, /validate-token`).
6262+6363+6464+- **Normalization**: Rocksky will attempt to normalize song metadata. If a match cannot be found, the scrobble may be skipped.
6565+
+79
How-Tos/Migrating to Rocksky Scrobble API.md
···11+Rocksky offers a fully compatible implementation of the [Last.fm Audioscrobbler API](https://www.last.fm/api/show/track.scrobble) — so you can seamlessly migrate your scrobbling apps or integrations to Rocksky by simply changing the API endpoint and credentials.
22+33+## Base URL
44+55+Replace the Last.fm endpoint:
66+77+```
88+https://ws.audioscrobbler.com/2.0
99+```
1010+1111+With the Rocksky scrobble endpoint:
1212+1313+```
1414+https://audioscrobbler.rocksky.app/2.0
1515+```
1616+1717+## Authentication
1818+1919+- `api_key`: Your Rocksky API key (obtainable from your [Rocksky developer dashboard](https://rocksky.app/apikeys)).
2020+- `sk`: Your Rocksky session key (obtained after user authentication `rocksky login`)
2121+2222+## Legacy Last.fm API Compatibility
2323+Rocksky also supports older Last.fm clients using the legacy Audioscrobbler protocol (pre-2.0). You can use these legacy configurations in clients such as Deadbeef or older music players:
2424+2525+### Legacy API Config:
2626+2727+| **Field** | **Value** |
2828+|---------------|-----------|
2929+| Username | Your Rocksky API key (obtainable from your [Rocksky developer dashboard](https://rocksky.app/apikeys)) |
3030+| Password | Your Rocksky shared secret (obtainable from your [Rocksky developer dashboard](https://rocksky.app/apikeys)) |
3131+| Scrobble URL | https://audioscrobbler.rocksky.app |
3232+3333+ℹ️ **Note**: Rocksky will also try to normalize songs metadata. If it cannot find a matching track, it will skip the scrobble.
3434+3535+## Example Scrobble Request
3636+3737+**Method**: `POST`
3838+**URL**: `https://audioscrobbler.rocksky.app/2.0`
3939+**Headers**: `Content-Type: application/x-www-form-urlencoded`
4040+**Body** (as `x-www-form-urlencoded`):
4141+4242+4343+| **Parameter** | **Example Value** |
4444+|---------------|------------------------------------|
4545+| method | `track.scrobble` |
4646+| api_key | `YOUR_API_KEY` |
4747+| sk | `YOUR_SESSION_KEY` |
4848+| artist[0] | `Radiohead` |
4949+| track[0] | `Karma Police` |
5050+| timestamp[0] | `1744579159` |
5151+| api_sig | `532b7492411fdfcd79639b548b5ee8a8` |
5252+| format | `json` |
5353+5454+## Generating `api_sig`
5555+To compute the signature:
5656+1. Sort all parameters (excluding api_sig and format) by key.
5757+2. Concatenate key-value pairs (key1value1key2value2...).
5858+3. Append your shared secret to the concatenated string.
5959+4. MD5 hash the result.
6060+6161+Example in pseudo-code:
6262+6363+```js
6464+const base = "api_keyAPI_KEYartist[0]Radioheadmethodtrack.scrobbleskSESSION_KEYtimestamp[0]1744579159track[0]Karma Police";
6565+const sig = md5(base + shared_secret);
6666+```
6767+6868+## Migrating Your App
6969+To switch from Last.fm to Rocksky:
7070+1. Change the API base URL.
7171+2. Update your API key and session key (from `rocksky login`).
7272+3. Use the same payload format and signature method.
7373+4. Done!
7474+7575+## Why Switch to Rocksky?
7676+🔄 Open Scrobble Infrastructure
7777+📊 Modern analytics and detailed stats
7878+🔐 Built on top of [AT Protocol](https://atproto.com/) for portability
7979+🔧 Compatible with existing Last.fm tools
+112
How-Tos/Use Rocksky with Claude Desktop.md
···11+22+This guide will walk you through setting up Rocksky [MCP (Model Control Protocol)](https://modelcontextprotocol.io/introduction) and using it with [Claude Desktop](https://claude.ai/download) to interact with the Rocksky API.
33+44+
55+66+## Prerequisites
77+88+- [Node.js](https://nodejs.org/en) and [npm](https://www.npmjs.com) installed on your system
99+- Claude Desktop application installed
1010+- A Rocksky account (if you don't have one, sign up at [rocksky.app](https://rocksky.app))
1111+1212+## Setting Up Rocksky MCP
1313+1414+### Step 1: Install Rocksky CLI
1515+First, install the Rocksky CLI globally using npm:
1616+```bash
1717+npm install -g @rocksky/cli
1818+```
1919+2020+### Step 2: Configure Claude Desktop for Rocksky MCP
2121+2222+1. Open Claude Desktop
2323+2. Go to Settings (gear icon) > Advanced > Model Control Protocol
2424+3. Enable MCP by toggling the switch to "On"
2525+4. Click "Edit Configuration" to open the MCP config file
2626+5. Add the following configuration to the file:
2727+2828+```json
2929+{
3030+ "mcpServers": {
3131+ "rocksky": {
3232+ "command": "rocksky",
3333+ "args": [
3434+ "mcp"
3535+ ]
3636+ }
3737+ }
3838+}
3939+```
4040+4141+6. Save the configuration file
4242+7. Restart Claude Desktop for the changes to take effect
4343+4444+## Using Rocksky with Claude
4545+Once you've set up Rocksky MCP, you can start interacting with the Rocksky API through Claude. Here are some examples of what you can do:
4646+4747+## Get Recently Played Tracks
4848+Simply ask Claude:
4949+```
5050+What are my recently played tracks?
5151+```
5252+5353+Claude will use the Rocksky MCP to fetch your scrobble history and display it.
5454+5555+## View Your Top Artists
5656+Ask Claude:
5757+```
5858+Show me my top artists on Rocksky
5959+```
6060+6161+## Search for Music
6262+You can search for tracks, artists, or albums:
6363+```
6464+Search for tracks by Radiohead
6565+```
6666+6767+## View User Stats
6868+Get your listening statistics:
6969+```
7070+What are my Rocksky stats?
7171+```
7272+7373+## View Now Playing
7474+See what's currently playing:
7575+```
7676+What am I listening to right now?
7777+```
7878+7979+## Advanced Usage
8080+### Viewing Other Users' Data
8181+8282+You can also view other users' listening data by specifying their username or DID:
8383+```
8484+Show me the recently played tracks for username.bsky.social
8585+```
8686+8787+### Limiting Results
8888+You can specify how many results you want to see:
8989+```
9090+Show me my top 10 tracks
9191+```
9292+9393+### API Keys (For Developers)
9494+9595+If you're developing with Rocksky, you can create API keys:
9696+```
9797+Create a new Rocksky API key called "My Application"
9898+```
9999+### Troubleshooting
100100+101101+If you encounter any issues:
102102+103103+1. Ensure the Rocksky CLI is properly installed
104104+2. Verify your MCP configuration is correct
105105+3. Check if you're logged into your Rocksky account
106106+4. Restart Claude Desktop
107107+108108+## Further Resources
109109+110110+- [AT Protocol Documentation](https://atproto.com)
111111+- [Claude MCP Documentation](https://docs.anthropic.com/en/docs/agents-and-tools/mcp)
112112+
+3
Introduction.md
···11+## What is Rocksky?
22+33+Rocksky is a decentralized music tracking service. It connects with your favorite music players and streaming platforms (like Spotify, support for additional sources like Apple Music, Deezer, Tidal, etc is coming soon!) and publishes your listening history (aka "scrobbles") to your Bluesky account using the [AT Protocol](https://atproto.com).
+5
Overview.md
···11+22+33+Rocksky is a music tracking and discovery platform built on top of the [AT Protocol](https://atproto.com/). Think of it as [Last.fm](https://www.last.fm/), reimagined for the decentralized social web. Rocksky lets you scrobble your listening activity, explore your stats, discover music trends, and share your music taste — all without being tied to a single platform.
44+55+🛠️ **Note**: Rocksky will be open-sourced soon. You’ll be able to run your own instance, build extensions, or contribute to the core!
+24
README.md
···11+# 📚 Rocksky Docs
22+33+This repository contains the source Markdown files for the [Rocksky Documentation](https://docs.rocksky.app).
44+55+The docs are written in Markdown and hosted on [apidogs.com](https://apidogs.com), where they are rendered and published for easy access.
66+77+## 🔄 Syncing with apidogs.com
88+99+The content of this repository is kept **in sync** with the live documentation on apidogs.com.
1010+> **Note:** Changes made here are **not automatically reflected** on the live docs website at the moment. Manual sync is required.
1111+1212+## 🛠️ Editing the Docs
1313+1414+To propose changes:
1515+1616+1. Fork this repository
1717+2. Edit the relevant Markdown file(s)
1818+3. Submit a pull request
1919+2020+We welcome contributions, corrections, and improvements!
2121+2222+## 📌 Note
2323+2424+This repository is **not** a standalone documentation site. It serves as the source of truth for documentation content deployed on [apidogs.com](https://docs.rocksky.app).