@waveai/cli
v0.4.0
Published
Official CLI for Wave (wave.co) — read your AI meeting notes, transcripts, and summaries from the terminal or an agent shell
Maintainers
Readme
wave-cli
Command-line interface for the Wave AI public API — a thin wrapper around
https://api.wave.co. Published to npm as @waveai/cli
with the wave binary.
npm install -g @waveai/cli
wave login
wave sessions listSharing (0.4.0)
wave shared list [--limit <n>] [--cursor <cursor>] [--json]
wave shared get <owner_id> <session_id> [--json]
wave shared transcript <owner_id> <session_id> [--speakers] [--format text|srt|segments] [--json]
wave shared action-items <owner_id> <session_id> [--json]
wave shared media <owner_id> <session_id> [--json]
wave sessions list --include-shared [--json]
wave sessions share <id> [--email [email protected],[email protected]] [--message "..."] [--json]
wave sessions access <id> [--json]
wave sessions unshare <id> (--recipient <uid> | --email <addr> | --everyone) [--force] [--json]
wave sessions share reset <id> [--remove-everyone] [--force] [--json]Shared reads require both IDs from shared list and respect the owner's access
scope. sessions list --include-shared labels rows “shared by ”.
Shared sessions are read-only; search covers owned sessions only, and folder/tag
filters apply only to owned sessions.
share prints a link when no email is supplied. Invites accept 1–10
comma-separated emails and an optional message of up to 500 characters.
Owner sharing commands require the sharing:manage token scope. Recipient
reads use the existing session, transcript, and media read scopes.
access shows people and pending invites; link tokens cannot be retrieved, so
create a link with share. unshare --recipient removes access;
unshare --email cancels a pending invite. Resetting a link invalidates the old
link and preserves existing access unless --remove-everyone is supplied.
Both unshare --everyone and share reset --remove-everyone require a y/N
confirmation or --force (mandatory in scripts).
--json returns the raw API response; removing a person returns null for the
empty HTTP 204 response. SRT is rendered locally from transcript segments.
Per-invite scope selection, Teams sharing, and recipient sharing events/webhooks
are deferred.
Other commands
Use wave --help or wave <command> --help for options. Available commands
include whoami, sessions update, sessions action-items, folders list/create,
events list/ack/tail, transcript, media, search, stats, bulk, and
webhooks. Config uses config get [key], config set <key> <value>, and
config path, without --json.
wave login opens /cli/authorize?port=...&state=... on app.wave.co and receives
a token directly through the local callback. For scripts, use
wave login --token <key> or WAVE_API_KEY.
Development
npm run build
npm testTests use node:test and fake fetch responses, with no live API calls. Josh
publishes releases to npm.
Phone sessions
Sessions of type phone include a phone object with the call direction
(inbound / outbound), to_number, from_number, status, and an ongoing
flag for live calls. wave sessions list/get, wave search, and wave bulk
display it; pass --json for the raw object. Inbound calls are bridge
connections, so the other party is unknown — to_number is your verified caller
ID and from_number is null.
