Skip to content
Back to skills

Otter

ASecurity

Otter.ai transcription CLI - list, search, download, and sync meeting transcripts to CRM.

  • 665 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 7, 2026
businesspythonbashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add openclaw/skills --skill otter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Otter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Otter
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/openclaw-otter/badge)](https://www.skillsdirectory.com/skills/openclaw-otter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: otter
description: Otter.ai transcription CLI - list, search, download, and sync meeting transcripts to CRM.
version: 1.0.0
author: dbhurley
homepage: https://otter.ai
metadata:
  clawdis:
    emoji: "🦦"
    requires:
      bins: ["python3", "uv"]
      env:
        - OTTER_EMAIL
        - OTTER_PASSWORD
    optionalEnv:
      - TWENTY_API_URL
      - TWENTY_API_TOKEN
    primaryEnv: OTTER_EMAIL
---

# Otter.ai Transcription CLI

Interact with Otter.ai to manage meeting transcripts - list, search, download, upload, summarize, and sync to CRM.

## πŸ”‘ Required Secrets

| Variable | Description | How to Get |
|----------|-------------|------------|
| `OTTER_EMAIL` | Your Otter.ai account email | Your login email |
| `OTTER_PASSWORD` | Your Otter.ai password | Set in Otter account settings |

## πŸ” Optional Secrets (for CRM sync)

| Variable | Description | How to Get |
|----------|-------------|------------|
| `TWENTY_API_URL` | Twenty CRM API endpoint | Your Twenty instance URL |
| `TWENTY_API_TOKEN` | Twenty API key | Twenty β†’ Settings β†’ Developers β†’ API Keys |

## βš™οΈ Setup

Configure in `~/.clawdis/clawdis.json`:
```json
{
  "skills": {
    "otter": {
      "env": {
        "OTTER_EMAIL": "you@company.com",
        "OTTER_PASSWORD": "your-password",
        "TWENTY_API_URL": "https://api.your-twenty.com",
        "TWENTY_API_TOKEN": "your-token"
      }
    }
  }
}
```

## πŸ“‹ Commands

### List Recent Transcripts
```bash
uv run {baseDir}/scripts/otter.py list [--limit 10]
```

### Get Full Transcript
```bash
uv run {baseDir}/scripts/otter.py get <speech_id>
```

### Search Transcripts
```bash
uv run {baseDir}/scripts/otter.py search "quarterly review"
```

### Download Transcript
```bash
uv run {baseDir}/scripts/otter.py download <speech_id> [--format txt|pdf|docx|srt]
```

### Upload Audio for Transcription
```bash
uv run {baseDir}/scripts/otter.py upload /path/to/audio.mp3
```

### Get AI Summary
```bash
uv run {baseDir}/scripts/otter.py summary <speech_id>
```

### Sync to Twenty CRM
```bash
uv run {baseDir}/scripts/otter.py sync-twenty <speech_id>
uv run {baseDir}/scripts/otter.py sync-twenty <speech_id> --company "Client Name"
```

## πŸ“€ Output Formats

All commands support `--json` for machine-readable output:
```bash
uv run {baseDir}/scripts/otter.py list --json
```

## πŸ”— Twenty CRM Integration

When syncing to Twenty, creates:
- **Note** with transcript title, date, duration, and full text
- **Auto-links** to engagement if `--company` matches

## ⚠️ Notes

- Requires Otter.ai account (Business recommended for API access)
- Uses unofficial Otter.ai API
- SSO users: Create a password in Otter account settings
- Rate limits may apply

## πŸ“¦ Installation

```bash
clawdhub install otter
```

Files in this skill

  • SKILL.md2.7 KB
  • _meta.json281 B
  • pyproject.toml255 B
  • references/twenty-sync.md2 KB
  • scripts/otter.py15.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.