# Overcast Wiretap

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-kdr-overcast-overcast-wiretap`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [kdr](https://agentstack.voostack.com/s/kdr)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [kdr](https://github.com/kdr)
- **Source:** https://github.com/kdr/overcast/tree/main/skills/overcast-wiretap
- **Website:** https://overcast.video

## Install

```sh
agentstack add skill-kdr-overcast-overcast-wiretap
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# overcast-wiretap

Use this skill to analyze audio recordings you already hold (a call, a voicemail, a
field recording): how many people speak, what the background reveals about where it
was recorded, and whether two clips share a voice or a phrase. Use the broad
`overcast` skill and `overcast/reference/verbs.md` for exact flags.

## Workflow

1. Transcribe the recording and read its background scene on the **default
   backend**. `--describe` surfaces the whole audio scene (traffic, trains, a PA
   announcement, church bells) — the "enhance the background noise" move that
   places a recording — and is a tinycloud/Cloudglue multimodal feature, so do all
   the transcript/describe work FIRST, before binding any speech-only provider:

```bash
overcast doctor --json
overcast case init --json
overcast listen ./call.wav --json                 # speech transcript + time-anchored segments
overcast listen ./call.wav --describe --json       # background audio scene (tinycloud describe)
overcast view ./call.wav --spectrogram --json      # visual inspection artifact (tones, hums, edits)
```

2. Isolate voices from noise and re-transcribe the cleaned track — a second pass
   often recovers words the first missed:

```bash
overcast enhance ./call.wav --ops voice-isolate,denoise --json   # bundled-ffmpeg filter (fast, lossy)
overcast enhance ./call.wav --ops separate --json                # true source separation → a track per speaker
                                                                 # (local pyannote: scripts/visual-db-uv.sh --voice + HF_TOKEN, or fal)
overcast listen  --json
```

3. Separate the speakers. `--diarize` needs a **diarize-capable listen provider**
   (the default tinycloud/Cloudglue `listen` is speech-transcript only and rejects
   `--diarize`). Bind ElevenLabs for this — but do it LAST, after the describe /
   multimodal steps above, because ElevenLabs Scribe is speech-only and drops the
   audio-scene describe:

```bash
overcast provider setup apply --verb listen --choice elevenlabs --yes --json
overcast listen ./call.wav --diarize --json        # ->  (speaker-labeled)
```

4. Verify a speaker's identity across recordings with the local voice-print DB
   (speaker embeddings, not phrase matching — `scripts/visual-db-uv.sh --voice`,
   no token needed). Scores are rank scores, **not liveness**: a cloned/synthetic
   voice can score high, so corroborate before naming anyone:

```bash
overcast index create voices --type voice-print --local --json
overcast voice add ./call.wav --index voices --json               # enroll each recording
overcast voice match ./voicemail.m4a --index voices --json        # which recordings share this voice?
overcast voice match ./call.wav ./known-sample.wav --diarize --json  # WHICH diarized speaker matches (HF_TOKEN)
```

   `voice` answers WHO is speaking (enroll a reference, then rank where/which). To
   ask whether two clips are the SAME RECORDING (a re-upload/leak of an identical
   file — a different question), fingerprint them with the local `audio-fp` DB,
   which matches exact audio through transcode/noise but NOT pitch/speed:

```bash
overcast index create clips --type audio-fp --local --json
overcast audio add ./call.wav --index clips --json
overcast audio match ./leaked.mp3 --index clips --min-margin 2 --json   # same recording? time-offset aligned
```

   Full drills: `overcast-voiceprint` (WHO is speaking) and `overcast-audio-match`
   (same recording surfaced again).

5. Record per-speaker and per-clue observations, then correlate across recordings.
   Cite the speaker-labeled `` for who-said-what claims (not the
   step-1 transcript record):

```bash
overcast note "Speaker 2: PA announces 'platform 4' at 00:38 → rail station" --ref  --at 38 --confidence medium --json
overcast ask "which recordings share a speaker, phrase, or background cue? cite record.id + time" --verb listen --json
```

6. Turn confirmed clues into findings and export; always leave a `tldr` note:

```bash
overcast finding create "call.wav and voicemail.m4a share Speaker 2's phrasing + station PA — likely same caller/location" --ref  --confidence medium --json
overcast note "3 recordings; 2 speakers on call.wav; background = rail station; cross-clip voice overlap on 2 of 3" --tag tldr --json
# Wait for the note result before exporting, so the TL;DR is included.
overcast brief --export ./wiretap.html --json
```

## Output

A per-recording speaker breakdown with timestamps, the background-scene clues that
locate or date it, any cross-clip voice/phrase overlaps, and the spectrogram
artifacts — each cited by `record.id` + `media.at`.

## Caveats

`--diarize` needs a diarize-capable listen provider: the default tinycloud/Cloudglue
`listen` transcribes speech only and errors on `--diarize` — bind ElevenLabs
(`provider setup apply --verb listen --choice elevenlabs --yes`) for speaker
separation. Bind it LAST: ElevenLabs Scribe is speech-only and drops the audio-scene
`--describe`, so run all transcript/describe/multimodal work on the default backend
first, then rebind for the diarize pass. Diarization LABELS speakers ("Speaker
1/2"), it does not IDENTIFY them —
a name is a corroborated inference, never a diarizer output. `voice match` scores
speaker similarity, not liveness — a cloned/synthetic voice can score high and the
same speaker scores lower across languages or heavy compression, so treat a voice
match as a lead to corroborate, never an identification. `voice-isolate` on the
bundled ffmpeg is a filter, not source separation — for a real per-speaker split use
`enhance --ops separate` (local pyannote via `scripts/visual-db-uv.sh --voice` +
`HF_TOKEN` and the accepted pyannote license, or fal), or bind ElevenLabs
(`--verb enhance --choice elevenlabs`) for stronger isolation; either way re-listen
to confirm the cleaned transcript rather than trusting it blind. Background-cue
geolocation is suggestive, not definitive.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [kdr](https://github.com/kdr)
- **Source:** [kdr/overcast](https://github.com/kdr/overcast)
- **License:** Apache-2.0
- **Homepage:** https://overcast.video

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-kdr-overcast-overcast-wiretap
- Seller: https://agentstack.voostack.com/s/kdr
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
