Awesome-omni-skill whatisxlistening-to
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.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/whatisxlistening-to-decimasudo" ~/.claude/skills/diegosouzapw-awesome-omni-skill-whatisxlistening-to && rm -rf "$T"
manifest:
skills/devops/whatisxlistening-to-decimasudo/SKILL.mdsource content
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 |
|---|---|
| Create config file template |
| Show current/last played track |
| Show listening statistics |
| Show N recent tracks (default 10) |
| Download full listening history to local DB |
| Sync new scrobbles (incremental) |
| Search local DB by artist/track/album |
| Show local database statistics |
Setup
1. Get Last.fm API Key
- Go to https://www.last.fm/api/account/create
- Create an application (any name)
- 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?" | |
| "My listening stats" | |
| "What did I listen to recently?" | |
| "Search for 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 |
|---|---|---|
| ✅ | Last.fm API key |
| ✅ | Last.fm username |
| ❌ | Name in header (defaults to username) |
| ❌ | Timezone for "today" stats (e.g., ) |
| ❌ | Server port (default: 8765) |
API Endpoints
| Endpoint | Description |
|---|---|
| Now playing dashboard |
| Listening history page |
| Health check |
| |
| Current/last track |
| Listening statistics (total, artists, today, streak) |
| 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