silver-music-notifier 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,87 @@
1
+ # silver-music-notifier
2
+
3
+ Track a list of artists and get notified of their new music releases from
4
+ [MusicBrainz](https://musicbrainz.org). Drive it from the terminal, or launch a
5
+ local web UI (built with [silver-ui](https://silver-ui.com)).
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install -g silver-music-notifier
11
+ ```
12
+
13
+ This requires a working build toolchain for `better-sqlite3` (the native SQLite
14
+ driver), which is built automatically on install.
15
+
16
+ ## Usage
17
+
18
+ ### Web UI
19
+
20
+ ```bash
21
+ silver-music-notifier web # starts on http://localhost:3001 and opens a browser
22
+ silver-music-notifier web --port 8080 --no-open
23
+ ```
24
+
25
+ The UI has three views:
26
+
27
+ - **Releases** — a feed of every known release-group, newest first, with a
28
+ **Refresh** button and a "New" badge on releases discovered in the last refresh.
29
+ - **Artists** — search MusicBrainz and add/remove the artists you follow.
30
+ - **Settings** — choose notification methods and configure SMTP for email.
31
+
32
+ ### CLI
33
+
34
+ ```bash
35
+ silver-music-notifier add "Radiohead" # search MusicBrainz, pick a match
36
+ silver-music-notifier add "Boards of Canada" -y # add the top match, no prompt
37
+ silver-music-notifier add "X" --mbid <mbid> # add an exact MBID
38
+ silver-music-notifier list # list tracked artists
39
+ silver-music-notifier remove "Radiohead" # stop tracking (by name or MBID)
40
+ silver-music-notifier refresh # fetch releases + notify on new ones
41
+ silver-music-notifier releases --new --limit 20
42
+ silver-music-notifier config get # show settings
43
+ silver-music-notifier config set notify.desktop false
44
+ ```
45
+
46
+ ## Notifications
47
+
48
+ When `refresh` finds releases it has never seen before, it can notify you three ways:
49
+
50
+ - **In-page badges** — "New" badges in the web UI (always available).
51
+ - **Desktop** — a system notification (enabled by default).
52
+ - **Email** — an HTML summary, sent once SMTP is configured and the email toggle
53
+ is on. Configure it in the **Settings** view or via `config set smtp.*`.
54
+
55
+ `refresh` is manual — run it from the CLI, the web button, or your own scheduler
56
+ (cron, systemd timer, etc.).
57
+
58
+ ## Data & configuration
59
+
60
+ State lives in a single SQLite file in your per-user data directory
61
+ (e.g. `~/.config/silver-music-notifier/data.db` on Linux). Override the location
62
+ with the `SMN_DATA_DIR` environment variable.
63
+
64
+ > **Note:** SMTP credentials (including the password) are stored in plaintext in
65
+ > that local SQLite file. This is a single-user local tool; treat the data
66
+ > directory accordingly.
67
+
68
+ Other environment variables:
69
+
70
+ - `SMN_DATA_DIR` — override the data directory.
71
+ - `SMN_DISABLE_DESKTOP=1` — suppress desktop notifications.
72
+ - `SMN_MB_CONTACT` — fallback MusicBrainz contact for the API User-Agent.
73
+
74
+ ## Development
75
+
76
+ ```bash
77
+ npm install
78
+ npm run dev # backend (tsx watch, :3001) + Vite dev server (:5173, proxies /api)
79
+ npm run build # bundle CLI/server (tsup) + build web (vite) into dist/
80
+ npm run typecheck
81
+ npm run lint # eslint
82
+ npm run lint:fix # eslint --fix
83
+ npm run format # prettier --write .
84
+ ```
85
+
86
+ A Husky `pre-commit` hook runs `lint-staged` (eslint `--fix` then prettier on
87
+ staged files) followed by `typecheck`, so commits are auto-formatted and linted.