From c2b462cc2c9cd880343144c69307c74776495486 Mon Sep 17 00:00:00 2001 From: audioshaker Date: Thu, 29 Oct 2026 16:45:02 -0700 Subject: [PATCH 1/5] Rename the Claude Code plugin and skill to audioshake-cli The plugin, the skill, the CLI command and the marketplace were all called `audioshake`, so the install line read `audioshake@audioshake` and nothing said what the plugin was. `audioshake-cli` names what it is and leaves room for sibling plugins in the same marketplace. Nothing has shipped under the old name. The marketplace entry in audioshake/claude-plugins must be renamed to match, and its ref moved, before the README install command resolves. Co-Authored-By: Claude Fable 5.1 --- CLAUDE.md | 4 ++-- CONTRIBUTING.md | 4 ++-- README.md | 2 +- plugin/.claude-plugin/plugin.json | 4 ++-- plugin/skills/{audioshake => audioshake-cli}/SKILL.md | 2 +- tests/test_skill_docs.py | 6 +++--- 6 files changed, 11 insertions(+), 11 deletions(-) rename plugin/skills/{audioshake => audioshake-cli}/SKILL.md (99%) diff --git a/CLAUDE.md b/CLAUDE.md index 9535b27..1e26fb8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,7 +39,7 @@ formats Python code blocks inside Markdown, so keep doc examples under 100 colum ## When you change the CLI, update the skill and the docs -`plugin/skills/audioshake/SKILL.md` teaches agents to use the CLI. `plugin/` is +`plugin/skills/audioshake-cli/SKILL.md` teaches agents to use the CLI. `plugin/` is a Claude Code plugin, listed in the `audioshake/claude-plugins` marketplace, which fetches only that folder. It must match the CLI exactly. Whenever a change touches any of these: @@ -52,7 +52,7 @@ a change touches any of these: then in the same PR: -1. Update `plugin/skills/audioshake/SKILL.md` (tables, examples, gotchas). +1. Update `plugin/skills/audioshake-cli/SKILL.md` (tables, examples, gotchas). 2. Update `docs/cli.md` and, for library changes, `docs/library.md`. 3. Add a line to the top section of `CHANGELOG.md`. Until 0.1.0 ships, that is the 0.1.0 entry itself, written as what the release does, not how it changed. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d52aae8..6dc14c3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -93,13 +93,13 @@ behind it. The rules that most often come up in review: ## Docs travel with the change -`plugin/skills/audioshake/SKILL.md` teaches AI agents to use the CLI and ships +`plugin/skills/audioshake-cli/SKILL.md` teaches AI agents to use the CLI and ships as a Claude Code plugin from `plugin/`, so it must match the CLI exactly. When your change touches a command, an option, a default, the `--json` shape, the output layout, an exit code, authentication or model aliases, update in the same PR: -1. `plugin/skills/audioshake/SKILL.md`, and bump `version` in +1. `plugin/skills/audioshake-cli/SKILL.md`, and bump `version` in `plugin/.claude-plugin/plugin.json` when its guidance changes. 2. `docs/cli.md`, and `docs/library.md` for library changes. 3. `CHANGELOG.md`: add a line to the top section, written as what the release diff --git a/README.md b/README.md index 1b4ba53..8e365b2 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ and library. Install it from the AudioShake marketplace inside Claude Code: ``` /plugin marketplace add audioshake/claude-plugins -/plugin install audioshake@audioshake +/plugin install audioshake-cli@audioshake ``` Then ask for stems, an instrumental, isolated dialogue or lyrics from a file and diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index dfcabdf..a2e2682 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { - "name": "audioshake", - "displayName": "AudioShake", + "name": "audioshake-cli", + "displayName": "AudioShake CLI", "description": "AudioShake is a platform for state-of-the-art AI source separation, transcription, and content analysis — powering post-production workflows, karaoke, dubbing, speech enhancement, music copyright compliance, improving ASR accuracy, and AI training data preparation — at scale, and in production.", "version": "0.3.11", "author": { "name": "AudioShake" }, diff --git a/plugin/skills/audioshake/SKILL.md b/plugin/skills/audioshake-cli/SKILL.md similarity index 99% rename from plugin/skills/audioshake/SKILL.md rename to plugin/skills/audioshake-cli/SKILL.md index 0e14359..ed127f5 100644 --- a/plugin/skills/audioshake/SKILL.md +++ b/plugin/skills/audioshake-cli/SKILL.md @@ -1,5 +1,5 @@ --- -name: audioshake +name: audioshake-cli description: Use the `audioshake` CLI and Python library to run AudioShake models on audio or video files: stem separation (vocals, drums, bass, guitar, piano...), dialogue and effects isolation, speech denoise/dereverb, multi-speaker separation, music detection/removal, lyric transcription and alignment. Trigger when the user wants stems, an instrumental, an a cappella, isolated dialogue, speaker separation, lyrics or word timings from media, or asks about AudioShake tasks, models or credits. --- diff --git a/tests/test_skill_docs.py b/tests/test_skill_docs.py index 849445f..e2bec74 100644 --- a/tests/test_skill_docs.py +++ b/tests/test_skill_docs.py @@ -14,7 +14,7 @@ from audioshake.cli import main ROOT = Path(__file__).resolve().parent.parent -SKILL_PATH = ROOT / "plugin" / "skills" / "audioshake" / "SKILL.md" +SKILL_PATH = ROOT / "plugin" / "skills" / "audioshake-cli" / "SKILL.md" # Set to 1 in CI, which runs from the repository: there a missing skill must fail # rather than skip, or the check that keeps it in step with the CLI would # silently stop running. @@ -56,7 +56,7 @@ def _option_forms(param: click.Parameter) -> list[str]: @pytest.mark.parametrize("name,command", COMMANDS, ids=[c[0] for c in COMMANDS]) def test_every_command_is_documented(name, command): leaf = name.split()[-1] - assert leaf in SKILL, f"`{name}` is missing from plugin/skills/audioshake/SKILL.md" + assert leaf in SKILL, f"`{name}` is missing from plugin/skills/audioshake-cli/SKILL.md" assert leaf in CLI_DOC, f"`{name}` is missing from docs/cli.md" @@ -66,7 +66,7 @@ def test_every_option_is_documented(where, param): if param.name == "version": return assert any(form in SKILL for form in forms), ( - f"{where} option {forms} is missing from plugin/skills/audioshake/SKILL.md" + f"{where} option {forms} is missing from plugin/skills/audioshake-cli/SKILL.md" ) assert any(form in CLI_DOC for form in forms), ( f"{where} option {forms} is missing from docs/cli.md" From 40d24ee285d526902e36b5d8c8698c3794c08f68 Mon Sep 17 00:00:00 2001 From: audioshaker Date: Thu, 29 Oct 2026 17:01:19 -0700 Subject: [PATCH 2/5] Add a Codex plugin manifest beside the Claude Code one Add plugin/.codex-plugin/plugin.json so the audioshake-cli plugin installs from Codex CLI, the Codex IDE extensions and the ChatGPT desktop app as well as Claude Code. The skill folder is shared; Codex needs an explicit skills path and an interface block, which the Claude manifest does not carry. Document the second manifest in CONTRIBUTING.md and CLAUDE.md, and add the Codex install commands to the README. Co-Authored-By: Claude Fable 5.1 --- CLAUDE.md | 6 ++++-- CONTRIBUTING.md | 7 ++++--- README.md | 13 +++++++++++-- plugin/.codex-plugin/plugin.json | 27 +++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 plugin/.codex-plugin/plugin.json diff --git a/CLAUDE.md b/CLAUDE.md index 1e26fb8..a2d0507 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -40,8 +40,10 @@ formats Python code blocks inside Markdown, so keep doc examples under 100 colum ## When you change the CLI, update the skill and the docs `plugin/skills/audioshake-cli/SKILL.md` teaches agents to use the CLI. `plugin/` is -a Claude Code plugin, listed in the `audioshake/claude-plugins` marketplace, -which fetches only that folder. It must match the CLI exactly. Whenever +a Claude Code and Codex plugin, listed in the `audioshake/claude-plugins` marketplace, +which fetches only that folder. The two manifests, `.claude-plugin/plugin.json` +and `.codex-plugin/plugin.json`, must carry the same `name` and `version`. +It must match the CLI exactly. Whenever a change touches any of these: - a command, option or argument (added, renamed, removed, new default) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6dc14c3..65e3e2e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -94,13 +94,14 @@ behind it. The rules that most often come up in review: ## Docs travel with the change `plugin/skills/audioshake-cli/SKILL.md` teaches AI agents to use the CLI and ships -as a Claude Code plugin from `plugin/`, so it must match the CLI exactly. +as a Claude Code and Codex plugin from `plugin/`, so it must match the CLI exactly. When your change touches a command, an option, a default, the `--json` shape, the output layout, an exit code, authentication or model aliases, update in the same PR: -1. `plugin/skills/audioshake-cli/SKILL.md`, and bump `version` in - `plugin/.claude-plugin/plugin.json` when its guidance changes. +1. `plugin/skills/audioshake-cli/SKILL.md`, and bump `version` in both + `plugin/.claude-plugin/plugin.json` and `plugin/.codex-plugin/plugin.json` + when its guidance changes. 2. `docs/cli.md`, and `docs/library.md` for library changes. 3. `CHANGELOG.md`: add a line to the top section, written as what the release does for a user rather than how the code changed. diff --git a/README.md b/README.md index 8e365b2..2cddedb 100644 --- a/README.md +++ b/README.md @@ -187,14 +187,23 @@ vocal stems. ## Claude Code plugin -The `plugin/` folder is a Claude Code plugin that teaches Claude to use the CLI -and library. Install it from the AudioShake marketplace inside Claude Code: +The `plugin/` folder is a plugin for Claude Code and Codex that teaches the +agent to use the CLI and library. Install it from the AudioShake marketplace. + +Inside Claude Code: ``` /plugin marketplace add audioshake/claude-plugins /plugin install audioshake-cli@audioshake ``` +From your shell, for Codex: + +```bash +codex plugin marketplace add audioshake/claude-plugins +codex plugin add audioshake-cli@audioshake +``` + Then ask for stems, an instrumental, isolated dialogue or lyrics from a file and Claude will run `audioshake` for you. The skill is kept in step with the CLI by `tests/test_skill_docs.py`. diff --git a/plugin/.codex-plugin/plugin.json b/plugin/.codex-plugin/plugin.json new file mode 100644 index 0000000..8ac5554 --- /dev/null +++ b/plugin/.codex-plugin/plugin.json @@ -0,0 +1,27 @@ +{ + "name": "audioshake-cli", + "version": "0.3.11", + "description": "Run AudioShake models from Codex with the audioshake CLI and Python library: stem separation, dialogue isolation, speech clean-up, lyric transcription and alignment.", + "author": { "name": "AudioShake", "url": "https://www.audioshake.ai" }, + "homepage": "https://github.com/audioshake/audioshake-python", + "repository": "https://github.com/audioshake/audioshake-python", + "license": "MIT", + "keywords": ["audioshake", "audio", "stem separation", "transcription", "cli"], + "skills": "./skills", + "interface": { + "displayName": "AudioShake CLI", + "shortDescription": "Stems, dialogue isolation, transcription and lyric alignment", + "longDescription": "AudioShake is a platform for state-of-the-art AI source separation, transcription, and content analysis — powering post-production workflows, karaoke, dubbing, speech enhancement, music copyright compliance, improving ASR accuracy, and AI training data preparation — at scale, and in production. This plugin teaches Codex to run AudioShake models on audio and video files with the audioshake CLI and Python library: stem separation (vocals, drums, bass, guitar, piano and more), dialogue and effects isolation, speech denoise and dereverb, multi-speaker separation, music detection and removal, and lyric transcription and alignment.", + "developerName": "AudioShake", + "category": "Creativity", + "capabilities": [], + "defaultPrompt": [ + "Split song.wav into vocals, drums, bass and other", + "Pull the dialogue out of scene.mp4 and drop the music", + "Transcribe the lyrics of track.mp3 with word timings" + ], + "websiteURL": "https://www.audioshake.ai", + "privacyPolicyURL": "https://www.audioshake.ai/privacy-policy", + "termsOfServiceURL": "https://www.audioshake.ai/terms" + } +} From 184dc5a572ec03dd877c58ee322766acc201b3cb Mon Sep 17 00:00:00 2001 From: audioshaker Date: Thu, 29 Oct 2026 18:55:18 -0700 Subject: [PATCH 3/5] Keep the Codex shortDescription within the 30-character directory limit Co-Authored-By: Claude Fable 5.1 --- plugin/.codex-plugin/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/.codex-plugin/plugin.json b/plugin/.codex-plugin/plugin.json index 8ac5554..f898d53 100644 --- a/plugin/.codex-plugin/plugin.json +++ b/plugin/.codex-plugin/plugin.json @@ -10,7 +10,7 @@ "skills": "./skills", "interface": { "displayName": "AudioShake CLI", - "shortDescription": "Stems, dialogue isolation, transcription and lyric alignment", + "shortDescription": "Stems, dialogue and lyrics", "longDescription": "AudioShake is a platform for state-of-the-art AI source separation, transcription, and content analysis — powering post-production workflows, karaoke, dubbing, speech enhancement, music copyright compliance, improving ASR accuracy, and AI training data preparation — at scale, and in production. This plugin teaches Codex to run AudioShake models on audio and video files with the audioshake CLI and Python library: stem separation (vocals, drums, bass, guitar, piano and more), dialogue and effects isolation, speech denoise and dereverb, multi-speaker separation, music detection and removal, and lyric transcription and alignment.", "developerName": "AudioShake", "category": "Creativity", From 69b6247ee033a7cdc65e65a15f81728df4a18faf Mon Sep 17 00:00:00 2001 From: audioshaker Date: Mon, 2 Nov 2026 10:51:25 -0800 Subject: [PATCH 4/5] Point the marketplace references at the renamed audioshake/plugins repo The catalog repo was renamed from claude-plugins to plugins now that it serves Codex as well as Claude Code. The old name only redirects. Co-Authored-By: Claude Fable 5.1 --- CLAUDE.md | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index a2d0507..4277522 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -40,7 +40,7 @@ formats Python code blocks inside Markdown, so keep doc examples under 100 colum ## When you change the CLI, update the skill and the docs `plugin/skills/audioshake-cli/SKILL.md` teaches agents to use the CLI. `plugin/` is -a Claude Code and Codex plugin, listed in the `audioshake/claude-plugins` marketplace, +a Claude Code and Codex plugin, listed in the `audioshake/plugins` marketplace, which fetches only that folder. The two manifests, `.claude-plugin/plugin.json` and `.codex-plugin/plugin.json`, must carry the same `name` and `version`. It must match the CLI exactly. Whenever diff --git a/README.md b/README.md index 2cddedb..f4c44f7 100644 --- a/README.md +++ b/README.md @@ -193,14 +193,14 @@ agent to use the CLI and library. Install it from the AudioShake marketplace. Inside Claude Code: ``` -/plugin marketplace add audioshake/claude-plugins +/plugin marketplace add audioshake/plugins /plugin install audioshake-cli@audioshake ``` From your shell, for Codex: ```bash -codex plugin marketplace add audioshake/claude-plugins +codex plugin marketplace add audioshake/plugins codex plugin add audioshake-cli@audioshake ``` From 62ad2317b8a5620803a4548cf18ff36b597b4802 Mon Sep 17 00:00:00 2001 From: audioshaker Date: Mon, 2 Nov 2026 12:28:18 -0800 Subject: [PATCH 5/5] Name both agents in the README's plugin section The heading and closing sentence still said Claude only, while the section now documents the Codex install as well. Co-Authored-By: Claude Fable 5.1 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f4c44f7..e7d0e53 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,7 @@ format. Several models run from one upload: `-m effects,dialogue,music_fx` gives the dialogue, music and effects stems, `-m vocals_backing,vocals_lead` the two vocal stems. -## Claude Code plugin +## Claude Code and Codex plugin The `plugin/` folder is a plugin for Claude Code and Codex that teaches the agent to use the CLI and library. Install it from the AudioShake marketplace. @@ -205,7 +205,7 @@ codex plugin add audioshake-cli@audioshake ``` Then ask for stems, an instrumental, isolated dialogue or lyrics from a file and -Claude will run `audioshake` for you. The skill is kept in step with the CLI by +the agent runs `audioshake` for you. The skill is kept in step with the CLI by `tests/test_skill_docs.py`. ## Development