openclaw / whatisxlistening-to
Install for your project team
Run this command in your project directory to install the skill for your entire team:
mkdir -p .claude/skills/whatisxlistening-to && curl -L -o skill.zip "https://fastmcp.me/Skills/Download/2515" && unzip -o skill.zip -d .claude/skills/whatisxlistening-to && rm skill.zip
Project Skills
This skill will be saved in .claude/skills/whatisxlistening-to/ and checked into git. All team members will have access to it automatically.
Important: Please verify the skill by reviewing its instructions before using it.
Query Last.fm listening data, show now playing, sync scrobble history to local DB, and deploy a personal "now playing" web dashboard. Use when user asks about current music, listening stats, scrobble history, or wants to set up a Last.fm dashboard.
0 views
0 installs
Skill Content
---
name: whatisxlistening-to
description: Query Last.fm listening data, show now playing, sync scrobble history to local DB, and deploy a personal "now playing" web dashboard. Use when user asks about current music, listening stats, scrobble history, or wants to set up a Last.fm dashboard.
---
# whatisxlistening.to
Last.fm CLI + real-time "now playing" web dashboard.
**Live demo**: https://whatisbenlistening.to
## Quick Start
### CLI
```bash
# 1. Initialize config
./lastfm init
# Edit ~/.config/lastfm/config.json with your API key
# 2. Test
./lastfm now
./lastfm stats
./lastfm recent
```
### Dashboard
```bash
# Docker
docker run -d -p 8765:8765 \
-e LASTFM_API_KEY=your_key \
-e LASTFM_USERNAME=your_user \
-e TZ=America/Los_Angeles \
ghcr.io/poiley/whatisxlistening.to:latest
# → http://localhost:8765
```
## CLI Commands
| Command | Description |
|---------|-------------|
| `lastfm init` | Create config file template |
| `lastfm now` | Show current/last played track |
| `lastfm stats` | Show listening statistics |
| `lastfm recent [N]` | Show N recent tracks (default 10) |
| `lastfm backfill` | Download **full** listening history to local DB |
| `lastfm sync` | Sync new scrobbles (incremental) |
| `lastfm search <query>` | Search local DB by artist/track/album |
| `lastfm db` | Show local database statistics |
## Setup
### 1. Get Last.fm API Key
1. Go to https://www.last.fm/api/account/create
2. Create an application (any name)
3. Copy your API Key
### 2. Create Config
```bash
./lastfm init
# Then edit ~/.config/lastfm/config.json:
```
```json
{
"api_key": "YOUR_API_KEY",
"username": "YOUR_LASTFM_USERNAME"
}
```
## Clawdbot Usage
| User Says | Action |
|-----------|--------|
| "What am I listening to?" | `lastfm now` |
| "My listening stats" | `lastfm stats` |
| "What did I listen to recently?" | `lastfm recent` |
| "Search for Radiohead" | `lastfm search "Radiohead"` |
---
## Dashboard Deployment
### Docker
```bash
docker run -d -p 8765:8765 \
-e LASTFM_API_KEY=your_key \
-e LASTFM_USERNAME=your_user \
-e DISPLAY_NAME="Your Name" \
-e TZ=America/Los_Angeles \
ghcr.io/poiley/whatisxlistening.to:latest
```
### Kubernetes
See `k8s/` directory and `README.md` for full deployment guide with Kustomize.
```bash
kubectl create namespace listening-dashboard
kubectl create secret generic lastfm-credentials \
-n listening-dashboard \
--from-literal=api_key=YOUR_KEY \
--from-literal=username=YOUR_USER
kubectl apply -k k8s/
```
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `LASTFM_API_KEY` | ✅ | Last.fm API key |
| `LASTFM_USERNAME` | ✅ | Last.fm username |
| `DISPLAY_NAME` | ❌ | Name in header (defaults to username) |
| `TZ` | ❌ | Timezone for "today" stats (e.g., `America/Los_Angeles`) |
| `PORT` | ❌ | Server port (default: 8765) |
## API Endpoints
| Endpoint | Description |
|----------|-------------|
| `GET /` | Now playing dashboard |
| `GET /history` | Listening history page |
| `GET /healthz` | Health check |
| `GET /api/config` | `{username, display_name}` |
| `GET /api/now` | Current/last track |
| `GET /api/stats` | Listening statistics (total, artists, today, streak) |
| `GET /api/recent?limit=N&page=N` | Recent tracks with album art |
## Files
```
whatisxlistening.to/
├── SKILL.md # Clawdbot skill config
├── lastfm # CLI symlink
├── lastfm_cli.py # CLI source
├── config.example.json # Config template
├── server.py # Dashboard server
├── schema.sql # SQLite schema
├── Dockerfile
├── README.md
├── web/
│ ├── index.html # Now playing page
│ └── history.html # History browser
├── k8s/ # Kubernetes manifests
└── tests/ # 100% coverage
```
## License
MIT