rip-cd
Rip an audio CD in the optical drive into Apple Music and the NAS: identify it on MusicBrainz, ask the usual questions, securely rip and verify it against…
Skill by eyelock
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/eyelock-rip-cd
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/rip-cd
Tools it pre-approves 4
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
BashReadWriteSkill
What's inside
- Skill name
rip-cd- Description
- Rip an audio CD in the optical drive into Apple Music and the NAS: identify it on MusicBrainz, ask the usual questions, securely rip and verify it against AccurateRip, then make tagged MP3 320s (to Apple Music) and WAVs (lossless backup) from the one verified rip. Use when the user has a CD in the drive ("rip this CD", "import the disc", "I've put disc 2 in"), even if they don't say "rip", and to carry on with a disc already ripped ("disc 1 looks right in Apple Music, put it on the NAS"). Not for downloaded purchases (process-album) or for fixing an album already in Apple Music (audit-release).
- License
- MIT
- Allowed tools
- Bash, Read, Write, Skill
- Instructions
- 288 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Pre-approves any shell command
- Instructions call the network
Agent Skills spec issues
- files: referenced but missing: scripts/x.sh
Files (17)
- SKILL.md
- eval_queries.json · evals/
- evals.json · evals/
- check-deps.sh · scripts/
- eject-disc.sh · scripts/
- encode-release.sh · scripts/
- fetch-cover.sh · scripts/
- accuraterip.py · scripts/lib/
- disc.py · scripts/lib/
- out.sh · scripts/lib/
- lookup-release.sh · scripts/
- make-release-record.sh · scripts/
- read-disc.sh · scripts/
- rip-disc.sh · scripts/
- update-record.sh · scripts/
- verify-accuraterip.sh · scripts/
- work-dir.sh · scripts/
SKILL.md (first lines)
## Why not Apple Music's own import
Apple Music's CD import names tracks from its own lookup, which for many
discs repeats the release name on every title ("Intro (live at Foro Sol
(Mexico City) 21/23/25.09.23)"), files each disc of a set as its own album
("M" and "M [Disc 2]"), guesses artwork that is often for a different album,
and never checks the rip or keeps a lossless copy. This skill does all of it
itself. **If Apple Music starts importing the disc on its own, tell the user
to cancel that import first**; to stop it for good, Music > Settings >
General > "When a CD is inserted" > "Show CD".
## Setup
```bash
bash ../setup/scripts/check-config.sh
```
Needs `library_import`, `library_storage` and `archive_workdir`. Uses
`cd_read_offset` (the drive's read offset in samples) and `work_dir` (where
temporary work goes) when set. If a
required key is `missing`, stop and run the `setup` skill.
Then check the tools:
```bash
bash scripts/check-deps.sh
```
If `ok` is false, **stop**. Tell the user which tools are missing and the
`install_command`, and offer to run it. Run it only when they say yes; never
rip with a tool missing.
## Running the scripts
Scripts are in `scripts/` in this skill's base directory. Run each one as a
single command by its **absolute path**, with no redirect, pipe or `&&`, and
save JSON with the script's own `--out FILE`:
```bash
bash /abs/path/to/skills/rip-cd/scripts/read-disc.sh --out "$WORK/disc.json"
```
The plugin's safety hook auto-approves exactly that shape; anything else
(`> file.json`, `| jq`, a relative `scripts/...` path) asks the user every
time. Below, `scripts/x.sh` is shorthand for that absolute path.
Work in one temporary folder per release, `$WORK`, from
`scripts/work-dir.sh "<name>"` (its `work_dir`): `cd-rip` while the release
is unknown, `cd-rip-<Artist> - <Album>` once a set's first disc is chosen
(keep using whichever folder the set started in). It lives under the
system's temp folder, never in Downloads or the user's home: nothing in it
is the only copy of anything once a disc is archived, because the release
record and cover go to the NAS with the WAVs.
## Scripts
- **`work-dir.sh <name>`**: the temporary work folder for a release.
- **`check-deps.sh`**: are cd-paranoia, ffmpeg (with LAME), python3, curl and jq installed.
- **`read-disc.sh`**: the disc's table of contents, its MusicBrainz disc ID and AccurateRip IDs (computed locally), and any names macOS shows for it, with repeated suffixes found.
- **`lookup-release.sh <disc.json>`**: every MusicBrainz release that disc belongs to.
- **`make-release-record.sh --release-id ID --genre G [...]`**: the release record (`release.json`) all later steps read.
- **`fetch-cover.sh <release_id> <cover.jpg>`**: the front cover from the Cover Art Archive, padded square.
- **`rip-disc.sh <dir> --offset N`**: secure rip to `01.wav`, `02.wav`, ...
- **`verify-accuraterip.sh <dir> <disc.json>`**: checksums against AccurateRip.
- **`encode-release.sh <dir> <release.json> <disc> <out> --cover cover.jpg`**: `mp3/` (320 kbps, tagged, cover embedded) and `wav/` (the rip, untouched, renamed, plus release.json and cover.jpg).
- **`update-record.sh <release.json> --disc N [--accuraterip S] [--discid ID] [--title N=T]`**: record a disc's verdict, ID or a corrected title, in the record and its copies in the work folder.
- **`eject-disc.sh`**: eject the disc.
Every script takes `--help`.
## Workflow
### Step 1: Identify the disc
```bash
bash scripts/read-disc.sh --out "$WORK/disc.json"
bash scripts/lookup-release.sh "$WORK/disc.json" --out "$WORK/lookup.json"
```
Exit 2 from read-disc means no disc: ask the user to insert one.
As soon as the lookup returns, **tell the user what the disc is**: artist,
album, which disc of how many, and track count ("This is Night Drive -
Afterglow Live, disc 1, 3 tracks"). When several releases carry the disc,
say so in the same breath and that the barcode on the back of the case tells
them apart (Step 3, question 1). Every message that asks a question repeats
the disc's name, so the user never has to scroll back to know which disc
the question is about.
**Is this a later disc of a release already started?** Look for a
`release.json` whose discs list this disc ID in `known_discids` or
`mb_discid`: in `$ARCHIVE_WORKDIR/to_nas/wav/*/*/release.json` (Glob) and in
the work folders beside `$WORK`. If one matches, say so ("this is disc 2 of
M, which you ripped on 19 Oct"), **reuse that record's answers** (no
questions in Step 3) and record the disc's ID:
`scripts/update-record.sh "$RECORD" --disc N --discid "$DISCID"`. When the
match is on the NAS only, copy that record into `$WORK` with the Read and
Write tools first. Every disc of a release must carry
identical Album, Album Artist and disc total, or Apple Music splits the
release into several albums.
### Step 2: Start the rip
The rip needs no answers, so start it now and ask the questions while it
runs (15-25 minutes for a full CD). Run it in the background
(`run_in_background`), and tell the user it is running:
```bash
bash scripts/rip-disc.sh "$WORK/rip-disc$N" --offset "$CD_READ_OFFSET" --out "$WORK/rip-disc$N.json"
```
`$N` is which disc of the release this is; until the release is chosen, use
the candidate's `audio_disc`. "405: Option not supported by drive" in its
output is the drive declining an optional speed command and is harmless.
If `cd_read_offset` is not configured, say the AccurateRip check will
probably fail until it is, and rip with 0: the rip is still secure. The
offset for a drive model is in AccurateRip's drive list; once a rip verifies
with it, add it to config.json as `cd_read_offset`.From eyelock/assistants, MIT.
More from eyelock/assistants
- 0.603score
split-long-tracks
eyelock
Find and split audio tracks longer than Apple Music's 78-minute limit at natural quiet points, keeping album order.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
cleanup
eyelock
Tidy Downloads after a release is fully processed: move its ZIPs (or loose single-track files) to processed/ and delete its extraction folders, after showing…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
import-to-apple-music
eyelock
Copy finished MP3s into Apple Music via the auto-import folder and verify the album lands correctly.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
manage-metadata
eyelock
Inspect and update MP3 tags: genre, artist, album, track count, compilation flag.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
process-album
eyelock
End-to-end processing of downloaded music purchases: extract ZIPs (or copy loose single-track files), verify metadata, import to Apple Music, archive to NAS…
SkillAFreshness: A★ 2Claude Code - 0.603score
reclaim-space
eyelock
Reclaim local disk by offloading cloud-backed Apple Music downloads.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
select-release
eyelock
Find music release ZIPs AND loose single-track audio files in Downloads and classify each as MP3 or WAV by inspecting contents (never filenames), matching…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
setup
eyelock
Check that all media-management paths (Downloads, Apple Music, NAS archive, rekordbox-mcp) are resolvable via env var or config.json, and help the user fix…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
archive-media
eyelock
Stage a processed release on the NAS: copy its MP3s from the Apple Music library and its WAVs from the extraction folder into the NAS staging folder, with…
SkillAFreshness: A★ 2Claude Code +9 - 0.600score
release
eyelock
Tag-driven release automation - cutting a stable, beta or hotfix release, choosing the version bump, and monitoring the release workflow.
SkillAFreshness: A★ 2Claude Code +9 - 0.600score
ci
eyelock
GitHub Actions workflows that implement the Gitflow model — CI gating, branch protection enforcement, and tag-triggered release.
SkillAFreshness: A★ 2Claude Code +9 - 0.599score
audit-release
eyelock
Check a release already in Apple Music against everything a finished import should be (one album, clean titles, real artwork, MP3s and WAVs on the NAS) and…
SkillAFreshness: A★ 2Claude Code
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 19, 2026 (9 days ago)
- Last release
- Aug 25, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/eyelock/assistants
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from eyelock
- 0.603score
import-to-apple-music
eyelock
Copy finished MP3s into Apple Music via the auto-import folder and verify the album lands correctly.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
process-album
eyelock
End-to-end processing of downloaded music purchases: extract ZIPs (or copy loose single-track files), verify metadata, import to Apple Music, archive to NAS…
SkillAFreshness: A★ 2Claude Code - 0.603score
archive-media
eyelock
Stage a processed release on the NAS: copy its MP3s from the Apple Music library and its WAVs from the extraction folder into the NAS staging folder, with…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
cleanup
eyelock
Tidy Downloads after a release is fully processed: move its ZIPs (or loose single-track files) to processed/ and delete its extraction folders, after showing…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
manage-metadata
eyelock
Inspect and update MP3 tags: genre, artist, album, track count, compilation flag.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
reclaim-space
eyelock
Reclaim local disk by offloading cloud-backed Apple Music downloads.
SkillAFreshness: A★ 2Claude Code +9
Cite this page
rip-cd skill. Agent Mart. https://agentmart.dev/skills/eyelock-rip-cd (last updated 2026-10-24)