Developer docs

CLI

kinetune runs every operation from the terminal. It prints JSON whenever its output is piped, so local agents and scripts read it directly.

Install (Node 20+)
npm install -g @kinetune/cli
# or without installing:
npx @kinetune/cli --help
Sign in
kinetune auth login                            # browser sign-in, picks the workspace
kinetune auth login --api-key kt_live_YOUR_KEY  # or store an API key
kinetune auth status

Working with it

Commands follow the API: kinetune songs list --q "tide" --limit 20, kinetune looks get LOOK_ID, kinetune quote lyric-video --song-id SONG_ID. Path ids are arguments, fields are flags, and --input file.json (or - for stdin) takes the whole request. Files go up by path or https URL: --audio ./song.wav. Every page of the API reference names its command.

kinetune create … always quotes first and asks before charging; pass --yes or a ceiling with --max-credits 120 in scripts. kinetune videos wait and kinetune videos download finish the job.

Give a local agent (Codex, Cursor, opencode, Claude Code…) the Kinetune skill so it knows the workflow: npx skills add kinetune/skills. It's open source at kinetune/skills.

For agents
kinetune schema create canvas   # JSON Schema of a command's input
kinetune openapi                 # the whole API as OpenAPI 3.1
kinetune songs list --json       # JSON even in a terminal

Environment and exit codes

KINETUNE_API_KEYA workspace API key; wins over the stored sign-in (CI, servers).
KINETUNE_URLAnother deployment of the app (defaults to this site).
KINETUNE_CONFIG_DIRWhere credentials live; default ~/.config/kinetune (mode 600).
Exit codes0 done · 1 API or network error · 2 invalid usage or over --max-credits · 3 not signed in or not allowed