Writing
alfredllm

Een Alfred-workflow die met een LLM vertaalt

24 april 2026

alfred-translate is een kleine Alfred 5-workflow die ik voor mezelf bouwde. Typ tt, gevolgd door wat je wilt vertalen. Er komen vier vertalingen terug, op de volgorde die je hebt ingesteld. kopieert de gemarkeerde, ⌘1⌘4 pakt elk van de andere.

Alfred toont de query "tt Hello there, butterfly." met vertalingen in het Nederlands, Frans, Spaans en Engels, elk te kiezen met een Cmd-cijfer-snelkoppeling.

Ik woon in Nederland en wissel binnen één middag tussen Engels, Nederlands en Frans. De browsergebaseerde tools willen allemaal een tabblad, een paste, een klik. Deze wil een toetsaanslag.

Wat zit eronder

De workflow valt standaard terug op OpenRouter met Mistral Small 3.2 (24B). Het is ongeveer 1,5 seconde end-to-end, kost centen per duizend vertalingen, en blijft binnen de EU. Het model houdt idioom en toon voldoende vast dat ik het resultaat zelden hoef te corrigeren.

De volledige prompt is "vertaal dit naar de volgende talen, geef JSON terug". Mistral Small respecteert gestructureerde output betrouwbaar, dus de workflow krijgt iets als {"Dutch":"Hallo daar, vlinder.","French":"Bonjour, papillon.", ...} terug, en Alfred toont een regel per sleutel.

Provider als shellscript

De interessante ontwerpkeuze is de providerlaag. De Alfred-workflow roept providers/$PROVIDER.sh aan met twee argumenten, text en een door komma's gescheiden talenlijst, en verwacht JSON terug op stdout. Twee providers staan al in de repo:

  • openrouter.sh post naar OpenRouters chat-completions-endpoint. Snel.
  • claude.sh roept de Claude Code CLI aan met --model haiku. Handig als je toch al via een abonnement voor Claude Code betaalt, maar de coldstart van de CLI voegt zo'n vijf seconden toe, wat ruig is voor een toetsgedreven workflow.

Er staat ook een codex.sh-skelet klaar voor wie de Codex CLI wil aansluiten. Een eigen provider toevoegen is werkelijk een regel of tien, omdat het contract is: "lees $1 en $2, schrijf JSON naar stdout".

Deze abstractie is de reden dat de workflow überhaupt bestaat. Claude Code is uitstekend voor al het andere, maar vijf seconden CLI-init voor een vertaling laat Alfred sloom aanvoelen. OpenRouter brengt dezelfde modellen van Anthropic, Google en OpenAI terug tot één HTTP-call, en de provider-abstractie laat me alleen op de CLI's terugvallen wanneer ik ze echt nodig heb.

Configuratie

Alles wordt ingesteld in Alfreds Configure Workflow-dialoog, zonder een bestand aan te raken:

VariabeleStandaardDoel
OPENROUTER_API_KEY(leeg)Vereist. Haal er een op openrouter.ai/keys.
LANGSDutch,French,Spanish,EnglishVolgorde telt. De eerste vermelding is het topresultaat.
OPENROUTER_MODELmistralai/mistral-small-3.2-24b-instructElk OpenRouter-model. Probeer google/gemini-2.5-flash voor de snelste route.

De API-sleutel is gemarkeerd als variablesdontexport, dus als je de workflow deelt wordt hij automatisch verwijderd.

Installatie

Haal de nieuwste translate.alfredworkflow van de pagina Releases, dubbelklik om te importeren, plak je OpenRouter-sleutel, klaar. Of kloon de repo en draai ./build.sh om hem lokaal te bouwen.

Het geheel is open source op GitHub. Issues en pull requests zijn welkom, in het bijzonder voor nieuwe providers.

Laatste berichten