PopClip OpenRouter Writing Tools - 7 atajos de IA para tu texto seleccionado
Trabajar con IA para texto significa, en la práctica, abrir ChatGPT o Claude en otra ventana, pegar el texto, escribir un prompt (“corrige esto”, “tradúcelo al inglés”, “resúmelo”), copiar la respuesta y pegarla de vuelta donde estabas. Funciona, pero la fricción es real: cuatro o cinco saltos de contexto por cada operación trivial.
Para reducir todo eso a un clic he construido OpenRouter Writing Tools: una extensión gratuita y open source para PopClip que añade 7 acciones de IA al menú flotante. Selecciona texto en cualquier app, pulsa un botón y el texto se reemplaza por el resultado. Sin saltar de ventana, sin escribir prompts.
Toda la conexión se hace a través de OpenRouter, un proxy que te da acceso a los modelos de OpenAI y Google Gemini con una única API key. Sin mantener cuentas separadas, sin gestionar varias claves.

Las 7 acciones
Sección titulada «Las 7 acciones»| # | Botón | Qué hace | Modelo |
|---|---|---|---|
| 1 | Correct | Corrige ortografía, gramática y puntuación. Sin reescribir. | openai/gpt-4o-mini |
| 2 | Translate | Traduce. Por defecto modo auto: español ↔ inglés. | google/gemini-2.5-flash |
| 3 | Summarize | Texto largo → párrafo corto o lista de bullets. | openai/gpt-4o-mini |
| 4 | Improve email/message | Limpia, clarifica, elimina coletillas y repeticiones. | google/gemini-2.5-pro |
| 5 | Improve content | Une varios fragmentos pegados en un documento coherente y destaca lo importante en **negrita**. | openai/gpt-4o |
| 6 | Format HTML | Convierte texto plano en HTML semántico usando solo <h2>, <h3>, <h4>, <p>, <ol>, <ul>, <li>, <strong>, <u>. | openai/gpt-4o |
| 7 | Format Markdown | Convierte texto plano en Markdown limitado a ##, ###, ####, párrafos, listas 1. y - , **bold** y <u> para subrayado. | openai/gpt-4o |
Cada acción tiene su propia configuración interna (modelo, temperature, max tokens y system prompt afinados a la tarea). Los defaults están pensados para producir buena calidad sin gastar tokens innecesarios.
El detalle del Translate auto
Sección titulada «El detalle del Translate auto»La acción Translate detecta el idioma del texto seleccionado y elige automáticamente el destino:
| Texto seleccionado | Resultado |
|---|---|
Hola, ¿cómo estás? (español) | Hello, how are you? (inglés) |
Hello, how are you? (inglés) | Hola, ¿cómo estás? (español) |
Bonjour le monde (francés) | Hello world (inglés) |
Si quieres forzar siempre un idioma concreto, abres PopClip → Preferencias → Extensiones → OpenRouter Writing Tools y cambias el campo Target language de auto a german, french, italian, portuguese, japanese, etc. Para volver al modo automático escribes auto.
El detalle del Format HTML / Markdown
Sección titulada «El detalle del Format HTML / Markdown»Estas dos acciones existen porque la mayoría de IAs tienden a vomitar todo el HTML del mundo (<div>, <span>, <style>, atributos class=, etc.) cuando solo quieres pegar algo limpio en un CMS, una nota o un email.
Los system prompts de estas tareas son estrictos: solo permiten las etiquetas listadas arriba. No usan <div>, no añaden atributos, no envuelven en <html> ni <body>, no usan bloques de código. Devuelven HTML semántico listo para pegar en WordPress, Notion HTML, Substack, Mail.app, Outlook o cualquier editor que acepte HTML.
Lo mismo para Markdown: nada de tablas, ni código, ni headings H1, ni blockquotes, ni separadores horizontales. Solo lo equivalente a las etiquetas HTML aprobadas, para que el resultado se vea coherente independientemente del renderer.
Por qué OpenRouter
Sección titulada «Por qué OpenRouter»OpenRouter es un proxy con API compatible con OpenAI que te da acceso a los catálogos de OpenAI, Google, Anthropic, Meta, Mistral, DeepSeek, etc. con una única clave. Aquí lo limito a los modelos openai/* y google/gemini-*, suficientes para cubrir el espectro velocidad/calidad/precio que necesitan las 7 tareas.
Ventajas concretas:
- Una sola API key que va en el panel de preferencias de la extensión, en lugar de gestionar credenciales por cada proveedor.
- Modelos
:freedisponibles para pruebas (no consumen crédito). - Pricing transparente y sin contratos: pagas por token consumido a tu saldo de OpenRouter.
- Failover automático entre proveedores si alguno cae (lo gestiona OpenRouter).
El único trade-off: OpenRouter cobra un markup del 5-10 % sobre el precio de cada modelo. Para el volumen de uso típico de una extensión personal de PopClip es irrelevante.
Cómo se instala
Sección titulada «Cómo se instala»-
Clona el repositorio o descarga el zip:
Ventana de terminal git clone https://github.com/usblsb/popclip-openrouter-writing-tools.git -
Doble clic sobre la carpeta
OpenRouterWritingTools.popclipext. -
PopClip pregunta si quieres instalarla → confirmar.
No hay dependencias externas: la extensión solo usa bash y python3, ambos preinstalados en macOS.
Configuración inicial
Sección titulada «Configuración inicial»- Crea una cuenta en openrouter.ai (oauth con Google o GitHub).
- Genera una key en openrouter.ai/keys. Empieza por
sk-or-v1-.... - Abre PopClip → Preferencias → Extensiones → OpenRouter Writing Tools.
- Pega la key en el campo OpenRouter API Key.
- (Opcional) Ajusta Response language (default
auto, mantiene el idioma del input) y Target language del Translate (defaultauto, ES ↔ EN).
Con eso ya tienes los 7 botones funcionando en cualquier app donde selecciones texto.
Privacidad
Sección titulada «Privacidad»Por defecto, OpenRouter puede reenviar tus prompts a los proveedores que entrenan con datos de usuario. Para desactivarlo, ve a openrouter.ai/settings/privacy y activa “Do not train”. Es una configuración a nivel de cuenta de OpenRouter, no de la extensión.
La extensión en sí no logea, no cachea, no envía nada a ningún sitio que no sea OpenRouter. Toda la lógica vive en un único script Python de unas 250 líneas que puedes auditar antes de instalar.
Limitaciones
Sección titulada «Limitaciones»- El click siempre pega el resultado. En esta versión no hay todavía un modo “shift+click = solo copiar al portapapeles” para casos en los que no quieras tocar la selección. Está en la lista para v2.
- No hay streaming: la respuesta llega en bloque tras 1-5 segundos según tarea y longitud del texto.
- Las 7 acciones siempre están visibles en el menú PopClip. Si alguna no la usas, puedes ocultarla globalmente desde PopClip → Preferencias → Apariencia → Acciones.
- El catálogo de OpenRouter cambia. Si algún nombre de modelo desaparece, edita
jl_writingtools.pyy sustitúyelo. Los nombres actuales se consultan en openrouter.ai/models.
Enlaces
Sección titulada «Enlaces»- Repositorio (código + documentación + issues): github.com/usblsb/popclip-openrouter-writing-tools
- OpenRouter: openrouter.ai
- PopClip: popclip.app
La extensión es MIT. Si la usas y echas en falta alguna tarea o quieres afinar algún prompt, abre un issue en el repo o haz fork — todos los system prompts viven al inicio del fichero jl_writingtools.py, fáciles de editar.