diff --git a/CLAUDE.md b/CLAUDE.md index 1e26fb8..4277522 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/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..e7d0e53 100644 --- a/README.md +++ b/README.md @@ -185,18 +185,27 @@ 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 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 marketplace add audioshake/plugins /plugin install audioshake-cli@audioshake ``` +From your shell, for Codex: + +```bash +codex plugin marketplace add audioshake/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 +the agent runs `audioshake` for you. The skill is kept in step with the CLI by `tests/test_skill_docs.py`. ## Development diff --git a/plugin/.codex-plugin/plugin.json b/plugin/.codex-plugin/plugin.json new file mode 100644 index 0000000..f898d53 --- /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 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", + "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" + } +}