{"_id":"@akabeko/music-metadata-editor-cli","_rev":"7-e4e5e70b9df593649e0d1bb274e56852","name":"@akabeko/music-metadata-editor-cli","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@akabeko/music-metadata-editor-cli","version":"1.0.0","keywords":["music","metadata","audio","tag","tags","editor","cli"],"author":{"url":"http://akabeko.me/","name":"akabeko"},"license":"MIT","_id":"@akabeko/music-metadata-editor-cli@1.0.0","maintainers":[{"name":"akabeko","email":"akabekobeko@gmail.com"}],"homepage":"https://github.com/akabekobeko/npm-music-metadata-editor/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/akabekobeko/npm-music-metadata-editor/issues"},"bin":{"mme":"dist/bin/mme.js"},"dist":{"shasum":"3c2bfd6be1884d34650ca7eab379b747402f749f","tarball":"https://registry.npmjs.org/@akabeko/music-metadata-editor-cli/-/music-metadata-editor-cli-1.0.0.tgz","fileCount":118,"integrity":"sha512-GdlH55NnjmF9M/iDx23drWW73DNxsTzKuMYatvjSgpVrMzmArMHDi4xwnGTvXs76l6dwG2HBNsAbmpZiZZ8dLQ==","signatures":[{"sig":"MEQCICeTzLtkZxY10kTNK7TfYQ8ykZZERsJM9SvlFhkoOF7UAiAH01WEF2wJXgWKSO/L/S0TP8/f6a/D0TB+wEgKmzaLPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215852},"type":"module","engines":{"node":">=24"},"gitHead":"9d19ee90bbfe5f3665d7aa7b4ace164da9b434c2","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsx scripts/postBuildShebang.ts","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","fixtures:mp3":"tsx scripts/fixtures/mp3.ts","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm clean && pnpm build && pnpm test"},"_npmUser":{"name":"akabeko","email":"akabekobeko@gmail.com"},"repository":{"url":"git+https://github.com/akabekobeko/npm-music-metadata-editor.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.12.1","description":"Command-line interface for @akabeko/music-metadata-editor.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"commander":"^12.1.0","@akabeko/music-metadata-editor":"workspace:^"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@tsconfig/node24":"^24.0.4"},"_npmOperationalInternal":{"tmp":"tmp/music-metadata-editor-cli_1.0.0_1777877232340_0.49805969230146263","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@akabeko/music-metadata-editor-cli","version":"1.0.1","keywords":["music","metadata","audio","tag","tags","editor","cli"],"author":"akabeko (http://akabeko.me/)","license":"MIT","_id":"@akabeko/music-metadata-editor-cli@1.0.1","maintainers":[{"name":"akabeko","email":"akabekobeko@gmail.com"}],"homepage":"https://github.com/akabekobeko/npm-music-metadata-editor/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/akabekobeko/npm-music-metadata-editor/issues"},"bin":{"mme":"./dist/bin/mme.js"},"dist":{"shasum":"3138f8933972c1cb4c946251f0c836f5fb4b4aa0","tarball":"https://registry.npmjs.org/@akabeko/music-metadata-editor-cli/-/music-metadata-editor-cli-1.0.1.tgz","fileCount":118,"integrity":"sha512-6k4G1ptVcFUfWeH/eM5uZpcn152M7TOGPY4omqIkCnN/WQMA7LyqiyBwXuMNwrcg7Vn8NT7UbjBYPSdJgmULPA==","signatures":[{"sig":"MEYCIQDJAsfxPX/DhUD+xlu3NQU87vGybnnPNCag9r60i4aLkwIhANoI37aLwYCRqV0tmxZ5FMVxTwT6JUGt9KQuKee2aMoS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215783},"type":"module","engines":{"node":">=24"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsx scripts/postBuildShebang.ts","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","fixtures:mp3":"tsx scripts/fixtures/mp3.ts","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"akabeko","email":"akabekobeko@gmail.com"},"repository":{"url":"git+https://github.com/akabekobeko/npm-music-metadata-editor.git","type":"git","directory":"packages/cli"},"description":"Command-line interface for @akabeko/music-metadata-editor.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"commander":"^15.0.0","@akabeko/music-metadata-editor":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","@tsconfig/node24":"^24.0.4"},"_npmOperationalInternal":{"tmp":"tmp/music-metadata-editor-cli_1.0.1_1780819362667_0.5804327849005781","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@akabeko/music-metadata-editor-cli","version":"1.0.2","keywords":["music","metadata","audio","tag","tags","editor","cli"],"author":"akabeko (http://akabeko.me/)","license":"MIT","_id":"@akabeko/music-metadata-editor-cli@1.0.2","maintainers":[{"name":"akabeko","email":"akabekobeko@gmail.com"}],"homepage":"https://github.com/akabekobeko/npm-music-metadata-editor/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/akabekobeko/npm-music-metadata-editor/issues"},"bin":{"mme":"./dist/bin/mme.js"},"dist":{"shasum":"c39f99f12884dc22d691d16f65c181488d9cdc2a","tarball":"https://registry.npmjs.org/@akabeko/music-metadata-editor-cli/-/music-metadata-editor-cli-1.0.2.tgz","fileCount":118,"integrity":"sha512-egVARpEWDqXT9dN+QVjm8Oj92ss0an5+R913IhOVS34GO1D6Z6F/8Bh74vrPDy+l41hD4XIwuXspK7HJxjiT8A==","signatures":[{"sig":"MEUCIQCj5FF5cZ3xxhlXVSHqqIOUoAIw0vbEhB1cG6watUkMfAIgJdaO2ZuJauBPDboPo/1yMOyBJePlGZHV3bDXdv7dmQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215785},"type":"module","engines":{"node":">=24"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsx scripts/postBuildShebang.ts","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","fixtures:mp3":"tsx scripts/fixtures/mp3.ts","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"akabeko","email":"akabekobeko@gmail.com"},"repository":{"url":"git+https://github.com/akabekobeko/npm-music-metadata-editor.git","type":"git","directory":"packages/cli"},"description":"Command-line interface for @akabeko/music-metadata-editor.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"commander":"^15.0.0","@akabeko/music-metadata-editor":"^1.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@tsconfig/node24":"^24.0.4"},"_npmOperationalInternal":{"tmp":"tmp/music-metadata-editor-cli_1.0.2_1786318313005_0.12483325665340095","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@akabeko/music-metadata-editor-cli","version":"1.0.3","keywords":["music","metadata","audio","tag","tags","editor","cli"],"author":"akabeko (http://akabeko.me/)","license":"MIT","_id":"@akabeko/music-metadata-editor-cli@1.0.3","maintainers":[{"name":"akabeko","email":"akabekobeko@gmail.com"}],"homepage":"https://github.com/akabekobeko/npm-music-metadata-editor/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/akabekobeko/npm-music-metadata-editor/issues"},"bin":{"mme":"./dist/bin/mme.js"},"dist":{"shasum":"0fee56a3ba9ad63d0d1cd19a18f6021f001282b0","tarball":"https://registry.npmjs.org/@akabeko/music-metadata-editor-cli/-/music-metadata-editor-cli-1.0.3.tgz","fileCount":118,"integrity":"sha512-uSP0bBaTh+QwRkU8RO0lhmgoMGKl+oAV+X3E7/QTh7McHOAA6kySXuO7kUIS7LlSx/he0phIZXvACxFvRXV+eA==","signatures":[{"sig":"MEQCICUKTrDIQizAJ5RdnxN+Upc9xl1cWL6o9n/E1XKo4ZbOAiATJe6Qz/R18jUVZkTiN/tbsLVHvgC8Zvxub5P3iVO02g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215785},"type":"module","engines":{"node":">=24"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsx scripts/postBuildShebang.ts","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","fixtures:mp3":"tsx scripts/fixtures/mp3.ts","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"akabeko","email":"akabekobeko@gmail.com"},"repository":{"url":"git+https://github.com/akabekobeko/npm-music-metadata-editor.git","type":"git","directory":"packages/cli"},"description":"Command-line interface for @akabeko/music-metadata-editor.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"^15.0.0","@akabeko/music-metadata-editor":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@tsconfig/node24":"^24.0.4"},"_npmOperationalInternal":{"tmp":"tmp/music-metadata-editor-cli_1.0.3_1786688934791_0.1424450121653924","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@akabeko/music-metadata-editor-cli","version":"1.1.0","keywords":["music","metadata","audio","tag","tags","editor","cli"],"author":"akabeko (http://akabeko.me/)","license":"MIT","_id":"@akabeko/music-metadata-editor-cli@1.1.0","maintainers":[{"name":"akabeko","email":"akabekobeko@gmail.com"}],"homepage":"https://github.com/akabekobeko/npm-music-metadata-editor/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/akabekobeko/npm-music-metadata-editor/issues"},"bin":{"mme":"./dist/bin/mme.js"},"dist":{"shasum":"d504f383f57183418807c33133d227921638ad29","tarball":"https://registry.npmjs.org/@akabeko/music-metadata-editor-cli/-/music-metadata-editor-cli-1.1.0.tgz","fileCount":118,"integrity":"sha512-M8w+bob8zl9oS3zvoDKKFQNmTJKeNA3Kf9Jw1y+2wAUVN3bm7KYXbg6qNGlmPs4zBcvHOjV5jp4dHvkRfrgqOA==","signatures":[{"sig":"MEUCIQDSiwj0wfNbkRrsJXYxzgSFmNMqzBEAFkN3m34g5VQoRQIgM1ZlKVGPlv2poJaTLvXbX+V/ht5TLoZ07DorN8578xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215869},"type":"module","engines":{"node":">=24"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsx scripts/postBuildShebang.ts","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","fixtures:mp3":"tsx scripts/fixtures/mp3.ts","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"akabeko","email":"akabekobeko@gmail.com"},"repository":{"url":"git+https://github.com/akabekobeko/npm-music-metadata-editor.git","type":"git","directory":"packages/cli"},"description":"Command-line interface for @akabeko/music-metadata-editor.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"^15.0.0","@akabeko/music-metadata-editor":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@tsconfig/node24":"^24.0.4"},"_npmOperationalInternal":{"tmp":"tmp/music-metadata-editor-cli_1.1.0_1786777330206_0.32458929461830976","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@akabeko/music-metadata-editor-cli","version":"1.1.1","keywords":["music","metadata","audio","tag","tags","editor","cli"],"author":"akabeko (http://akabeko.me/)","license":"MIT","_id":"@akabeko/music-metadata-editor-cli@1.1.1","maintainers":[{"name":"akabeko","email":"akabekobeko@gmail.com"}],"homepage":"https://github.com/akabekobeko/npm-music-metadata-editor/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/akabekobeko/npm-music-metadata-editor/issues"},"bin":{"mme":"./dist/bin/mme.js"},"dist":{"shasum":"8affedf49d3943fee38cba09a4d7fddb04f170bd","tarball":"https://registry.npmjs.org/@akabeko/music-metadata-editor-cli/-/music-metadata-editor-cli-1.1.1.tgz","fileCount":118,"integrity":"sha512-xIc/qNxw4CfbN4Z+UjrHNpFH1yuhdU0vTsMzwj6JwcW1V0RXUVpWfxWJ0h7hbzMTyiglJD+wkqKqjx6aVwR1LA==","signatures":[{"sig":"MEUCIQC7tV9G0FG1fGvk+gRTcuq3ttGpb8ju0+VTEfkEP4JhCQIgYa7ZZ9kxuqm+bUVihB+e22YEFUKJ65+dshX/yQY79EI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215869},"type":"module","engines":{"node":">=24"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsx scripts/postBuildShebang.ts","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","fixtures:mp3":"tsx scripts/fixtures/mp3.ts","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"akabeko","email":"akabekobeko@gmail.com"},"repository":{"url":"git+https://github.com/akabekobeko/npm-music-metadata-editor.git","type":"git","directory":"packages/cli"},"description":"Command-line interface for @akabeko/music-metadata-editor.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"^15.0.0","@akabeko/music-metadata-editor":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@tsconfig/node24":"^24.0.4"},"_npmOperationalInternal":{"tmp":"tmp/music-metadata-editor-cli_1.1.1_1786870922796_0.2800641051823407","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"_id":"@akabeko/music-metadata-editor-cli@1.2.0","bin":{"mme":"./dist/bin/mme.js"},"bugs":{"url":"https://github.com/akabekobeko/npm-music-metadata-editor/issues"},"dist":{"shasum":"f09146fd690992300e5c6f0793a39a1f9d77c8f6","tarball":"https://registry.npmjs.org/@akabeko/music-metadata-editor-cli/-/music-metadata-editor-cli-1.2.0.tgz","fileCount":118,"integrity":"sha512-jp+/hGBV8ZjxPJuBoVEVwkUkthw9RISMtDxlvUbRcyRUzVdPNaAS5C02s7hla/murS5ZVfH7akID/9z34CIiBg==","signatures":[{"sig":"MEYCIQCpZ26uYF6Ki5QdO5gEewhBw0j0kVLQ67Mq8rcBxKsDCAIhAMSm/kHfrGJ6OARIsqt7z8fhECG15hIsD+WYeD06zDiT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCNhMl7cWY3N+/6oODY6Tku2OsxIXBbsFH+jAUu3oGkfAIgIqhEuuqIIChqzlpMMlCoJJULFMLGXrs1Ij+64dGA8oI="}],"unpackedSize":215775},"name":"@akabeko/music-metadata-editor-cli","type":"module","author":"akabeko (http://akabeko.me/)","engines":{"node":">=24"},"license":"MIT","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsx scripts/postBuildShebang.ts","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","fixtures:mp3":"tsx scripts/fixtures/mp3.ts"},"version":"1.2.0","_npmUser":{"name":"akabeko","email":"akabekobeko@gmail.com"},"homepage":"https://github.com/akabekobeko/npm-music-metadata-editor/tree/main/packages/cli#readme","keywords":["music","metadata","audio","tag","tags","editor","cli"],"repository":{"url":"git+https://github.com/akabekobeko/npm-music-metadata-editor.git","type":"git","directory":"packages/cli"},"description":"Command-line interface for @akabeko/music-metadata-editor.","directories":{},"maintainers":[{"name":"akabeko","email":"akabekobeko@gmail.com"}],"dependencies":{"commander":"^15.0.0","@akabeko/music-metadata-editor":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.1","typescript":"^7.0.2","@types/node":"^26.6.1","@tsconfig/node24":"^24.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/music-metadata-editor-cli_1.2.0_1790149584840_0.6273688257250571"}}},"time":{"created":"2026-05-04T06:47:12.226Z","modified":"2026-09-23T07:46:25.125Z","1.0.0":"2026-05-04T06:47:12.483Z","1.0.1":"2026-06-07T08:02:42.847Z","1.0.2":"2026-08-09T23:31:53.158Z","1.0.3":"2026-08-14T06:28:54.938Z","1.1.0":"2026-08-15T07:02:10.354Z","1.1.1":"2026-08-16T09:02:02.937Z","1.2.0":"2026-09-23T07:46:24.929Z"},"bugs":{"url":"https://github.com/akabekobeko/npm-music-metadata-editor/issues"},"author":"akabeko (http://akabeko.me/)","license":"MIT","homepage":"https://github.com/akabekobeko/npm-music-metadata-editor/tree/main/packages/cli#readme","keywords":["music","metadata","audio","tag","tags","editor","cli"],"repository":{"url":"git+https://github.com/akabekobeko/npm-music-metadata-editor.git","type":"git","directory":"packages/cli"},"description":"Command-line interface for @akabeko/music-metadata-editor.","maintainers":[{"name":"akabeko","email":"akabekobeko@gmail.com"}],"readme":"# @akabeko/music-metadata-editor-cli\n\n[![npm](https://img.shields.io/npm/v/@akabeko/music-metadata-editor-cli.svg)](https://www.npmjs.com/package/@akabeko/music-metadata-editor-cli)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nEnglish / [Japanese](README.ja.md)\n\n`mme` is the command-line companion to [@akabeko/music-metadata-editor](../core). It reads and writes audio file metadata (tags, embedded pictures, chapter marks, lyrics) on top of the same core library used by the Node.js API.\n\n## Requirements\n\n- Node.js 24 or newer (matches `@akabeko/music-metadata-editor`).\n\n## Installation\n\n```sh\n# Global install\nnpm install -g @akabeko/music-metadata-editor-cli\n\n# Or invoke ad-hoc without installing\npnpm dlx @akabeko/music-metadata-editor-cli --help\nnpx @akabeko/music-metadata-editor-cli --help\n```\n\nThe bin name is `mme`.\n\n## Quick start\n\n```sh\n# Read metadata as JSON\nmme read song.mp3\n\n# Read a single field\nmme read song.mp3 --field tag.title\n\n# Write a tag (atomic by default)\nmme write song.mp3 --title 'Hello' --artist 'World'\n\n# Extract embedded cover art to a file\nmme picture extract song.mp3 --output cover.jpg\n\n# Print embedded lyrics in LRC format\nmme lyrics get song.mp3 --format lrc\n```\n\nFor a complete flag listing on any subcommand, use `mme help <subcommand>` or `mme <subcommand> --help`.\n\n## Subcommands\n\n| Command | Purpose |\n| --- | --- |\n| `mme read [file]` | Read metadata as JSON (default), pretty text, or a single field. Supports stdin streaming. |\n| `mme write [file]` | Set / clear tag fields. Atomic file write by default; `--dry-run` previews without touching disk. |\n| `mme picture extract <file>` | Extract one embedded picture to a file or stdout. |\n| `mme picture set <file>` | Embed a picture; `--replace` swaps existing entries. |\n| `mme picture clear <file>` | Remove embedded pictures (optionally scoped by `--kind`). |\n| `mme chapter list <file>` | List chapter marks (JSON or `--pretty` table). |\n| `mme chapter set <file>` | Replace the chapter list from a JSON document. |\n| `mme chapter clear <file>` | Remove every chapter mark. |\n| `mme lyrics get <file>` | Print lyrics as `text` (default), `lrc`, or `json`. |\n| `mme lyrics set <file>` | Embed lyrics from a `--text` / `--lrc` / `--json` source. |\n| `mme lyrics clear <file>` | Remove embedded lyrics. |\n\n### Global flags\n\n| Flag | Behavior |\n| --- | --- |\n| `-V, --version` | Print the CLI version. |\n| `-h, --help` | Print usage. |\n| `--no-color` | Disable ANSI color in stderr output. |\n| `--quiet` | Suppress info / warning lines (errors still flow). |\n| `--verbose` | Surface debug traces. Mutually exclusive with `--quiet` (exit `2`). |\n\nThe CLI also honors the [NO_COLOR](https://no-color.org/) and [FORCE_COLOR](https://force-color.org/) environment variables.\n\n## Exit codes\n\nThe exit codes are the same shape as the rest of the project. The canonical source of truth is [`docs/pkg/cli/plan/phase-01-foundation.md`](../../docs/pkg/cli/plan/phase-01-foundation.md); the table is mirrored here for quick reference.\n\n| Code | Meaning |\n| --- | --- |\n| `0` | Success. |\n| `1` | Generic / unclassified failure (also the fallback for unmapped `MmeError` codes). |\n| `2` | Misuse — argument parsing failed (commander), including `--quiet --verbose` together. |\n| `3` | Format detection failed or no reader/writer is registered (`MmeError.code === \"unsupported-format\"`). |\n| `4` | File / stream I/O failure (`ENOENT`, `EACCES`, …). |\n| `5` | A tag block was found but its bytes were structurally invalid (`MmeError.code === \"invalid-tag\"`). |\n\nCI / shell users can rely on `if [ $? -eq 0 ]; then ...; fi`; classified failures pick a code from the table, while unknown failures land at `1` rather than misusing an unrelated slot.\n\n## Known limitations\n\n- `pictures[].data` is **not** emitted in JSON output (binary in JSON is unreadable). The CLI replaces it with `byteLength`; use `mme picture extract` for the raw bytes.\n- `--clear all` works in `mme write`, but stream mode (`mme write --stdin`) cannot use `--clear` because clearing requires a current track to subtract from. Use file mode to clear fields.\n- `mme lyrics get --format text` ignores the synchronized timing data in LRC payloads — request `--format lrc` or `--format json` to retain timestamps.\n- Shell completion scripts are not shipped yet. The `commander` ecosystem has third-party generators (e.g. `@commander-js/extra-typings` and `bash-complete-commander`); a future release may bundle one.\n\n## Existing-tool translation table\n\nQuick mapping between common flags from other taggers and the closest `mme` invocation. Not every flag has a 1:1 equivalent; consult `mme <subcommand> --help` for the canonical surface.\n\n### eyeD3 (ID3 / MP3)\n\n| eyeD3 | mme |\n| --- | --- |\n| `eyeD3 song.mp3` | `mme read song.mp3 --pretty` |\n| `eyeD3 --title 'X' song.mp3` | `mme write song.mp3 --title 'X'` |\n| `eyeD3 --artist 'A' --album 'B' song.mp3` | `mme write song.mp3 --artist 'A' --album 'B'` |\n| `eyeD3 --add-image cover.jpg:FRONT_COVER song.mp3` | `mme picture set song.mp3 --input cover.jpg --kind cover-front` |\n| `eyeD3 --remove-all-images song.mp3` | `mme picture clear song.mp3` |\n| `eyeD3 --remove-all song.mp3` | `mme write song.mp3 --clear all` |\n\n### mid3v2 (mutagen, ID3v2)\n\n| mid3v2 | mme |\n| --- | --- |\n| `mid3v2 song.mp3` | `mme read song.mp3 --pretty` |\n| `mid3v2 -t 'X' song.mp3` | `mme write song.mp3 --title 'X'` |\n| `mid3v2 -a 'A' -A 'B' song.mp3` | `mme write song.mp3 --artist 'A' --album 'B'` |\n| `mid3v2 --picture cover.jpg song.mp3` | `mme picture set song.mp3 --input cover.jpg` |\n| `mid3v2 --delete-all song.mp3` | `mme write song.mp3 --clear all` |\n\n### metaflac (FLAC)\n\n| metaflac | mme |\n| --- | --- |\n| `metaflac --show-tag=TITLE song.flac` | `mme read song.flac --field tag.title` |\n| `metaflac --set-tag=TITLE='X' song.flac` | `mme write song.flac --title 'X'` |\n| `metaflac --import-picture-from=cover.jpg song.flac` | `mme picture set song.flac --input cover.jpg` |\n| `metaflac --remove-all-tags song.flac` | `mme write song.flac --clear all` |\n\n### AtomicParsley (MP4 / M4A / M4B)\n\n| AtomicParsley | mme |\n| --- | --- |\n| `AtomicParsley song.m4a` | `mme read song.m4a --pretty` |\n| `AtomicParsley song.m4a --title 'X'` | `mme write song.m4a --title 'X'` |\n| `AtomicParsley song.m4a --artwork cover.jpg` | `mme picture set song.m4a --input cover.jpg` |\n| `AtomicParsley song.m4a --remove artwork` | `mme picture clear song.m4a` |\n| `AtomicParsley song.m4a --DeepScan ...` | `mme write song.m4a ...` (atomic by default — no `--overWrite` needed) |\n\n## Development\n\nInside `packages/cli`:\n\n```sh\npnpm typecheck\npnpm test\npnpm build\n```\n\nOr via the workspace:\n\n```sh\npnpm -r typecheck\npnpm -r test\npnpm -r build\npnpm check\n```\n\nA dry-run publish (no actual upload) is available via:\n\n```sh\npnpm --filter @akabeko/music-metadata-editor-cli publish --dry-run --access public\n```\n\n## License\n\n[MIT](LICENSE).\n","readmeFilename":""}