How finnvoor/yap works
yap is a macOS command-line tool for on-device speech transcription. Its default file workflow validates an audio/video input, prepares audio, runs Apple Speech recognition, then formats and prints or saves the transcript. Separate commands capture microphone audio, system audio, or both in real time; an MCP server exposes file transcription to compatible clients. Shared formatting supports text, timed subtitles, JSON, censoring, sentence splitting, and word timestamps. Live-command excerpts are partial, so their capture and recognition flow is shown only where documented or evidenced.
Main entry points: Transcribe.swift File command · ListenAndDictate.swift Dual-source capture · Yap.swift Command router · Listen.swift System listen
Components 17
CLI entry points
- Command router
Sources/yap/Yap.swift - File command
Sources/yap/Transcribe.swift - MCP server
Sources/yap/MCP.swift
File transcription
- Transcription engine
Sources/yap/TranscriptionEngine.swift - Audio preparation
Sources/yap/TranscriptionAudioFile.swift - Apple Speech
Live transcription
- System listen
Sources/yap/Listen.swift - Microphone dictate
Sources/yap/Dictate.swift - Dual-source capture
Sources/yap/ListenAndDictate.swift - System audio capture
- Microphone input
Transcript formatting
- Transcript segmentation
Sources/yap/Extensions/AttributedString+Extensions.swift - Output serializers
Sources/yap/OutputFormat.swift
Other components
- CLI user
- MCP client
- Standard output
- Output file
Connections 34
- CLI user → Command router: runs
- Command router → File command: dispatches
- Command router → System listen: dispatches
- Command router → Microphone dictate: dispatches
- Command router → Dual-source capture: dispatches
- Command router → MCP server: dispatches
- File command → Audio preparation: prepares audio
- File command → Apple Speech: transcribes
- Audio preparation → Apple Speech: provides audio
- File command → Transcript segmentation: segments transcript
- File command → Output serializers: formats transcript
- File command → Standard output: prints result
- File command → Output file: writes result
- MCP client → MCP server: requests tool
- MCP server → Transcription engine: invokes transcription
- Transcription engine → Audio preparation: prepares audio
- Transcription engine → Apple Speech: transcribes
- Transcription engine → Output serializers: formats transcript
- System listen → System audio capture: captures audio
- System listen → Apple Speech: streams audio
- System listen → Transcript segmentation: segments results
- System listen → Output serializers: formats segments
- System listen → Standard output: prints segments
- Microphone dictate → Microphone input: captures audio
- Microphone dictate → Apple Speech: streams audio
- Microphone dictate → Transcript segmentation: segments results
- Microphone dictate → Output serializers: formats segments
- Microphone dictate → Standard output: prints results
- Dual-source capture → Microphone input: captures audio
- Dual-source capture → System audio capture: captures audio
- Dual-source capture → Apple Speech: streams sources
- Dual-source capture → Transcript segmentation: segments results
- Dual-source capture → Output serializers: formats segments
- Dual-source capture → Standard output: prints results