MacWhisper no habla Claude, LLM Bridge sí
Un pequeño proxy local traduce entre las interfaces de OpenAI y Anthropic para que las herramientas de dictado y escritura también puedan usar Claude a través de LangDock o Anthropic.

MacWhisper solo admite la interfaz de OpenAI
En MacWhisper puedes introducir tu propio proveedor, pero debe ser compatible con la interfaz Chat Completions de OpenAI. Claude no es compatible con ella. Anthropic y LangDock esperan solicitudes en formato Messages, con una estructura distinta, por ejemplo, para los prompts del sistema y las imágenes. Si utilizas modelos de Claude a través del punto de conexión de LangDock en la UE o directamente en Anthropic, estas herramientas no te sirven.
Por eso he creado LLM Bridge: un pequeño proxy que se ejecuta localmente en tu ordenador, recibe solicitudes de OpenAI y las reenvía como solicitudes de Anthropic. La respuesta sigue el camino inverso. La versión 0.1.0 ya está disponible en GitHub.
Qué traduce Bridge
El proxy ofrece /v1/chat/completions y /v1/models disponible, con y sin streaming. Durante el streaming, convierte los Server-Sent Events de Anthropic en chunks de OpenAI, para que el texto llegue al cliente tal como espera la herramienta. Se traducen los prompts del sistema, las imágenes en Base64, las herramientas con function calling, stop, temperature, max_tokens y el modo JSON.
Como upstream, configura LangDock, por ejemplo, la región de la UE, o Anthropic directamente. En los clientes, utilizas un alias en lugar del ID de modelo largo: haiku apunta al ID que has configurado en la Bridge. Si cambia el ID, lo corriges en un solo lugar y no en cada herramienta. Si prefieres trabajar sin alias, escribes upstream-id/modell-id como nombre del modelo, por ejemplo langdock-eu/claude-sonnet-4-6-default.
La idea es la siguiente: pedir a cada herramienta por separado que admita Claude lleva tiempo, y no todos los fabricantes lo harán. Un traductor en un punto central resuelve el problema de una vez para todos los programas que aceptan un proveedor compatible con OpenAI.
Si algo falla, por ejemplo, si el ID de modelo es incorrecto, el cliente recibe un error en formato OpenAI con un mensaje comprensible.
Cómo configurar la Bridge en MacWhisper
Al iniciarse por primera vez, la Bridge crea una configuración con LangDock EU y el alias haiku y genera un token de acceso local aleatorio. Guardas la clave API de tu proveedor upstream y obtienes la lista de modelos, que muestra los ID reales de tu espacio de trabajo. Al hacer clic en un ID, se crea la asignación al alias. El ID predeterminado es solo una suposición, así que compruébalo aquí. Después, un botón de prueba envía un único token y muestra si la conexión llega hasta Claude. La clave se guarda en el llavero del sistema (macOS Keychain, Administrador de credenciales de Windows, Linux Secret Service), nunca en el archivo de configuración.
A continuación, creas un proveedor compatible con OpenAI en MacWhisper:
| Campo | Valor |
|---|---|
| URL base | http://127.0.0.1:4000/v1 |
| Clave API | el token de acceso local de la configuración de Bridge |
| Nombre del modelo | el alias, por ejemplo haiku |
Así que MacWhisper nunca ve tu clave API real, solo el token local.
También en el servidor
Si necesitas usar Bridge sin interfaz, por ejemplo en un equipo Linux, inicia el programa de línea de comandos. Utiliza la misma configuración y las mismas estadísticas que la aplicación:
llm-bridge set-key langdock-eu # Introduce la clave de forma oculta; se guarda en el llavero
llm-bridge test haiku # Prueba de conexión
llm-bridge serve # Proxy en primer plano, puerto predeterminado 4000
llm-bridge stats --range 30d # Estadísticas de los últimos 30 días
En un servidor sin llavero, basta con una variable de entorno como LLM_BRIDGE_KEY_LANGDOCK_EU en la unidad de systemd.
Contabilizar sin leer
Por cada solicitud, la Bridge guarda una fila en una base de datos SQLite local: fecha y hora, modelo, tokens de entrada, salida y caché, tiempo de respuesta y estado. La interfaz de estadísticas, disponible en alemán o inglés, muestra los datos por modelo y por cliente; la Bridge identifica al cliente por el User-Agent. Incluye una exportación CSV.
Los prompts y las respuestas no se guardan. Puedes ver qué herramienta consume cuántos tokens sin que se genere un registro de tus textos en ningún sitio. Si un cliente interrumpe un flujo, la Bridge registra la solicitud con los tokens contabilizados hasta ese momento y el estado 499. Así que las respuestas interrumpidas también aparecen en la factura.
Los tokens de entrada de la interfaz incluyen los tokens de lectura y escritura de caché, tal como los cuenta OpenAI prompt_tokens . Tenlo en cuenta si comparas las cifras con la factura de tu proveedor.
Cualquier sitio web puede llamar a localhost
Al protegerlo, me di cuenta de algo que es fácil pasar por alto en los servicios locales. Un proxy en 127.0.0.1 parece protegido porque nadie puede acceder a él desde fuera. Pero tu navegador se ejecuta en el mismo equipo. Un sitio web ajeno puede enviar solicitudes a fetch() y enviar solicitudes a http://127.0.0.1:4000; un proxy sin protección las atendería, a cargo de tu clave de API. Mediante DNS rebinding, que hace que un nombre de dominio ajeno apunte de repente a 127.0.0.1, el sitio incluso podría leer las respuestas.
Por eso, la Bridge rechaza las solicitudes cuyo encabezado Origin no apunte a localhost, 127.0.0.1 o [::1] . Mientras solo escuche en local, también aplica al encabezado Host, que bloquea el rebinding. Solo acepta solicitudes de chat con Content-Type: application/json uno que una página externa no puede enviar sin una comprobación previa de CORS. Los programas sin navegador, incluido MacWhisper, no envían ningún encabezado Origin y por eso pasan sin impedimentos. Además, está el token de acceso del primer inicio. Si lo borras en los ajustes, el proxy queda abierto a todos los programas del ordenador.
La segunda dirección afecta al upstream. Bridge no sigue las redirecciones, porque de lo contrario la clave de API podría enviarse a un destino externo. En su lugar, indica la nueva dirección y la introduces tú mismo. Los servidores upstream deben https:// utilizar, http:// solo está permitido para localhost. La configuración y las estadísticas solo son legibles por tu propio usuario.
Aplicación de la bandeja, actualizaciones y descarga
La aplicación de la bandeja está creada con Tauri 2, funciona en macOS, Windows y Linux e incluye la interfaz de estadísticas. Si quieres, se inicia al iniciar sesión, y desde el icono de la bandeja puedes iniciar y detener el proxy. El núcleo del proxy está escrito en Rust con axum. El código fuente está disponible en GitHub bajo la licencia MIT.
La aplicación instala las nuevas versiones por sí misma. Descarga una actualización en segundo plano, verifica su firma y solo se reinicia cuando el proxy lleva cinco minutos sin procesar ninguna solicitud. Así no se interrumpe ningún dictado en curso. Si no quieres esta función, puedes desactivarla en los ajustes. En el servidor, el programa de línea de comandos se actualiza con llm-bridge update, y después reinicias el servicio.
La página del producto está en it-guy.ai/projects/llm-bridge, los paquetes listos para instalar en la página de versiones de GitHub. Las descargas de macOS están firmadas y notarizadas con un Apple Developer ID. En Windows y Linux, los paquetes no están firmados: comprueba la suma de verificación con el archivo SHA256SUMS en la versión.
Creado por Martin Schmid, con el apoyo de Claude Sonnet 5.5 (revisado con Claude Opus 5.5) y aprobado tras una revisión propia del contenido. Se aplican nuestros Avisos y descargo de responsabilidad.