Skip to content
AI & Agents
Skill

/AudioEditor

Cleans spoken audio via Whisper transcription, Claude segment classification, and ffmpeg cuts, plus breath taming and noise-gate artifact repair. USE WHEN clean audio, edit audio, remove filler words, clean podcast, remove ums, cut dead air, polish audio, trim recording, cut

From plugin
lifeos
20k97 skills13 agents34 commands

Claude Code

$ npx -y skills add danielmiessler/lifeos --skill AudioEditor --agent claude-code

SKILL.md

AudioEditor.SKILL.md
name: AudioEditor
evals:
  manual:
    reason: "audio edits must be heard against the supplied recording to judge intelligibility, natural cadence, and artifact-free cuts"
    falsifier: "the reviewer hears an unintended deletion, audible edit artifact, or unacceptable intelligibility loss in the rendered audio"
metadata:
  short-description: "Clean audio fillers, stutters, dead air, breaths, mouth sounds, and noise-gate clicks; preview or polish recordings. Excludes video composition."
version: 1.1.3
description: Cleans spoken audio via Whisper transcription, Claude segment classification, and ffmpeg cuts, plus breath taming and noise-gate artifact repair. USE WHEN clean audio, edit audio, remove filler words, clean podcast, remove ums, cut dead air, polish audio, trim recording, cut stutters, ticking audio, clicking audio, audio clicks, gate artifacts, popping audio, loud breaths, breathing sounds, mouth sounds, mouth clicks, lip smacks, tame the breaths. NOT FOR video composition (HyperFrames) or tight-cutting a podcast or spoken recording for publishing (the video skill's TightCut intent (maintainer-side; not in the public release)).

AudioEditor

Cleans recorded audio automatically: strips filler words, false starts, stutters, spoken edit markers and dead air, and crossfades every cut. Transcribe gets word-level timestamps from Whisper (insanely-fast-whisper on MPS), Analyze has Claude classify each segment (KEEP, CUT_FILLER, CUT_FALSE_START, CUT_EDIT_MARKER, CUT_STUTTER, CUT_DEAD_AIR), telling rhetorical emphasis apart from accidental repetition, and Edit executes the cuts with ffmpeg using 40ms qsin crossfades at every edit point and extracted room tone to fill gaps. An optional Cleanvoice pass removes mouth sounds and remaining fillers and normalizes loudness. Output is cleaned MP3/WAV. Modes: --preview, --aggressive, --polish. BreathTame, LoudnessLock, GateScan and GateRepair handle breaths, delivery loudness and noise-gate ticks on their own.

Ideal State

  • Every output keeps what the speaker meant, their deliberate pauses and natural breathing included, and no edit can be heard.
  • Done means heard: a clean scan or a zero exit code never counts on its own.
  • Repairs are minimal-touch: each tool changes only the defect it targets and leaves the rest of the audio alone.
  • Nothing is changed or uploaded without the user's say: previews modify nothing, ambiguous file matches are asked about, and cloud polish runs only on request.

Intent Routing

| Intent | Trigger | File | |--------|---------|------| | **Clean** | "clean audio", "edit audio", "remove filler words", "clean podcast", "remove ums", "cut dead air", "polish audio" | `Intents/Clean.md` |

Standalone breath, mouth-click, gate-tick and loudness requests ("ticking audio", "gate artifacts", "loud breaths", "mouth clicks", "tame the breaths") also route to Clean, using the Tools table and Gate Artifacts below.

| File | Read when | |------|-----------| | `Tools/` | each tool's `<Name>.help.md` holds its full flags and exit codes | | `Setup.md` | first-time setup: ffmpeg and Whisper to install, the optional Cleanvoice key, and a synthesized-tone proof |

Data & Config

User customizations live at `<configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/AudioEditor/` (`configRoot` is `$CLAUDE_CONFIG_DIR` when set, else `~/.claude`). When that directory exists, its PREFERENCES.md, configurations and resources apply and override the defaults here; when it is absent, the defaults stand. First-time setup (accounts, keys, config, a proof it works) is in [Setup.md](Setup.md).

Tools

| Tool | Command | Purpose | |------|---------|---------| | **Transcribe** | `bun ${LIFEOS_SKILL_DIR}/Tools/Transcribe.ts <file>` | Word-level transcription via Whisper | | **Analyze** | `bun ${LIFEOS_SKILL_DIR}/Tools/Analyze.ts <transcript.json>` | LLM-powered edit classification | | **Edit** | `bun ${LIFEOS_SKILL_DIR}/Tools/Edit.ts <file> <edits.json>` | Execute cuts with crossfades + room tone | | **Polish** | `bun ${LIFEOS_SKILL_DIR}/Tools/Polish.ts <file>` | Cleanvoice API cloud polish | | **Pipeline** | `bun ${LIFEOS_SKILL_DIR}/Tools/Pipeline.ts <file> [--polish]` | Full end-to-end pipeline | | **GateScan** | `bun ${LIFEOS_SKILL_DIR}/Tools/GateScan.ts <file> [--json]` | Detect noise-gate ticking (silence-boundary steps); exit 1 on defects | | **GateRepair** | `bun ${LIFEOS_SKILL_DIR}/Tools/GateRepair.ts <in> <out.mp4> --finalize [--abr 192k]` | Repair gate ticking; --finalize iterates until the encoded file scans clean | | **BreathTame** | `bun ${LIFEOS_SKILL_DIR}/Tools/BreathTame.ts <file> [--dry-run] [--json]` | Attenuate individual breath/mouth-click events in word gaps; word-confined, ducks never removes, proves bit-identity outside events | | **LoudnessLock** | `bun ${LIFEOS_SKILL_DIR}/Tools/LoudnessLock.ts <in> [--out <out.mp4>]` | Measure or lock delivery loudness to −14 LUFS / −1dBTP (YouTube standard); self re-measures, exit 0 only in tolerance |

Gate Artifacts

Gate checks run only when someone actually reports ticking or clicking; routine per-export scans were retired 2026-07-15. On a report: `GateScan` the file to confirm (sample-domain steps, exit 1 on defects), then `GateRepair --finalize` to fix. Repair before leveling when possible, and scan the final encode, not the intermediate WAV. If a RAW recording scans dirty, a capture-chain gate is back on; surface it.

API Keys Required

| Service | Env Var | Where to Get | |---------|---------|-------------| | Cleanvoice (for polish step, optional) | `CLEANVOICE_API_KEY` | cleanvoice.ai Dashboard Settings API Key |

Gotchas

  • **Cloud polish uploads audio to external service.** Confirm the user is okay with cloud processing for sensitive content.
  • **Capture-chain noise gates cause the ticks.** Recorder filters and macOS Voice Isolation truncate audio to digital zero with no fade, and leveling amplifies each edge into an audible tick. The class is fixed at capture:
Read more
@danielmiessler
Ships withlifeos

⛰️ LifeOS — The universal AI Harness designed to move you from Current to Ideal state in both life and work.

20k97 skills13 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
19.7k
Star history of danielmiessler/lifeos on GitHub, a chart by star-history.com

Other skills on lifeos.

AnnualReports

AnnualReports

Aggregate several hundred cybersecurity annual reports from CrowdStrike, Mandiant, IBM, Verizon, Microsoft, CISA, OWASP, Wiz,…

ApertureOscillation

ApertureOscillation

3-pass scope oscillation that holds a question constant while shifting zoom — narrow/tactical, wide/strategic, then synthesis —…

Aphorisms

Aphorisms

Curated aphorism collection with CRUD: content-based matching, themed search, thinker research, and usage tracking to avoid…

ArXiv

ArXiv

Search and retrieve arXiv academic papers by topic, category, or paper ID — with AlphaXiv-enriched AI-generated overviews. Uses…

Art

Art

Static visual content in 20+ formats (diagrams, infographics, comics, icons, wallpaper) via Nano Banana Pro by default, Nano…

ArtDirection

ArtDirection

Directs visual quality across images, films, slides, and site captures through a direction council, two vendors' vision judgments…

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

openclaw10d393k
@openclaw@openclawInstall Skill

Questions about AudioEditor.

Which coding agents can use AudioEditor?
AudioEditor installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.