CLI client/player for Last.FM (archive only, player defunct after Last.FM stopped their streaming service).
  • C 84.5%
  • Roff 8.6%
  • Python 1.9%
  • Haskell 1.3%
  • Makefile 1.3%
  • Other 2.4%
Find a file
2026-09-11 20:58:45 +02:00
manual import from old github repository 2026-09-11 19:13:44 +02:00
scripts import from old github repository 2026-09-11 19:13:44 +02:00
source import from old github repository 2026-09-11 19:13:44 +02:00
.gitignore import from old github repository 2026-09-11 19:13:44 +02:00
AUTHORS update email address 2026-09-11 19:21:37 +02:00
BSDmakefile import from old github repository 2026-09-11 19:13:44 +02:00
INSTALL import from old github repository 2026-09-11 19:13:44 +02:00
LICENSE add license file 2026-09-11 19:20:22 +02:00
Makefile import from old github repository 2026-09-11 19:13:44 +02:00
README.md proofread readme 2026-09-11 20:58:45 +02:00
RELEASE import from old github repository 2026-09-11 19:13:44 +02:00

shell-fm (archive, defunct)

CLI client/player for Last.FM

This project is long defunct ever since Last.FM shut down their streaming service in 2014. However it's one of the more useful (and fun) projects I've started, so I think it's worth keeping the code around for archival reasons as I'm currently moving all my old stuff from GitHub to Codeberg.

Some highlights of why shell-fm was pretty cool back then:

  • the first/only command line player for Last.FM
  • written in pure C, aiming for minimal binary size and minimal dependencies
  • remote control via TCP as well as UNIX sockets
  • in addition to the builtin player it could pipe audio to shell commands, e.g. to stream to other devices on the local network
  • daemon mode
  • thanks to the previous points it could be (and has been) ported to somewhat exotic hardware like WRT54g routers
  • several convenience features the official player lacked
  • customizable keybindings
  • ability to bind external tools to keys, e.g. for fetching lyrics

Please note that in this repository I've wiped the commit history and done a fresh import of the code. That's because the history was a complete mess. User names and email addresses of contributors (including mine) have changed over the years, making it difficult to see who did what. Also when I started the project, Git wasn't really a thing yet and lots of the history was lost when migrating from Subversion to Git later on. For a list of contributors please check the AUTHORS and RELEASE files, or if you really want to dig through 12+ year-old commits, there is still the archived repository on my old GitHub account.