Tus mensajes y prompts con la voz
Mails, WhatsApp, prompts para Claude: hablás tres veces más rápido de lo que escribís. Una tecla, tu frase, y el texto ya está escrito en el lugar correcto.
Productividad
Hablá como siempre. Recibí texto limpio justo donde está el cursor.
Wispr Flow cuesta US$15–39 / mes, o sea US$180–468 al año. Tenés dos caminos:
Opción 1 · Instalar
OpenWhispr es la alternativa open source a Wispr Flow y Granola. Apretás una tecla, hablás y el texto aparece justo donde está tu cursor, en cualquier app: mail, WhatsApp, un prompt de Claude, un documento. También transcribe tus reuniones de Zoom, Teams o FaceTime, que detecta solo, con quién dijo qué, y lo guarda todo en notas donde se puede buscar. En modo local, con Whisper o Parakeet, que entienden el español, no hay tope de palabras y tu audio nunca sale de tu máquina. La trampa del primer arranque: de los tres modos que ofrece, el que viene por defecto es su propia nube, gratis solo hasta 2.000 palabras por semana, igual que Wispr Flow, y después se paga. Para no pagar nunca, elegí el modo local, o la nube con tu propia clave de API.
| Criterio | OpenWhispr | Wispr Flow |
|---|---|---|
| Precio | US$0, para siempre | US$15–39 por mes |
| Volumen de dictado | Ilimitado en local o con tu clave; 2.000 palabras por semana en su nube gratuita | 2.000 palabras por semana en el plan gratis |
| Tu audio | Puede quedarse en tu máquina (modo local) | Va a sus servidores |
| Reuniones | Transcripción incluida, en tu equipo | Necesitás Granola además |
| Modelo de IA | El tuyo: local o con tu propia clave | El de ellos, impuesto |
Es la página más simple de la biblioteca: una app de escritorio común. Sin Docker, sin terminal, sin servidor.
Va a buscar la última versión en el repo oficial de GitHub, la instala en tu máquina y te hace elegir el modo local, el único totalmente gratis y sin límite:
Instalá OpenWhispr en mi máquina (la app open source de dictado por voz, repo de GitHub OpenWhispr/openwhispr): descargá la última release desde github.com/OpenWhispr/openwhispr/releases para mi sistema operativo e instalala. Después ayudame a configurarla: en el primer arranque, no dejes la nube de OpenWhispr que viene por defecto, gratis solo hasta 2.000 palabras por semana; decime, según mi máquina, si me conviene elegir la transcripción local (Whisper o Parakeet, que entienden el español) o la nube con mi propia clave de API, verificá conmigo en los ajustes que ese modo esté realmente activo y después guiame para elegir mi atajo de dictado. Explicame cada paso de manera simple, soy principiante.
Revisá el repositorio de GitHub y fijate si es seguro instalarlo dado mi equipo y mi infraestructura. Hacime todas las preguntas que puedas, usando widgets, para aclarar mi pedido y ser lo más preciso posible.En el primer arranque, tu sistema te pide dos permisos: el micrófono (para escucharte) y la accesibilidad (para escribir por vos). Aceptá los dos; Claude te muestra dónde hacer clic.
Abrí cualquier app, poné el cursor, apretá tu atajo y dictá. El texto se escribe solo. Eso es todo.
Mails, WhatsApp, prompts para Claude: hablás tres veces más rápido de lo que escribís. Una tecla, tu frase, y el texto ya está escrito en el lugar correcto.
Detecta tus llamadas de Zoom, Teams o FaceTime, transcribe en vivo e identifica quién habla. Todo pasa en tu máquina: el audio de una reunión con un cliente no va a ningún lado.
Soltás un archivo de audio, un video o un link de YouTube: lo transcribe y lo ordena todo en notas con carpetas donde se puede buscar. Tu segundo cerebro se alimenta de tu voz.
Hecho con: JavaScript 51.2% · TypeScript 43.6% · Swift 2.9% · C 1.1%
Datos públicos del repositorio en GitHub, tomados el 8 de octubre de 2026.
Opción 2 · Construir
Este desarrollo es para una persona con Mac que escribe seguido con la voz. El objetivo: convertir el dictado con tecla de hablar en texto corregido, sin guardar una biblioteca de grabaciones. Si necesitás más que eso, seguí pagando: armarlo vos sirve para tener una herramienta hecha a la medida de tu forma de trabajar, no para rehacer el plan de una empresa con millones de inversión.
Mismo desarrollo, otro logo: esta v1 también reemplaza a Superwhisper, porque resuelven el mismo trabajo de fondo.
El prompt de abajo arma una sola versión, con lo que de verdad se usa. Lo demás queda afuera a propósito.
| Lo que arma el prompt | captura con tecla de hablar, transcripción, pegado en el cursor, transcripción en streaming, diccionario personal, modos de limpieza, deshacer |
|---|---|
| Lo que queda afuera | modelos locales de baja latencia, formato por app, versión para Windows |
DictationSession, TranscriptDraft, DictionaryEntry, RewritePreset
micrófono de macOS, API de Accesibilidad, API de voz a texto, API de LLM
SwiftUI, Swift, macOS
Pedí los permisos de micrófono y de Accesibilidad por separado, nunca captures fuera de una sesión activa y borrá el audio apenas termine la transcripción.
No armes grabación de reuniones, clonación de voz, analíticas de equipo, apps móviles ni escucha en segundo plano.
Elegí tu stack, copiá el prompt y pegáselo a tu agente de código (Claude Code, Cursor, Codex…).
Vas a construir un producto de software listo para producción llamado “Sayflow”, una alternativa deliberadamente enfocada a Wispr Flow. Construí un recorte completo y usable, no una landing page, ni una maqueta estática, ni un montón de componentes sueltos.
ACUERDO DE TRABAJO
Antes de escribir código de implementación, armá un plan técnico corto que nombre las rutas o páginas, las server actions o endpoints, las tablas de datos, las transiciones de estado importantes, los límites de autorización, los jobs en segundo plano y los adaptadores externos. Si algo se contradice, resolvelo a favor de la audiencia acotada y de los no-objetivos de abajo. Elegí una arquitectura chica y legible antes que abstracciones especulativas, pero no omitas persistencia, validación, manejo de errores ni tests.
DESCRIPCIÓN DEL PRODUCTO
Usuario principal: una persona con Mac que escribe seguido con la voz.
Resultado principal: convertir el dictado con tecla de hablar en texto corregido, sin guardar una biblioteca de grabaciones.
Principio del producto: optimizá el flujo exacto de abajo en vez de copiar todo lo que hace Wispr Flow. Alguien que lo usa por primera vez tiene que entender qué hacer desde la propia interfaz, sin tour ni documentación.
RECORRIDOS COMPLETOS DEL USUARIO
Implementá todos estos flujos usando la interfaz real y la capa de datos persistente:
1. El usuario da permiso de micrófono, configura un atajo global, lo mantiene apretado en un editor de texto, dice un párrafo, mira la vista previa de la transcripción y la inserta en el cursor.
2. El usuario agrega al diccionario un nombre que se entiende mal seguido, lo dicta de nuevo, elige un modo de limpieza pulido, acepta la vista previa y puede deshacer la inserción.
3. El usuario se topa con una falla de permiso de micrófono o de inserción, ve exactamente qué permiso falta, copia la transcripción a mano y reintenta después de cambiar los ajustes.
PANTALLAS Y ARQUITECTURA DE INFORMACIÓN
Construí estas pantallas como vistas coherentes y responsive. Cada pantalla tiene que definir su acción principal, sus acciones secundarias, el estado visible, el feedback de validación, el estado vacío, el estado de carga o pendiente, la confirmación de éxito y un estado de error recuperable.
1. Configuración: estados de los permisos de micrófono y Accesibilidad, grabador de atajo, configuración del proveedor, idioma, opción de retención y una acción de prueba de dictado.
2. Panel flotante de captura: estado de escucha, cronómetro, nivel de entrada, cancelar, detener, procesando, y un límite bien visible entre captura y reposo.
3. Vista previa: transcripción literal, modo de limpieza, diferencias de la reescritura resaltadas, editar, copiar, insertar en el cursor, reintentar y guía para deshacer.
4. Diccionario e historial: términos personales, importar y exportar, sesiones recientes solo de texto cuando están activadas, controles para borrar y estado del proveedor.
FUNCIONES PRINCIPALES
1. atajo global para hablar y un indicador claro de que está escuchando
2. transcripción en streaming con puntuación y saltos de párrafo
3. diccionario personal chico para nombres y términos técnicos
4. modos de limpieza opcionales: conciso, pulido y literal
5. vista previa, copiar y escribir en el cursor, con deshacer
COMPORTAMIENTO DETALLADO Y REGLAS DE NEGOCIO
Tratá esto como requisitos del producto que se validan en el servidor, no como sugerencias de interfaz:
1. Abrí el micrófono solo mientras hay una sesión explícita activa, mostrá indicadores de captura del sistema y de la app, y descartá el audio capturado apenas termine la transcripción o se cancele.
2. Mantené separadas la transcripción y la reescritura, de modo que una reescritura fallida nunca destruya la transcripción literal; mostrá una comparación y exigí aceptación antes de insertar el texto reescrito.
3. Inyectá texto solo en el control editable que tiene el foco en ese momento, con una autorización de Accesibilidad recién verificada; si no, volvé a copiar al portapapeles sin simular pulsaciones ocultas.
4. Normalizá y limitá el largo de las entradas del diccionario, mantenelas locales por defecto y nunca le mandes a un proveedor contenido del portapapeles, de ventanas o del documento que no tenga relación.
MODELO DE DATOS Y CICLO DE VIDA
Diseñá un esquema relacional chico centrado en DictationSession, TranscriptDraft, DictionaryEntry, RewritePreset. Antes de implementarlo, documentá:
1. El propósito de cada tabla, su clave primaria, el límite de propiedad o de tenant, timestamps, campos de estado y atributos importantes.
2. Claves foráneas, restricciones de unicidad, check constraints, los índices que necesitan las pantallas nombradas y los límites de transacción para cambios que tocan varios registros.
3. Las transiciones de estado o de ciclo de vida permitidas, quién puede disparar cada una, cuáles son terminales o reversibles y qué historial de auditoría tiene que quedar inmutable.
4. Cómo se archiva, se retiene y se borra, incluido qué pasa con los registros dependientes y los archivos externos.
5. La estrategia de idempotencia para envíos, jobs, importaciones, notificaciones, webhooks o reintentos, donde aplique.
Usá migraciones en lugar de crear el esquema a mano. Guardá los instantes de tiempo de forma consistente y conservá la zona horaria con nombre cada vez que importen horarios o fechas locales. Nunca dependas de un contador, un botón deshabilitado o una validación del lado del cliente para proteger una regla de negocio.
USUARIOS, AUTENTICACIÓN Y PERMISOS
Implementá solo los roles que necesita la audiencia indicada. Dejá explícito el modelo de propiedad y visibilidad antes de programar. Aplicá la autorización en cada consulta y mutación del servidor, incluidas búsquedas, exportaciones, adjuntos, actualizaciones en vivo y URLs adivinadas—no alcanza con ocultar botones. Usá sesiones seguras por defecto, protegé los requests que cambian estado y mostrá estados claros para sesión cerrada, sesión vencida y acceso prohibido. Si hacen falta varios roles, cargá usuarios distintos en los datos de prueba para poder mostrar y testear los permisos.
INTERACCIÓN Y DIRECCIÓN VISUAL
El producto tiene que sentirse rápido, tranquilo, enfocado y confiable, no como una plantilla genérica de panel de administración. Usá una jerarquía visual clara, color medido, tipografía legible, áreas de clic generosas y un lugar fijo para las acciones principales. Arrancá con HTML renderizado en el servidor y mejorá de forma progresiva solo las interacciones que lo necesiten. El flujo principal tiene que entenderse aunque esa mejora falle.
Arrancá con páginas de Astro renderizadas en el servidor y formularios HTML comunes. Usá HTMX para envíos de formularios, navegación parcial y actualizaciones que manda el servidor, y Alpine.js solo para estado local chico del navegador. El flujo principal tiene que entenderse aunque falle cualquiera de esas dos capas.
Diseñá las vistas de celular a propósito, no apilando los paneles de escritorio. Soportá navegación con teclado, foco visible, landmarks semánticos, labels explícitos, títulos de página útiles, la preferencia de movimiento reducido y anuncios para lectores de pantalla en resultados asincrónicos. Nunca uses solo el color para comunicar un estado. Las acciones destructivas necesitan un alcance claro y una confirmación; las acciones seguras que se repiten tienen que ser idempotentes.
Agregá un footer en todas las páginas con el texto «Creado por aurelioagency.com», donde «aurelioagency.com» es un link embebido a https://www.aurelioagency.com que se abre en una pestaña nueva. Tiene que quedar visible; no lo saques.
DIRECCIÓN TÉCNICA
Construí esta versión con el stack AHA: Astro para el ruteo, los layouts y las páginas renderizadas en el servidor; HTMX para las interacciones que se benefician de respuestas con fragmentos HTML; y Alpine.js para estado chico y local de la interfaz. Preferí Cloudflare D1 para la persistencia relacional, R2 para el almacenamiento de objetos, Workers para los endpoints del servidor y las tareas programadas, Durable Objects solo para estado en tiempo real coordinado, y Workflows o Queues para jobs en segundo plano durables—pero solo cuando los requisitos del producto lo pidan.
Mantené las reglas de dominio en módulos del servidor que se puedan testear, no en los route handlers ni en los componentes de UI. Separá la persistencia, los proveedores externos y el trabajo en segundo plano detrás de interfaces chicas, sin armar un framework. Preferí formularios HTML y URLs comunes para la navegación; usá interacción optimista solo cuando un error se pueda resolver con claridad.
El brief del producto identifica hoy SwiftUI, Swift, macOS como contexto técnico. Cualquier capacidad nativa, solo de navegador, de edge, de almacenamiento, de tiempo real o de procesamiento en segundo plano que haga falta, conservala a través de un adaptador acotado que corresponda al framework elegido. Si el flujo central realmente necesita APIs nativas o de navegador, mantené ese entorno como superficie principal de ejecución en vez de simular capacidades inaccesibles o inventar una superficie web innecesaria.
Integrá con el micrófono de macOS y la API de Accesibilidad y la API de voz a texto y la API de LLM. Para cada integración:
- Listá las variables de entorno necesarias en un .env.example sin secretos reales.
- Agregá un adaptador chico con timeouts, errores normalizados y una versión falsa local determinística o un modo de desarrollo.
- Verificá las firmas entrantes y deduplicá los eventos del proveedor cuando se pueda.
- Mantené las credenciales en el servidor, encriptá en reposo los tokens de larga duración y ocultá secretos y datos sensibles en los logs.
- Definí reintentos, backoff e idempotencia para cualquier efecto que se pueda repetir.
SEGURIDAD Y PRIVACIDAD
Pedí los permisos de micrófono y de Accesibilidad por separado, nunca captures fuera de una sesión activa y borrá el audio apenas termine la transcripción.
Validá, normalizá y limitá el largo de todo input no confiable en el servidor. Escapá el contenido renderizado por defecto, sanitizá cualquier markup que aceptes a propósito, poné rate limit a las acciones públicas o fáciles de abusar y usá almacenamiento de objetos privado con URLs autorizadas de corta duración para archivos sensibles. Juntá solo los datos personales que necesita el flujo indicado. Documentá cómo se retienen y se borran. Sumá protecciones específicas para las partes más riesgosas de esta app, como subidas de archivos, redirecciones, requests salientes, envío de emails, OAuth, webhooks, importación o exportación CSV y conexiones en tiempo real.
ESCENARIOS DE ACEPTACIÓN
Automatizá estos escenarios propios de la app en el nivel que corresponda:
1. Dado que se aprieta el atajo en reposo, se abre una sola sesión de captura; al soltarlo se detiene la captura y se produce una transcripción sin guardar el audio.
2. Dado que se deniega el permiso de Accesibilidad, la transcripción igual se completa, no se intenta insertar y copiar sigue disponible con un texto de recuperación que dice qué hacer.
3. Dado que una reescritura pulida cambia palabras, la vista previa muestra las diferencias y, si se rechaza, la transcripción literal queda disponible y sin cambios.
TESTS
Agregá tests unitarios enfocados en transiciones de estado, reglas de autorización, normalización, cálculos de fechas o dinero y otras reglas de dominio riesgosas. Agregá tests de integración para las restricciones de persistencia y para los caminos de éxito, timeout, reintento y rechazo de cada adaptador externo. Agregá al menos un test de navegador para cada recorrido completo de arriba, incluido uno en pantalla chica. Los tests tienen que usar datos aislados y correr con un solo comando documentado.
OPERACIÓN Y RECUPERACIÓN DE ERRORES
Agregá logs estructurados en el servidor con IDs de correlación por request, job o evento, sin secretos ni datos sensibles de más. Hacé que los errores digan qué hacer, tanto en la interfaz como en los logs. El trabajo en segundo plano tiene que mostrar los estados pendiente, completado, fallido y reintentando cuando aplique; nunca te tragues errores en silencio. Incluí una guía segura de migración y rollback de la base, datos de prueba, notas de backup y restauración, qué pasa con los datos externos al limpiar y una ruta básica de salud o diagnóstico acorde al stack.
ENTREGABLES
Entregá la aplicación funcionando, las migraciones, datos de prueba representativos, los tests, el .env.example y un README corto. El README tiene que cubrir requisitos previos, instalación local, variables de entorno, migraciones, comandos de datos de prueba y tests, deploy, configuración de integraciones, backup y restauración, decisiones de seguridad y limitaciones conocidas. Los datos de prueba tienen que cubrir el camino feliz y al menos un estado vacío, fallido, vencido, expirado, archivado o con permisos restringidos que importe para el producto.
DEFINICIÓN DE TERMINADO
La app está terminada cuando alguien nuevo puede seguir el README, crear y migrar la base, levantar la app, entrar con cada rol relevante, completar cada recorrido nombrado con datos reales guardados, recargar sin perder el estado, recuperarse de los errores comunes y usar la interfaz principal en celular y escritorio. Todos los escenarios de aceptación pasan, los límites de permisos están cubiertos por tests, ninguna pantalla principal queda como placeholder y el crédito «Creado por aurelioagency.com» del footer se ve en todas las páginas.
NO-OBJETIVOS
No armes grabación de reuniones, clonación de voz, analíticas de equipo, apps móviles ni escucha en segundo plano.La app que armes con este prompt lleva en el footer «Creado por aurelioagency.com».
Prompts cortos para resolver la pieza más difícil sin construir todo.
Construí el ciclo de vida de una sesión de dictado con tecla de hablar y atajo global.
Mantener apretado abre exactamente una sesión de captura: se abre el micrófono y aparece un indicador de escucha imposible de no ver, con cronómetro y nivel de entrada. Soltar detiene la captura y le pasa el audio a la transcripción. La máquina de estados tiene que aguantar el caos del teclado: un segundo evento de pulsación mientras hay una sesión activa no debe abrir una segunda sesión, un evento de soltar sin su pulsación correspondiente se ignora, y una pulsación más corta que un umbral cancela sin drama en vez de transcribir 80 milisegundos de crujido de silla.
El micrófono tiene que estar comprobadamente cerrado fuera de las sesiones, sin ningún stream en espera. Cuando la transcripción termina o el usuario cancela, descartá el audio capturado de inmediato y para siempre; solo sobrevive el texto, y solo si el usuario lo conservó.
Terminado cuando: apretar el atajo sin parar nunca genere sesiones superpuestas, el indicador de micrófono en uso del sistema se apague en el instante en que termina una sesión, y no exista ningún archivo de audio en disco después de cualquier dictado completado o cancelado.Construí el pipeline de texto en dos etapas para una herramienta de dictado: la primera produce la transcripción literal, la segunda opcionalmente la reescribe en un modo de limpieza elegido: conciso, pulido o literal.
Mantené las etapas estrictamente separadas. La transcripción literal se escribe primero y nunca se modifica; la reescritura es un artefacto derivado distinto. Si el proveedor de la reescritura se queda sin tiempo, da error o devuelve basura, la transcripción literal queda intacta y lista para usar al instante. Presentá la reescritura como una comparación palabra por palabra contra el texto literal, con inserciones, borrados y cambios resaltados, y exigí aceptación explícita antes de que la versión reescrita pase a ser la que se entrega. Rechazar la reescritura vuelve a la transcripción literal sin perder nada.
Agregá un reintento que vuelva a correr solo la segunda etapa, y protegete de que la reescritura invente contenido: marcá las reescrituras cuyo largo se aleje demasiado del original.
Terminado cuando: matar al proveedor de la reescritura en medio de un pedido deje una transcripción literal usable, cada palabra reescrita se vea en la comparación antes de aceptarla, y rechazar una reescritura entregue exactamente lo que se transcribió en un principio.Construí el paso de entrega del texto para una herramienta de dictado en macOS: después de transcribir, poné el texto donde está el cursor del usuario.
Antes de cada inserción, no solo en la configuración inicial, verificá que el permiso de Accesibilidad esté concedido ahora mismo y que exista de verdad un control editable con foco. Si se cumplen las dos cosas, insertá el texto en la posición del cursor en la app que está al frente y ofrecé un deshacer en un solo paso que quite exactamente los caracteres insertados. Si falla alguna (permiso revocado, el foco está en un botón, no hay ninguna ventana), no simules pulsaciones a ciegas esperando que ande. Hacé un respaldo explícito: copiá el texto al portapapeles, decile al usuario con precisión qué condición falló y enlazá el panel de ajustes que corresponde.
Manejá la carrera en la que el foco cambia entre que termina la transcripción y se entrega: volvé a revisar el foco al momento de entregar, no al momento de capturar.
Terminado cuando: revocar Accesibilidad en medio de una sesión termine en un respaldo de copia con una explicación correcta, la inserción nunca se dispare sobre un destino no editable, y deshacer después de insertar deje el campo destino como estaba.Construí un diccionario personal para una herramienta de dictado: una lista chica de nombres, términos de producto y jerga que el proveedor de transcripción siempre estropea.
Las entradas se normalizan al guardar: se recortan, se limita el largo, se deduplican sin distinguir mayúsculas y se limita la cantidad, para que la lista siga siendo un conjunto de pistas y no un corpus. Aplicalas de dos maneras: pasá los términos como pistas de sesgo en el pedido de transcripción cuando el proveedor lo soporte, y corré una pasada posterior que corrija coincidencias aproximadas en la transcripción, con coincidencia difusa contra malentendidos conocidos como coobernetties, atenta a los límites de palabra para que las entradas cortas no reescriban partes de palabras inocentes.
Mantené el diccionario local por defecto. Los pedidos a proveedores incluyen la lista de términos y el audio de la sesión, nada más: ni portapapeles, ni títulos de ventanas, ni texto del documento de alrededor. Soportá exportar e importar como texto plano.
Terminado cuando: un término del diccionario se corrija en la salida aunque el proveedor lo entienda mal, una entrada de tres letras nunca dañe palabras más largas que la contengan, y el payload del pedido al proveedor contenga solo audio más la lista de términos.Wispr Flow cuesta US$15–US$39 por mes en sus planes pagos públicos, o sea US$180–US$468 por año. Un reemplazo propio y enfocado te cuesta el tiempo de armarlo más un hosting casi gratis.
El prompt de esta página viene en cuatro versiones: el stack AHA (Astro, HTMX, Alpine.js), Next.js, Laravel y Ruby on Rails. El contexto técnico de este producto es SwiftUI, Swift, macOS. Elegí el stack que ya conocés: importa más el alcance que el framework.
Una v1 útil necesita: atajo global para hablar e indicador claro de escucha; transcripción en streaming con puntuación y saltos de párrafo; diccionario personal chico para nombres y términos técnicos; modos de limpieza opcionales (conciso, pulido y literal); vista previa, copiar y escribir en el cursor con deshacer. Todo lo demás es agrandar el alcance hasta que lo extrañes de verdad.
No armes grabación de reuniones, clonación de voz, analíticas de equipo, apps móviles ni escucha en segundo plano.
Sí. Wispr Flow y Superwhisper resuelven el mismo trabajo de fondo: convertir el dictado con tecla de hablar en texto corregido sin guardar una biblioteca de grabaciones. La v1 de esta página cubre lo que casi todos usan de cualquiera de los dos, así que un solo desarrollo enfocado reemplaza al que pagues hoy.
OpenWhispr hace casi todo lo que hace Wispr Flow, sin suscripción, y tus datos quedan con vos. La comparación punto por punto está en la página.
Sí. Con una herramienta de código abierto instalada de tu lado, tus archivos quedan en tu máquina o en tu servidor. Nadie puede cerrarte la cuenta ni cambiarte el precio.
¿Sin tiempo para hacerlo?
Si preferís que alguien lo instale, lo conecte a tus herramientas y lo deje andando, en Aurelio hacemos exactamente eso.
Pedir una auditoría de automatización