wavekat

Reference

Global flags

All commands accept:

FlagDescription
--jsonEmit raw JSON instead of the human-readable table.
--helpShow usage for the current command.

List commands additionally accept:

FlagDescription
--page <n>Page index (1-based).
--page-size <n>Items per page. Default 20.

Environment variables

VariableUsed for
WK_VERSIONPin a version when running the install script.
WK_INSTALL_DIROverride the install script’s target directory.
WK_TOKENPre-minted CLI token (skip the browser login).
WK_BASE_URLOverride the platform base URL (defaults to https://platform.wavekat.com).
WK_VOICE_BINPath to the WaveKat Voice engine (wavekat-voice) for wk voice, when it isn’t found automatically.
WK_WITH_VOICE1 makes the install script also install the WaveKat Voice engine (same as --with-voice).

Commands → endpoints

Each command maps to a single platform endpoint:

CommandEndpoint
wk loginLoopback OAuth (or, with no terminal / --code, POST /api/auth/cli/codes/exchange) + GET /api/me
wk logoutPOST /api/auth/cli/tokens/revoke-current
wk meGET /api/me
wk voice …None; runs a WaveKat Voice engine (the app’s, or one installed on its own)
wk voice install / updateGET https://dl.wavekat.com/voice-engine/latest (beta with --beta) + the engine archive and its checksum; none when the app’s engine is copied instead
wk voice loginPOST /api/auth/cli/tokens (a token for the engine); DELETE /api/auth/cli/tokens/{id} when the engine doesn’t keep it
wk flows list / show <id>GET /api/voice/flows / GET /api/voice/flows/{id}
wk flows validate <file>POST /api/voice/flows/validate
wk flows create <file>POST /api/voice/flows
wk flows update <id> <file>PUT /api/voice/flows/{id}
wk flows render <id>POST /api/voice/prompts/generate per text prompt, then PUT /api/voice/flows/{id}
wk flows publish <id>POST /api/voice/flows/{id}/publish
wk flows delete <id> --yesDELETE /api/voice/flows/{id}
wk flows voicesGET /api/voice/prompts/voices
wk flows upload <file.wav>POST /api/voice/prompts/upload (also used by create / update for local audio files)
wk versionLocal binary + GET /api/health
wk updateGET https://dl.wavekat.com/wk/latest + re-runs install.sh
wk uninstallPOST /api/auth/cli/tokens/revoke-current, then deletes auth.json and the binary
wk agentsLocal-only; prints the bundled AGENTS.md
wk projects listGET /api/projects
wk projects show <id>GET /api/projects/{id}
wk annotations list <project-id>GET /api/projects/{id}/annotations
wk files list <project-id>GET /api/projects/{id}/files
wk files reserve <id> [<id>…]POST /api/files/{id}/test-reservation (one call per id)
wk files unreserve <id> [<id>…]DELETE /api/files/{id}/test-reservation (one call per id)
wk files summary <project-id>GET /api/projects/{id}/files/summary
wk exports list <project-id>GET /api/projects/{id}/exports
wk exports show <export-id>GET /api/exports/{id}
wk exports create <project-id>POST /api/projects/{id}/exports
wk exports download <export-id>GET /api/exports/{id}/manifest + per-clip GET /api/exports/{id}/clips/{annotation-id}
wk exports delete <export-id>DELETE /api/exports/{id}
wk exports adapt smart-turnLocal-only; reads a downloaded snapshot
wk models list <project-id>GET /api/projects/{id}/models
wk models show <model-id>GET /api/models/{id}
wk models push …POST /api/projects/{id}/models + artifact upload
wk models download <model-id>GET /api/models/{id}/artifacts/{name}

Discovering commands

This table is a snapshot; the binary itself is authoritative. Every subcommand has self-describing help via clap:

wk --help                   # top-level groups
wk exports --help           # one group
wk exports create --help    # all flags, types, defaults

When in doubt, run --help rather than guessing.

Credentials file

Stored at:

PlatformPath
macOS~/Library/Application Support/wavekat/auth.json
Linux~/.config/wavekat/auth.json
Windows%APPDATA%\wavekat\auth.json

Mode is 0600 on Unix. The file contains the active CLI token; wk logout revokes it server-side and then removes the file.