When we shipped v1.1.0, a few people hit the same wall trying to install. You had to manually edit your Claude config JSON, figure out where it lives on your OS, get the paths right, and restart the client. For a developer, annoying but doable. For a producer who just wanted to analyze a stem, a real blocker.
This release fixes that.
phantom setup
One command. It handles everything.
phantom setup
It figures out where your MCP config lives, writes the right entries, installs the plugin, and connects the Reaper bridge if you’re using it. You don’t touch a JSON file. You don’t guess at paths.
We also added the full lifecycle commands: phantom version, phantom update, phantom uninstall. It behaves like a real CLI tool now.
Under the hood
Setup was the headline, but we fixed a bunch of things that were quietly causing problems.
Install reliability. pip install fails on stock macOS because of PEP 668. The OS protects its system Python. We switched to uv as the primary installer with the bootstrap pinned to a specific version, so you’re not pulling whatever got published that day.
Stem separation timeouts. Demucs would occasionally just hang. We moved it to a ThreadPoolExecutor with a 600-second timeout so if it’s going to fail, it fails cleanly.
Concurrent writes. match_to_reference had a race condition if you ran it from two places at once. A lock file now prevents that. Profile caching had a TOCTOU race too. Fixed.
Interactive extras prompt. Phantom now shows you the size and license before downloading optional extras. You know what you’re getting.
Claude Code marketplace
Phantom has a marketplace manifest now, so it shows up correctly in the Claude Code plugin directory. Cleaner install path if you’re coming in through Claude Code.
Try it
pip install --upgrade phantom-audio
phantom setup
Then tell Claude to analyze something and see what comes back. If anything feels off, open an issue. Early user feedback is what drove most of this release.