AudD CLI
audd is the command-line tool for AudD. It recognizes music in files,
URLs, folders, long recordings, and from the microphone; monitors your
streams; and manages your account. It prints tables on a terminal and JSON
when its output is piped, so the same commands work in a shell, in scripts,
and for AI agents.
Source and releases: github.com/AudDMusic/audd-cli
Install
| Where | Command |
|---|---|
| Any system with Node.js | npx @audd/cli recognize song.mp3 (no install) or npm install -g @audd/cli |
| Any system with Python | uvx audd-cli recognize song.mp3 (no install), pipx install audd-cli, or uv tool install audd-cli |
| macOS | brew install auddmusic/tap/audd |
| macOS, Linux | curl -fsSL https://github.com/AudDMusic/audd-cli/releases/latest/download/install.sh | sh |
| Windows | scoop bucket add auddmusic https://github.com/AudDMusic/scoop-bucket then scoop install auddmusic/audd |
| Docker | docker run --rm -e AUDD_API_TOKEN -v "$PWD:/work" ghcr.io/auddmusic/audd-cli recognize song.mp3 |
| Go | go install github.com/AudDMusic/audd-cli/cmd/audd@latest |
Release archives for every platform are on the
releases page. audd update
installs the latest release, or prints the command for the package manager
you installed it with.
Sign in
audd login # sign in; fetches your API token for you
export AUDD_API_TOKEN=your-api-token # or set the token directly (CI, scripts)
Get your API token at dashboard.audd.io, or let
audd login fetch it. On a desktop, audd login opens the browser; over SSH
and in containers, it prints a page and a code to approve the sign-in on any
device. Recognition needs only the token; account, usage, billing, and
token rotate need audd login. audd auth status shows which token is in
use.
Recognize music
audd recognize song.mp3
audd recognize https://audd.tech/example.mp3
audd recognize song.mp3 --return apple_music,spotify
audd recognize mix.mp3 --at 1:30 # a 12-second clip from 1:30 (needs ffmpeg)
audd listen # record from the microphone and identify
The standard endpoint analyzes up to the first 12 seconds of audio. Use
--at to pick another moment, or --enterprise to scan a whole recording.
--return adds metadata from apple_music, spotify, deezer, and
musicbrainz. No match is not an error: the result is null and the exit
code is 0, unless you pass --fail-on-no-match.
Whole recordings
audd recognize mix.mp3 --enterprise --limit 20 --dry-run
audd recognize mix.mp3 --enterprise --limit 20 --tracklist
--enterprise uses the enterprise endpoint and returns every
match with its position in the file. It is billed per 12-second chunk, so it
needs --limit N (chunks per file) or --limit none. --dry-run shows the
full cost without sending anything. --tracklist merges consecutive matches
into tracks with start and end times.
Folders and lists
audd recognize ./recordings --max-files 200 --dry-run
audd recognize ./recordings --max-files 200 --format csv > results.csv
ls *.mp3 | audd recognize - --max-files 50 --yes
A folder, a glob, several files, or a list on stdin is a batch. It needs
--max-files N (or none), shows a plan with the estimated number of
requests, and asks to confirm; without a terminal, pass --yes. Every batch
is saved as a job after each file, so Ctrl-C or a dropped connection loses
nothing finished:
audd jobs list
audd jobs resume <id>
Results are cached by file contents, so recognizing the same audio again is
free. --max-requests N stops any command before it spends more than N
requests.
Streams
audd streams add https://radio.example/stream.mp3 --id 1
audd streams list
audd now-playing # full-screen view with cover art
audd streams watch # results as they arrive
audd streams history --since 24h
audd streams report --by artist --since 30d
audd streams export --since 7d --format csv > plays.csv
The CLI wraps the streams API. The first time you use a streams
command, audd starts a background recorder that receives every result as it
happens (over longpoll) and saves it locally, so
history, reports, and the now-playing view stay complete. Receiving results
needs a callback URL on the account; when it is missing, the CLI offers to set
https://audd.tech/empty/, or you can set your own with
audd streams callback set <url>.
audd now-playing shows the latest song on each stream with its cover art and
the songs played before it, like the AudD widget.
By default AudD sends a stream's result when the song ends; streams added with
--start report songs when they start. Track length and a progress bar need
provider metadata on stream results:
audd streams callback set <url> --return apple_music.
audd streams watch --forward-to http://localhost:8080/callback POSTs each
result to your URL, shaped like an AudD callback, for testing a callback
handler locally.
Account
audd account
audd usage
audd usage --check --min-remaining 1000 # exit 8 when fewer remain
audd billing plans
audd billing subscribe <plan> # prints a payment link
audd token show # masked; --reveal prints it
audd token rotate
Payment commands never charge: they print a Stripe link that you open and approve in the browser.
Interactive explorer
audd browse
audd browse opens a full-screen explorer with everything you recognized,
your batch jobs, your streams live, and this cycle's usage. Search, open a
song's links, export a view to CSV or JSON, and resume jobs from there.
Scripts and agents
- Piped output is JSON; every document has
"schema_version": 1. Batches andstreams watchprint JSON lines with a"type"field. --format table|json|jsonl|csvpicks a format;--fields a,bkeeps only those fields (result.artistfor nested ones).- Errors are JSON on stderr with a
code, amessage, and usually ahintwith the next command to run. - Exit codes: 0 success (for a single file, no match counts as success), 1 a
batch with files that had no match, 2 invalid input, 3 sign-in or
token, 4 quota or plan, 5 network or server, 6 a safety bound (a missing
--limitor--max-files, or a confirmation that needs--yes), 7 a batch with failed files. audd commands --jsondescribes every command, flag, and output.audd api <method> key=value...calls any API method directly.
For coding agents:
audd agent-setup # write a skill or rules file for your coding agent
claude mcp add audd -- audd mcp # use audd as a local MCP server
audd docs api # these API docs as markdown
audd mcp runs a local MCP server over stdio with tools for recognition,
enterprise scans, streams, now-playing, usage, and the docs, with the same
token and limits as the CLI. For account tools over OAuth without installing
anything, see the AudD MCP Server.
Settings and profiles
audd config list
audd config set max_requests 500
audd --profile work recognize song.mp3
Each profile has its own sign-in, token, and settings. The CLI has no telemetry and talks only to AudD services, cover art hosts, and GitHub for the release check.
The full reference is in the
README and
audd <command> --help.
See also
- API reference — the recognition API the CLI calls
- Official SDKs — call the API from your own code
- AudD MCP Server — account tools for AI agents over OAuth