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.
- License 许可
- MIT
- 最近更新
- 2026-08-23
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- 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.
02 资源文件 17
- 参考文档config.example.json77 B
- 参考文档k8s/deployment.yaml1.6 KB
- 参考文档k8s/ingress.yaml704 B
- 参考文档k8s/kustomization.yaml1.0 KB
- 参考文档k8s/namespace.yaml69 B
- 参考文档k8s/overlays/example/kustomization.yaml767 B
- 参考文档k8s/service.yaml194 B
- 脚本lastfm_cli.py13.7 KB
- 其他pyproject.toml230 B
- 参考文档README.md3.9 KB
- 参考文档requirements-test.txt18 B
- 其他schema.sql892 B
- 脚本server.py18.2 KB
- 脚本tests/__init__.py—
- 脚本tests/test_server.py43.8 KB
- 参考文档web/history.html9.8 KB
- 参考文档web/index.html12.5 KB
03 SKILL.md 正文
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
- 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?" | 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
04 同仓库更多 Skills
crowd-prompting
A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.
dilemm-ai
Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).
arxiv-paper-reviews
Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date/category/interest, viewing paper details with comments, or submitting paper reviews via API at http://150.158.152.82:8000.
arxiv-paper-reviews
Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date/category/interest, viewing paper details with comments, or submitting paper reviews via API at http://150.158.152.82:8000.
git-summary
Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.
agent-constitution
Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.