A high-performance command-line interface for the AudioShake API, built in Rust.
- Stem Separation: Extract vocals, drums, bass, guitar, piano, and other instruments
- Transcription: Convert speech to text with word-level timestamps
- Dialogue Extraction: Isolate speech from audio/video for post-production
- Local File Support: Process local files via Cloudflare R2 cloud storage
- Async Processing: Submit tasks and monitor progress or use webhooks
- Cross-Platform: Runs on macOS, Linux, and Windows
cargo install audioshake-cliDownload the latest release for your platform from the GitHub Releases page (once published).
-
Get an API key from the AudioShake Dashboard
-
Set your API key:
export AUDIOSHAKE_API_KEY=ashke_your_api_key_here
# Or create a .env file
echo "AUDIOSHAKE_API_KEY=ashke_your_api_key_here" > .env- Process an audio file:
# Extract vocals from a song
audioshake process song.mp3 -m vocals --wait
# High-quality stem separation
audioshake process track.wav -m vocals -m instrumental --hq --wait -o ./stems
# Transcribe audio
audioshake process podcast.mp3 -m transcription -f json --wait# Basic vocal extraction
audioshake process song.mp3 -m vocals --wait
# Full band separation
audioshake process song.mp3 -m vocals -m drums -m bass -m guitar -m piano --wait
# High-quality variant (1.5 credits/min)
audioshake process track.wav -m vocals -m instrumental --hq --wait# Text transcription
audioshake process interview.mp3 -m transcription -f txt --wait
# With word-level timestamps
audioshake process podcast.mp3 -m transcription -m alignment -f json --wait
# Spanish transcription
audioshake process audio.mp3 -m transcription --language es --wait# Extract dialogue from video
audioshake process video.mp4 -m dialogue -m effects -f wav --wait# Submit task without waiting
audioshake process song.mp3 -m vocals
# Output: Task created: abc123-def456
# Check status
audioshake task status abc123-def456
# Download results when complete
audioshake task download abc123-def456 -o ./output| Command | Description |
|---|---|
audioshake process |
Submit audio/video for processing |
audioshake task list |
List tasks |
audioshake task status |
Get task status |
audioshake task download |
Download task outputs |
audioshake task wait |
Wait for task completion |
audioshake task statistics |
Show usage statistics |
audioshake models |
List available models |
audioshake config |
Manage configuration |
audioshake completion |
Generate shell completions |
Configuration is loaded from (in order of priority):
--api-keycommand line flagAUDIOSHAKE_API_KEYenvironment variable.envfile in current directory~/.config/audioshake/config.toml
api_key = "ashke_your_api_key_here"
base_url = "https://api.audioshake.ai"
default_output_dir = "./output"
default_format = "wav"
default_poll_interval = 5
default_timeout = 3600
# Cloud storage for local file uploads (required for local file processing)
[storage]
provider = "r2"
bucket = "my-audioshake-uploads"
public_url_base = "https://my-audioshake-uploads.r2.dev"
[storage.r2]
account_id = "your_cloudflare_account_id"
access_key_id = "your_r2_access_key"
# secret_access_key set via AUDIOSHAKE_R2_SECRET_ACCESS_KEY env varThe AudioShake Tasks API requires publicly accessible URLs. To process local files, you need to configure cloud storage (Cloudflare R2 recommended for zero egress fees):
-
Create a Cloudflare account at dash.cloudflare.com
-
Create an R2 bucket:
- Go to R2 Object Storage
- Create a bucket (e.g.,
audioshake-uploads) - Enable public access in Settings (r2.dev subdomain)
-
Create an R2 API token:
- Go to R2 → Manage API Tokens
- Create a token with "Object Read & Write" permissions
-
Configure the CLI:
# Via environment variables
export AUDIOSHAKE_STORAGE_PROVIDER=r2
export AUDIOSHAKE_STORAGE_BUCKET=my-audioshake-uploads
export AUDIOSHAKE_STORAGE_PUBLIC_URL_BASE=https://my-audioshake-uploads.r2.dev
export AUDIOSHAKE_R2_ACCOUNT_ID=your_account_id
export AUDIOSHAKE_R2_ACCESS_KEY_ID=your_access_key
export AUDIOSHAKE_R2_SECRET_ACCESS_KEY=your_secret_key
# Or add to .env fileSee ADR-002 for technical details.
vocals- Isolated vocal trackinstrumental- Instrumental (no vocals)drums- Drum trackbass- Bass trackguitar- Guitar trackpiano- Piano trackstrings- String instrumentswind- Wind instruments
dialogue- Isolated speecheffects- Sound effects and ambiencemusic_detection- Detect music sections
transcription- Speech to textalignment- Word-level timestamps
multi_voice- Separate individual speakers into distinct tracks
Note: The
multi_voicemodel requires enterprise account enablement. Standard developer accounts will receive an "Insufficient credits" error even with available credits. Contact info@audioshake.ai to request access.
# Requires enterprise access
audioshake process podcast.mp3 -m multi-voice --variant n_speaker --wait
▐▛███▜▌ Claude Code v2.1.3
▝▜█████▛▘ Opus 4.5 · Claude Max
▘▘ ▝▝ ~/Documents/development/ai/audioshake-cli
❯ I need to isolate the voices from music inside this video:
/Users/cphillipson/Movies/build-with-me/build-with-me-episode7-2026-01-10.mp4. Is there a CLI
command available that will do that for me?
⏺ Based on the audioshake-cli project you have open, yes! This CLI can separate vocals from music. Let me check the exact command syntax for you.
⏺ Bash(cargo run -- process --help 2>/dev/null || cargo run -- --help 2>/dev/null) timeout: 1m 0s
⎿ Command-line interface for the AudioShake audio processing API
Usage: audioshake [OPTIONS] <COMMAND>
… +24 lines (ctrl+o to expand)
⏺ To isolate voices (vocals) from your video, run:
audioshake process "/Users/cphillipson/Movies/build-with-me/build-with-me-episode7-2026-01-10.mp4" --model vocals --wait --output-dir ./output
This will:
1. Submit your video file for processing
2. Use the vocals model to separate voices from music
3. Wait for completion and download the result to ./output
Note: You'll need an AUDIOSHAKE_API_KEY environment variable set (or pass --api-key).
If you also want the instrumental track (music without vocals), add another model:
audioshake process "/Users/cphillipson/Movies/build-with-me/build-with-me-episode7-2026-01-10.mp4" --model vocals --model instrumental --wait
- CLI Reference - Complete command documentation
- API Integration - API details and examples
- Technical Spec - Architecture and implementation
- PRD - Product requirements
# Clone repository
git clone https://github.com/pacphi/audioshake-cli.git
cd audioshake-cli
# Install dependencies
make install
# Build
make build
# Run tests
make test
# Run linter
make lintMIT License - see LICENSE for details.