_What is vibe coding good for?_

I wanted a transcription of a segment of a podcast I was listening to, and Mistral released Voxtral pretty recently and I wanted to try it.

llm is my go to tool for quick queries so I updated to the latest version of the mistral plugin

  • llm install -U llm-mistral

and refreshed the model list

  • llm mistral refresh

and clipped the segment of the show I wanted to transcribe to pass as an attachment

  • ffmpeg -i podcast.mp3 -ss 42:56 -to 55:27 -c copy clip.mp3
  • llm -m voxtral-small -a clip.mp3

But it didn’t work because the Voxtral model currently only works for URLs to MP3 files hosted online: in llm-mistral, not local files

But I knew that llm could handle local attachments, and the Voxtral API documentation had an exmple

So I cloned llm-mistral, copied the documentation example into my clipboard, and gave them both to gpt-5

  • cat llm_mistral.py| llm "$(pbpaste)" -s "Update llm-mistral to take local file attachments, as well as URLs, based on this example from the documentation"

It spat out a six line change which I pasted in to llm_mistral.py. Then I spun up a venv with uv so I could test it out without messing with my normal llm installation and installed my local, modified, copy of llm-mistral

  • uv venv .venv-llm-dev
  • source .venv-llm-dev/bin/activate
  • uv pip install llm
  • .venv-llm-dev/bin/llm install -e .

And it worked first try

.venv-llm-dev/bin/llm -m voxtral-small -a clip.mp3


What I would say about vibe coding this kind of minor edit or tweak is that about half the time it works first try, and about half the time it doesn’t, and if they fail I usually just do it myself instead of doubling down.

Graham @grrraham