Guide · 09

The daemon and logs

What ampd is, how to start and stop it, where amp writes its traces, and what to send with a bug report.

The daemon

ampd holds the library and plays the music. Every interface is its client: the terminal, the window (amp-qt), the phone, amp --next. That is why two terminals running amp show the same queue, and a key pressed in one is seen in the other.

amp starts the daemon when none is running; it then outlives the terminal it came from.

amp daemon status                   # is it running, its pid, where it listens
amp daemon start                    # start it now (at login, from a script)
amp daemon stop                     # stop it, and the music with it
amp --no-daemon                     # the player inside this terminal only

It listens on a socket only your user can reach, and asks every client for a key only your user can read.

A machine that only plays — a small server next to the speakers — needs the daemon alone: uv tool install ./amp-core gives ampd.

The window

amp-qt is the same interface in a desktop window, over the same daemon. Run it beside the terminal or instead of it; each follows what the other does.

Logs

The terminal is amp’s screen, so nothing is printed there. Each program writes a trace file instead, all in the same folder:

File Written by
ampd.log the daemon: playback, library, remotes — usually the one to read
amp.log the terminal player
amp-qt.log the window

The folder is ~/Library/Application Support/amp/ on macOS, ~/.local/share/amp/ on Linux, %LOCALAPPDATA%\amp\ on Windows. amp --log-path prints it.

tail -f "$(dirname "$(amp --log-path)")/ampd.log"       # follow the daemon
amp daemon stop && amp --log-level debug                # restart both with more detail

Something is wrong

  1. amp --diagnose — does it find libmpv? What can the terminal show?
  2. amp daemon stop, then amp again — a daemon from an older version is the usual suspect after an update.
  3. Look in ampd.log. Each run starts with a line of = followed by the version, Python and the system: paste those lines in your report.