Otterai Cli

v1.1.0

Use when the user mentions Otter, Otter.ai, or wants to find, search, download, export, or manage meeting notes, transcripts, recordings, or audio from calls...

0· 270·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description target Otter.ai and the skill requires the `otter` CLI and Otter credentials (OTTERAI_USERNAME, OTTERAI_PASSWORD), which are appropriate and expected for a CLI wrapper that lists, downloads, and manages meeting transcripts.
Instruction Scope
SKILL.md instructs the agent to run otter CLI commands (list, get, download, upload, etc.). It does not ask the agent to access unrelated files, system-wide credentials, or exfiltrate data to unexpected endpoints. It does reference keyring/config fallback and env vars, which are reasonable for auth.
Install Mechanism
This is an instruction-only skill with no embedded install artifacts. The SKILL.md suggests `uv tool install otterai-cli` but there is no bundled installer or download URL to review; the actual `otter` binary must already be present on PATH or installed separately. Verify the source of the otter CLI before installing.
Credentials
Requiring OTTERAI_USERNAME and OTTERAI_PASSWORD is proportionate for a CLI that supports username/password auth. These are sensitive credentials — the skill documents keyring storage and says env vars take precedence, which is consistent with typical CLI behavior.
Persistence & Privilege
No elevated privileges requested (always:false). The skill is user-invocable and can be invoked autonomously by the agent (platform default), which is normal for skills of this type.
Assessment
This skill appears to be a straightforward wrapper for the Otter.ai command‑line tool. Before installing: ensure the `otter` CLI you use comes from an official/trusted source; prefer letting the CLI store credentials in your OS keychain (keyring) rather than exporting OTTERAI_USERNAME/OTTERAI_PASSWORD as environment variables; if you must use env vars, restrict their scope and lifetime; confirm what `uv tool install otterai-cli` will download and from where; remember the agent will run shell commands using your provided credentials, so only enable this skill if you trust the CLI and the environment where the agent runs.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Binsotter
EnvOTTERAI_USERNAME, OTTERAI_PASSWORD
latestvk97frcab7sj57w9w00nr3dg4pn82e52z
270downloads
0stars
2versions
Updated 1mo ago
v1.1.0
MIT-0

Otter.ai CLI

CLI for interacting with Otter.ai meeting notes and transcripts via the otter command.

Prerequisites

Install with:

uv tool install otterai-cli

Upgrade with:

uv tool upgrade otterai-cli

Authenticate with:

otter login

Credentials are stored in your OS keychain via keyring, with ~/.otterai/config.json as fallback.

You can also use environment variables (OTTERAI_USERNAME, OTTERAI_PASSWORD), which take highest precedence.

Commands

Speeches (Meeting Notes)

otter speeches list                          # list all speeches
otter speeches list --days 7                 # last 7 days
otter speeches list --folder "Work"          # by folder name (case-insensitive)
otter speeches list --folder 123456          # by folder ID
otter speeches list --page-size 10           # limit results
otter speeches list --source owned           # only owned speeches (default)
otter speeches list --source shared          # only shared speeches
otter speeches list --source all             # all speeches
otter speeches list --json                   # JSON output

otter speeches get SPEECH_ID                 # get speech details + full transcript
otter speeches get SPEECH_ID --json

otter speeches search "keyword" SPEECH_ID    # search within a speech
otter speeches search "keyword" SPEECH_ID --size 100

otter speeches download SPEECH_ID -f txt     # formats: txt, pdf, mp3, docx, srt, md
otter speeches download SPEECH_ID -f pdf -o my_file
otter speeches download SPEECH_ID -f md      # markdown (generated locally from transcript data)
otter speeches download SPEECH_ID -f md -o meeting-notes
otter speeches download SPEECH_ID -f md --frontmatter-fields "title,summary,speakers"
otter speeches download SPEECH_ID -f md --frontmatter-fields none

otter speeches upload recording.mp4          # upload audio for transcription

otter speeches rename SPEECH_ID "New Title"
otter speeches trash SPEECH_ID               # move to trash
otter speeches trash SPEECH_ID --yes         # skip confirmation

otter speeches move SPEECH_ID --folder "Work"
otter speeches move ID1 ID2 ID3 --folder "Work"
otter speeches move SPEECH_ID --folder "New Folder" --create  # auto-create folder

Speakers

otter speakers list
otter speakers list --json
otter speakers create "Speaker Name"
otter speakers tag SPEECH_ID SPEAKER_ID          # list segments, then tag
otter speakers tag SPEECH_ID SPEAKER_ID -t UUID  # tag specific segment
otter speakers tag SPEECH_ID SPEAKER_ID --all    # tag all segments

Folders

otter folders list
otter folders list --json
otter folders create "My Folder"
otter folders create "My Folder" --json
otter folders rename FOLDER_ID "New Name"

Groups

otter groups list
otter groups list --json

Auth & Config

otter login                  # authenticate (saves to keyring)
otter user                   # show current user
otter logout                 # clear credentials
otter config show            # show config
otter config clear           # clear config

Important: Speech IDs

Otter.ai speeches have two identifiers:

  • speech_id (e.g. 7KR9X3VNPLQ8JTMS) -- internal ID, does NOT work with API
  • otid (e.g. Xp4mRtK9wLs2vNcQjY7hBfA3eZd) -- used in all CLI commands

All CLI commands expect the otid. Use otter speeches list to find them, or:

otter speeches list --json | jq '.speeches[].otid'

Markdown Frontmatter

When downloading as md, YAML frontmatter is included by default. Customize with --frontmatter-fields:

# Use defaults
otter speeches download SPEECH_ID -f md

# Pick specific fields
otter speeches download SPEECH_ID -f md --frontmatter-fields "title,speech_id,summary"

# Disable frontmatter
otter speeches download SPEECH_ID -f md --frontmatter-fields none

Default fields: title, summary, speakers, start_time, end_time, duration_seconds, source, speech_id, folder, folder_id

All available fields: title, summary, speakers, start_time, end_time, duration_seconds, source, speech_id, folder, folder_id, otid, created_at, transcript_updated_at, language, transcript_count, process_status

Note: speech_id in frontmatter is the Otter internal speech_id; the SPEECH_ID argument in commands still expects the otid.

Usage Examples

List recent meetings:

otter speeches list --days 7

Get a transcript:

otter speeches list --days 1           # find the speech ID
otter speeches get SPEECH_ID           # get full transcript

Search for a topic across meetings:

otter speeches list --days 30 --json   # find relevant speech IDs
otter speeches search "budget" SPEECH_ID

Download as markdown:

otter speeches list                    # find the speech ID
otter speeches download SPEECH_ID -f md

Download as PDF:

otter speeches list                    # find the speech ID
otter speeches download SPEECH_ID -f pdf

Filter by folder:

otter speeches list --folder "Work"

Organize meetings into folders:

otter folders create "Q1 Planning"
otter speeches move SPEECH_ID --folder "Q1 Planning"

Upload a recording:

otter speeches upload recording.mp4

Notes

  • Most commands support --json for machine-readable output. Prefer --json when you need to parse or extract specific data.
  • When asked about a specific meeting, first list recent speeches to find the otid, then use speeches get to retrieve the transcript.
  • For broad searches across meetings, list speeches first, then search within each relevant one.
  • Download supports txt, pdf, mp3, docx, srt, and md formats. The md format is generated locally from transcript data and includes speaker labels with YAML frontmatter.
  • Both speeches list --folder and speeches move --folder accept a folder name (case-insensitive) or a numeric folder ID. Use otter folders list to see available folders and their IDs.
  • Use -n / --page-size to limit the number of results (not --limit).
  • --source defaults to owned. Use shared or all to include shared speeches.

Comments

Loading comments...