Browser OAuth
Opens Wave in your browser, verifies the account, and saves the returned API token in the operating system config directory.
Search transcripts, organize sessions, stream events, and build reliable exports without leaving the terminal.
npm install -g @waveai/cliInstall
wave binary and requires Node.js 20 or newer.npm install -g @waveai/clinpx @waveai/cli sessions listAuthenticate
Opens Wave in your browser, verifies the account, and saves the returned API token in the operating system config directory.
Mint a scoped token in Wave settings, then paste it or set WAVE_API_KEY.
WAVE_API_KEY takes precedence over stored config. Keep it out of shell history, logs, and source control.
Command reference
--json wherever machine-readable output is supported.Read, organize, update, and remove sessions.
wave sessions listList with pagination plus type, date, folder, and repeatable tag filters.
wave sessions list --folder work --since 7d --tag roadmap --jsonwave sessions get <id>Show metadata, summary, notes, tags, and phone-call details for one session.
wave sessions update <id>Patch title, notes, tags, or favorite state with sessions:write.
wave sessions update sess_01J... --tags work,roadmap --favoritewave sessions add-folder <session_id> <folder_id>Add one folder membership without replacing any existing folder.
wave sessions remove-folder <session_id> <folder_id>Remove one folder membership while keeping the session intact.
wave sessions action-items get <session_id>Read structured action items and the version used for safe write-back.
wave sessions action-items update <session_id>Replace action items from stdin or a JSON file, optionally guarded by --if-match.
wave sessions action-items update sess_01J... --from-file actions.json --if-match 3wave sessions delete <id>DestructivePermanently delete a session after confirmation. --force skips the prompt.
Find, format, download, and export session content.
wave search <query>Semantic search with result limits and repeatable any/all tag filters.
wave search "retail media strategy" --tag roadmapwave transcript <id>Print a transcript as plain text, SRT, speaker segments, or raw JSON.
wave transcript sess_01J... --format srtwave media urls <id>Return signed audio and video URLs. wave media <id> is a shortcut.
wave media download <id>Download audio, or pass --video for MP4 and --output for a custom path.
wave media download sess_01J... --output interview.m4awave statsSummarize session count and duration by type and platform for a date range.
wave bulk [ids...]Export up to 50 sessions from arguments or --file, with optional summaries and transcripts.
wave bulk --file ids.txt --summary --transcript --jsonCreate a durable structure around your session library.
wave folders listList folder IDs, names, colors, and session counts for use in other commands.
wave folders create <name>Create a folder idempotently, with an optional hexadecimal color.
wave folders create "Customer research" --color "#6D28D9"Consume per-token events without hosting a receiver.
wave events listPull from the server-tracked cursor; pass --ack to advance it after reading.
wave events list --limit 100 --ack --jsonwave events ack <cursor>Advance the monotonic cursor explicitly after successful processing.
wave events tailPoll continuously and print events as they arrive; tune --interval and optionally --ack.
wave events tail --interval 3 --ack --jsonOperate push delivery and signing secrets end to end.
wave webhooks listList endpoints, subscribed events, status, and last delivery time.
wave webhooks createRegister an HTTPS endpoint and receive its signing secret once.
wave webhooks create --url https://example.com/wave --events session.completed,session.updatedwave webhooks update <id>Change the URL, event set, or active state for an existing endpoint.
wave webhooks test <id>Send a test event and report whether delivery succeeded.
wave webhooks rotate-secret <id>Issue a new signing secret and display it once for secure storage.
wave webhooks delete <id>DestructiveDelete an endpoint after confirmation.
Control credentials, output, and alternate API targets.
wave login / logout / whoamiAuthenticate in a browser or with --token, clear credentials, and inspect the current account.
wave config get [key]Read one setting or the masked configuration currently in effect.
wave config set <key> <value>Set api_key, api_url, or default_format in the OS configuration directory.
wave config pathPrint the exact configuration-file location.
Workflows
# Collect the 50 newest session IDs
wave sessions list --limit 50 --json \
| jq -r '.sessions[].id' > session-ids.txt
# Export metadata, summaries, and transcripts
wave bulk --file session-ids.txt \
--summary --transcript --json > wave-backup.json
jq '.sessions | length' wave-backup.json# Read the current version first
VERSION=$(wave sessions action-items get "$SESSION_ID" --json \
| jq -r '.version')
# Safely replace the list; fail if someone edited it meanwhile
wave sessions action-items update "$SESSION_ID" \
--from-file actions.json --source agent --if-match "$VERSION" --jsonAutomation
Use --json and pipe clean data into jq, files, or another process.
Normal output goes to stdout; failures go to stderr with a non-zero exit.
Export structured archives and download media directly to a chosen path.
Inspect schemas, parameters, auth requirements, and live request examples in the interactive API reference.