#9177: feat(media): add parakeet-mlx CLI output support
stale
Cluster:
Media Handling Improvements
## Summary
Add native support for reading parakeet-mlx output files in `resolveCliOutput`.
## Problem
Parakeet-mlx is a fast, local speech-to-text model (based on NVIDIA Parakeet) that runs on Apple Silicon via MLX. It writes transcripts to `--output-dir/filename.txt`, but OpenClaw's `resolveCliOutput` only supported whisper, whisper-cli, gemini, and sherpa-onnx-offline.
Without this fix, users need a wrapper script that outputs to stdout instead.
## Solution
Add `resolveParakeetOutputPath()` helper function that:
- Looks for `--output-dir` argument (note: hyphen, not underscore like whisper)
- Constructs the output path as `outputDir/mediaBasename.txt`
- Returns null if output-format is not txt
## Config Example
```json
{
"tools": {
"media": {
"audio": {
"models": [{
"type": "cli",
"command": "parakeet-mlx",
"args": ["{{MediaPath}}", "--output-format", "txt", "--output-dir", "{{OutputDir}}"]
}]
}
}
}
}
```
## Note
Previous issue #7552 was incorrectly auto-closed as a duplicate of #7536 (Windows path bug), which is unrelated. This PR addresses the original feature request.
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR extends `resolveCliOutput` in `src/media-understanding/runner.ts` to support `parakeet-mlx` by resolving the transcript file path from CLI arguments (using `--output-dir`/`--output-format`) and reading `{{OutputDir}}/{{mediaBasename}}.txt` when present.
The change fits the existing CLI-provider pattern already used for `whisper`/`whisper-cli`, where transcript output may be written to a temp output directory and then ingested back into the media understanding pipeline.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk.
- The change is small, localized to CLI output resolution, and follows the existing pattern used for other CLI transcribers (resolve output path then read file if present). No definite functional regressions were identified from the diff.
- No files require special attention
<!-- greptile_other_comments_section -->
<sub>(4/5) You can add custom instructions or style guidelines for the agent [here](https://app.greptile.com/review/github)!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#8014: fix(media-understanding): support legacy {file} placeholder in CLI ...
by Glucksberg · 2026-02-03
75.0%
#8388: fix(media): auto-skip tiny/empty audio files before transcription (...
by Glucksberg · 2026-02-04
73.5%
#12717: fix: add "audio" to openai provider capabilities
by openjay · 2026-02-09
73.1%
#15853: feat: add option to suppress media placeholder text
by MisterGuy420 · 2026-02-14
72.6%
#21110: fix(tts): deliver audio via structured mediaUrl instead of MEDIA: t...
by hydro13 · 2026-02-19
71.9%
#8048: Media: add regression test for audio text blocks (#7970)
by Abhishek-B-R · 2026-02-03
71.9%
#15914: feat: add messages.suppressMediaPlaceholders config option
by Shuai-DaiDai · 2026-02-14
71.4%
#11846: media: suppress CUDA probe errors for whisper CLI
by magendary · 2026-02-08
70.9%
#14794: fix: parse inline MEDIA: tokens in agent replies
by explainanalyze · 2026-02-12
70.5%
#8042: feat(telegram): add media index for reply-to media lookup
by batumilove · 2026-02-03
70.4%