otter.ai
Otter.ai recordings: list, rename, trash, fetch speaker-labelled transcripts, and download mp3 audio from a logged-in Otter account.
Skill by overseers-desk
Chalk Labs
Need help deploying otter.ai?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/overseers-desk-otter-ai
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/otter-ai
Tools it pre-approves 2
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash,Read
What's inside
- Skill name
otter.ai- Description
- Otter.ai recordings: list, rename, trash, fetch speaker-labelled transcripts, and download mp3 audio from a logged-in Otter account.
- License
- MIT
- Allowed tools
- Bash,, Read
- Instructions
- 119 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
- Instructions call the network
Agent Skills spec issues
- name: only lowercase letters, digits and single hyphens allowed
Files (6)
- SKILL.md
- ot-canonical.tcl
- ot-fetch.tcl
- ot-list.tcl
- ot-rename.tcl
- otter-cdp.tcl
SKILL.md (first lines)
## Execution model
The subcommands run under the serialised-browsing harness: `browser-serialiser`
loads this skill into a policed safe interpreter and drives the browser through
the command surface (no raw CDP, anti-ban pacing enforced). Invoke by reference:
`browser-serialiser otter.ai/otter-cdp <subcommand> <args>`. Each launch takes
~15s for the browser.
Turning a recording into a corrected, searchable record in a business repo is the
`knowledge-capture` command's job; it calls the subcommands here for the Otter
steps.
## Prerequisites
- A logged-in Otter.ai session in the user-data-dir the serialiser targets (the
user logs in via the browser UI). If a subcommand returns
`{"error": "Not logged in..."}`, the harness saw a login/checkpoint redirect and
stopped; the user needs to log in to otter.ai in their browser first.
## Capabilities
### 1. List recordings
```bash
browser-serialiser otter.ai/otter-cdp list [--page-size N] [--last-load-ts TS]
```
Returns JSON with a `speeches` array. Each entry has `otid`, `title`, `created_at`
(epoch), `duration` (seconds), `summary`, `link`. Default page size 50; to
paginate, pass `--last-load-ts` from the previous response's `last_load_ts`.
### 2. Rename a recording
```bash
browser-serialiser otter.ai/otter-cdp rename <otid> "<new title>"
```
Returns `{"status": "OK", "verified": true, ...}` once the change is read back and
confirmed. The `otid` comes from `list` or an otter.ai URL
(`https://otter.ai/u/<otid>`). Otter allows `/` in titles, so a path-like
`<business>/<name>.txt` is a valid title. `knowledge-capture` uses that shape as
its done-signal, so a later run reads the prefix and skips the recording.
### 3. Move a recording to Trash
```bash
browser-serialiser otter.ai/otter-cdp trash <otid>
```
Moves the recording to Otter Trash, recoverable from the web UI for ~30 days.
**There is deliberately no hard-delete subcommand.** Otter's permanent-delete
endpoints bypass Trash and are unrecoverable; on 2026-05-13 a real recording was
lost that way. Permanently delete only from the Otter web UI, where the
consequence is explicit.
### 4. Fetch a transcript
```bash
browser-serialiser otter.ai/otter-cdp fetch <otid>
```
Returns `{"otid", "title", "created_at", "duration", "segments", "transcript"}`.
The transcript comes straight from Otter's `/forward/api/v1/speech` endpoint (the
same call the recording page makes to render) and is reconstructed into
speaker-labelled turns: each segment's text grouped by speaker, named from the
recording's speaker list, falling back to a diarisation label
(`Speaker N`) when a segment has no assigned speaker.
### 5. Fetch a recording's audio pointer
```bash
browser-serialiser otter.ai/otter-cdp audio <otid>
```
Returns `{"otid", "title", "created_at", "duration", "audio_format", "audio_url",
"download_url"}`. `audio_url` is a presigned S3 URL for the recording's mp3,
valid for about two days and needing no cookies, so the bytes are pulled with
plain curl rather than through the browser:
```bash
curl -o meeting.mp3 "<audio_url>"
```
`audio_url` is null on a recording with no audio (`audio_enabled` false or
retention-blocked); `download_url` (api.aisense.com) needs the Otter session and
is returned only as a fallback pointer. Same `/forward/api/v1/speech` endpoint
as `fetch`, so no new API surface.
## How it works
The serialised-browsing harness launches the browser with the user's logged-in
user-data-dir and loads this skill into a policed safe interpreter (file / exec /
socket / raw-CDP removed; the harness owns pacing and the 429/login backoff). The
skill reaches the browser only through the command surface:
1. `nav` to `otter.ai/my-notes` to establish session context — the covering view
for the `/forward/api/v1/*` endpoints (view-before-fetch).
2. `eval` runs page-context JavaScript `fetch()` against Otter's internal API,
carried by the page's own session cookie and CSRF token.
3. Each subcommand returns a JSON document, pretty-printed to stdout.
The skill does not use Google Chrome; it runs under whatever Chrome-compatible
browser the harness targets. The `otter.ai` view-before-fetch entries live in
`lib/serialiser-harness.tcl`.
## API endpoints used
| Operation | Method | Path | Auth |
|---|---|---|---|
| List speeches | GET | `/forward/api/v1/speeches` | session cookie + x-csrftoken |
| Fetch transcript | GET | `/forward/api/v1/speech?otid=` | session cookie + x-csrftoken |
| Rename | POST | `/forward/api/v1/set_speech_title` | session cookie + x-csrftoken |
| Trash (recoverable) | POST | `/forward/api/v1/move_to_trash_bin` | session cookie + x-csrftoken |
| User info | GET | `/forward/api/v1/user` | session cookie + x-csrftoken |
The CSRF token is read from `document.cookie` (the `csrftoken` cookie is not
httponly). The session cookie (`sessionid`) is httponly and sent automatically.From overseers-desk/magazines, MIT.
More from overseers-desk/magazines
- 0.580score
ndis.gov.au
overseers-desk
Australia's official NDIS provider register: search registered disability providers by suburb/postcode and radius, or confirm whether a named provider (or…
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
premierinn.com
overseers-desk
Premier Inn (Whitbread) hotel room availability, live nightly pricing, room-type inventory, rate plans (Flex/Standard/Non-Flex), occupancy rules.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
ihg.com
overseers-desk
Anonymous hotel availability, pricing and search; plus logged-in IHG One Rewards member data (your own stays, bookings, points and reward activity) via…
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
interlinetravel.com.au
overseers-desk
Interline Travel cruise deals at industry staff rates on interlinetravel.com.au: prices, availability, interline rates, search.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
marriott.com
overseers-desk
find hotel properties near a destination, lookup by property code; info (name, brand, address, coords, images, reviews).
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
officeworks.com.au
overseers-desk
Officeworks printing prices: flyer and document-print quantity ladders, per size, paper stock, siding and colour.
SkillAFreshness: A★ 1Claude Code +9 - 0.543score
linkedin
overseers-desk
search people, and search inside named members' connections, read profiles, read a job posting, check keywords, verify connect eligibility, find role/company.
SkillBFreshness: B★ 1Claude Code +9 - 0.540score
kiwi.com
overseers-desk
Cheapest flights across airlines that do not interline, including self-transfer combinations no airline or OTA sells, priced for the whole party.
SkillBFreshness: B★ 1Claude Code +9 - 0.540score
beatthatflight.com.au
overseers-desk
Cheapest fares on any route worldwide, shopped across dozens of online agencies at once: one-way, return or multi-city, with the agency's booking link.
SkillBFreshness: B★ 1Claude Code +9 - 0.540score
csair.com
overseers-desk
China Southern (CZ) fares and itinerary availability by route and date, including China domestic + international through-fares OTAs do not price.
SkillBFreshness: B★ 1Claude Code +9 - 0.540score
instagram
overseers-desk
Search Instagram accounts, read profiles, and enumerate a profile's followers or following; find someone by name or handle.
SkillBFreshness: B★ 1Claude Code +9 - 0.540score
facebook
overseers-desk
find posts in a group or across Facebook by keyword; search people, read profiles, extract hashtags and tagged people, dump reel comments, audit group-post…
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 36
- Last commit (this folder)
- Sep 2, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/overseers-desk/magazines
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from overseers-desk
- 0.580score
officeworks.com.au
overseers-desk
Officeworks printing prices: flyer and document-print quantity ladders, per size, paper stock, siding and colour.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
ndis.gov.au
overseers-desk
Australia's official NDIS provider register: search registered disability providers by suburb/postcode and radius, or confirm whether a named provider (or…
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
ihg.com
overseers-desk
Anonymous hotel availability, pricing and search; plus logged-in IHG One Rewards member data (your own stays, bookings, points and reward activity) via…
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
interlinetravel.com.au
overseers-desk
Interline Travel cruise deals at industry staff rates on interlinetravel.com.au: prices, availability, interline rates, search.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
marriott.com
overseers-desk
find hotel properties near a destination, lookup by property code; info (name, brand, address, coords, images, reviews).
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
premierinn.com
overseers-desk
Premier Inn (Whitbread) hotel room availability, live nightly pricing, room-type inventory, rate plans (Flex/Standard/Non-Flex), occupancy rules.
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get otter.ai running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
otter.ai skill. Agent Mart. https://agentmart.dev/skills/overseers-desk-otter-ai (last updated 2026-10-24)