惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
D
DataBreaches.Net
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
腾讯CDC
博客园_首页
The Cloudflare Blog
S
SegmentFault 最新的问题
C
Check Point Blog
美团技术团队
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale

Show HN

GitHub - astefanutti/shaderbang: Shebang for Shaders Show HN: Generate Claude Code Workflows using Spec Driven Development approach Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal).
GitHub - czarandy/silver-music-notifier: Notifies you whe...
czarandy · 2026-06-17 · via Show HN

Track a list of artists and get notified of their new music releases from MusicBrainz. Use it from the terminal, or launch a local web UI (built with silver-ui).

silver-music-notifier web UI

Install

npm install -g silver-music-notifier

Requires Node 22+.

Usage

Web UI

silver-music-notifier web            # starts on http://localhost:3001 and opens a browser
silver-music-notifier web --port 8080 --no-open

The UI has three views:

  • Releases — a feed of every known release-group, newest first, with a Refresh button and a "New" badge on releases discovered in the last refresh.
  • Artists — search MusicBrainz and add/remove the artists you follow.
  • Settings — set the MusicBrainz contact (required), choose notification methods, and configure SMTP for email.

CLI

silver-music-notifier add "Radiohead"          # search MusicBrainz, pick a match
silver-music-notifier add "Boards of Canada" -y  # add the top match, no prompt
silver-music-notifier add "X" --mbid <mbid>    # add an exact MBID
silver-music-notifier list                     # list tracked artists
silver-music-notifier remove "Radiohead"       # stop tracking (by name or MBID)
silver-music-notifier refresh                  # fetch releases + notify on new ones
silver-music-notifier refresh --no-notify      # fetch without sending email
silver-music-notifier releases --new --limit 20
silver-music-notifier dismiss <release-mbid>   # hide a release's New badge
silver-music-notifier config get               # show settings
silver-music-notifier config set notify.email true
silver-music-notifier clear-data               # delete artists/releases, keep settings

MusicBrainz contact (required)

MusicBrainz requires every API client to identify a contact (an email or URL) in its User-Agent, and throttles or blocks requests without one. The first time you run most CLI commands, the CLI prompts you for a contact and saves it. Non-network setup commands such as config set, clear-data, and dismiss can run before the contact is configured. You can also set it ahead of time:

silver-music-notifier config set musicbrainz.contact you@example.com

or in the web UI's Settings view after the app has launched. In a non-interactive context (no TTY), commands that require the contact error with this guidance instead of prompting.

Notifications

When refresh finds releases it has never seen before, it can notify you two ways:

  • In-page badges — "New" badges in the web UI (always available).
  • Email — one HTML email per new release, sent once SMTP is configured and the email toggle is on. Configure it in the Settings view or via config set smtp.host, smtp.port, smtp.secure, smtp.user, smtp.pass, smtp.from, and smtp.to.

Adding a new artist refreshes that artist immediately, but treats the existing catalog as your starting baseline: it does not send email for those releases or mark them with "New" badges.

refresh is manual — run it from the CLI, the web button, or your own scheduler (cron, systemd timer, etc.).

Cron refresh

To check for new releases on a schedule, first make sure the CLI has the required MusicBrainz contact and any notification settings configured:

silver-music-notifier config set musicbrainz.contact you@example.com
silver-music-notifier config set notify.email true   # optional, if SMTP is configured

Then add a cron entry. This example refreshes every day at 9:00 AM:

0 9 * * * /usr/bin/env silver-music-notifier refresh >> "$HOME/.local/share/silver-music-notifier/cron.log" 2>&1

If cron cannot find the command, use the full path from command -v silver-music-notifier. To use a custom database location, set SILVER_MUSIC_NOTIFIER_DATA_DIR in the cron line:

0 9 * * *
SILVER_MUSIC_NOTIFIER_DATA_DIR="$HOME/.local/share/silver-music-notifier" /usr/bin/env silver-music-notifier refresh >> "$HOME/.local/share/silver-music-notifier/cron.log" 2>&1

Data & configuration

State lives in a single SQLite file (data.db) in your per-user data directory:

  • Linux: $XDG_DATA_HOME/silver-music-notifier (usually ~/.local/share/silver-music-notifier)
  • macOS: ~/Library/Application Support/silver-music-notifier
  • Windows: %LOCALAPPDATA%\silver-music-notifier\Data

Override the location with the SILVER_MUSIC_NOTIFIER_DATA_DIR environment variable.

Note: SMTP credentials (including the password) are stored in plaintext in that local SQLite file. This is a single-user local tool; treat the data directory accordingly.

Notification methods (in-page / email) and the MusicBrainz contact are configured in the web UI's Settings view or via silver-music-notifier config set … — not through environment variables.