whatisxlistening-to

star 47

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.

diegosouzapw By diegosouzapw schedule Updated 3/1/2026

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

# 1. Initialize config
./lastfm init
# Edit ~/.config/lastfm/config.json with your API key

# 2. Test
./lastfm now
./lastfm stats
./lastfm recent

Dashboard

# 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

./lastfm init
# Then edit ~/.config/lastfm/config.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

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.

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

Install via CLI
npx skills add https://github.com/diegosouzapw/awesome-omni-skill --skill whatisxlistening-to
Repository Details
star Stars 47
call_split Forks 15
navigation Branch main
article Path SKILL.md
More from Creator
diegosouzapw
diegosouzapw Explore all skills →