MarkuprPlus
Captura pantallas y voz para agentes de codificación de IA. Convierte revisiones de interfaz narradas en Markdown estructurado con capturas anotadas, y envía hallazgos a GitHub o Linear. Transcripción local con Whisper; aplicación de escritorio, CLI y servidor MCP.
Documentación
MarkuprPlus
Lo ves. Lo dices. Tu IA lo arregla.
Una aplicación de escritorio para Windows y macOS, CLI y servidor MCP para retroalimentación visual.
Graba y anota desde tu escritorio, procesa grabaciones desde la terminal, o dale a tu agente de IA herramientas de captura de pantalla.
Descargar para Windows o macOS · Usar la CLI · Conectar un cliente MCP · Acción de GitHub
▶ Ver el recorrido del producto en 33 segundos
Elige una ventana. Explica qué está mal. Rodéalo mientras sucede.
Cada círculo se convierte en su propio problema, con su propia captura de pantalla, lista para pegar en tu agente de codificación.
Inicio rápido · El ciclo · Salida · Capturas de pantalla · Proveedores · MCP · CLI
Mantén presionado Ctrl en Windows o Cmd en macOS, rodea el problema, sigue hablando. Ese trazo se convierte en MX-001.
El problema
Tu agente de codificación no puede ver tu pantalla. Así que dejas de trabajar y empiezas a transcribir: describe el error de diseño en prosa, toma una captura de pantalla, recórtala, arrástrala al lugar correcto, explica qué parte importa. Hablas a 150 palabras por minuto y escribes a 60, y el contexto se pierde en el camino.
La solución
MarkuprPlus es una aplicación de escritorio para Windows y macOS, con una CLI, servidor MCP y Acción de GitHub para flujos de trabajo automatizados. La aplicación de escritorio vive en la bandeja del sistema de Windows o en la barra de menús de macOS. Graba la ventana exacta a la que apuntas, escucha mientras narras y te permite dibujar en la pantalla en vivo sin bloquear tus clics. Cuando te detienes, transcribe en el dispositivo, alinea tus palabras con cada marca y escribe un informe en el que tu agente puede actuar: un hallazgo por círculo, cada uno con su propio fotograma anotado.
| Usa MarkuprPlus como | Lo que puedes hacer | Comienza |
|---|---|---|
| Aplicación de escritorio para Windows | Graba tu pantalla y voz, dibuja anotaciones en vivo y revisa informes desde la bandeja del sistema. | Descargar para Windows |
| Aplicación de escritorio para macOS | Captura y anota desde la barra de menús en Macs con Apple Silicon o Intel. | Descargar para macOS |
| CLI | Analiza grabaciones existentes, supervisa carpetas y genera informes en scripts. | Comandos de la CLI |
| Servidor MCP | Permite que un agente de IA capture capturas de pantalla, grabe sesiones y reciba informes estructurados. | Conecta tu agente |
| Acción de GitHub | Procesa grabaciones en tus flujos de trabajo de GitHub Actions. | Configuración de la acción |
Windows: Ctrl+Shift+F → talk → Ctrl-drag → Ctrl+Shift+F → paste into your agent
macOS: Cmd+Shift+F → talk → Cmd-drag → Cmd+Shift+F → paste into your agent
El ciclo
1. Presiona el atajo de captura y elige tu objetivo
Usa Ctrl+Shift+F en Windows o Cmd+Shift+F en macOS.
El selector se abre sobre cada ventana. Lo que esté bajo tu cursor se ilumina: haz clic y la grabadora se fija solo en esa ventana, y permanece fija a través de movimientos, cambios de tamaño y cambios de aplicación. Los modos de región y pantalla completa están a un clic de distancia cuando un hallazgo necesita un marco más amplio.
Si la identidad de la ventana o su geometría nativa se vuelve ambigua a mitad de sesión, la captura se detiene en lugar de ampliarse a lo que esté detrás. Nunca envías un fotograma que no querías compartir.
Los controles de captura viven en un solo panel emergente vertical, accesible desde la bandeja del sistema de Windows o la barra de menús de macOS.
2. Habla mientras trabajas
Sigue haciendo clic en tu aplicación como siempre. MarkuprPlus graba la ventana y tu micrófono juntos, y luego transcribe con Whisper en el dispositivo después de que te detengas.
El selector, el lienzo de dibujo y el HUD de grabación están excluidos de la captura de pantalla a nivel del sistema operativo: nada de lo que MarkuprPlus dibuja termina en tu video. Solo tu aplicación, más los trazos que querías dejar.
3. Mantén presionado Ctrl (Windows) o Cmd (macOS) y dibuja
Mantén presionada la tecla modificadora y arrastra para pintar directamente en la pantalla en vivo: a mano alzada, círculo o resaltado, en un color que elijas. Suelta la tecla y tu siguiente clic normal llega a la aplicación subyacente y guarda esa marca, limpiando el lienzo para la siguiente.
Tres círculos significan tres problemas, no una captura de pantalla con tres garabatos. Cada hallazgo lleva su propio PNG, marca de tiempo, herramienta y color.
4. Presiona el atajo de captura nuevamente para detener
Usa Ctrl+Shift+F en Windows o Cmd+Shift+F en macOS.
Whisper se ejecuta, tu narración se alinea con cada marca y el informe se escribe en el disco. La ruta del markdown se copia a tu portapapeles en el momento en que está lista: pégala directamente en Claude Code, Codex, Cursor o cualquier otra cosa que lea un archivo.
Todo para la sesión va en una carpeta: el informe, las capturas de pantalla, el video de la sesión, el audio de la narración y los metadatos.
Inicio rápido
Aplicación de escritorio para Windows y macOS (recomendada)
Descarga desde markuprplus.com o la página de versiones. Elige el instalador de Windows (.exe) o la imagen de disco de macOS (.dmg) para Apple Silicon o Intel.
Nota de instalación en macOS: Las descargas directas de GitHub Releases están firmadas, notarizadas y selladas. Si Gatekeeper rechaza un artefacto, usa soporte de MarkuprPlus para que se investigue la versión.
- Presiona
Cmd+Shift+F(macOS) oCtrl+Shift+F(Windows) y haz clic en la ventana que quieras. - Narra lo que ves. Mantén presionado
Cmd/Ctrly arrastra para marcar la pantalla en vivo. - Suelta la tecla y luego haz clic normalmente: eso guarda la marca y limpia el lienzo. Repite para cada hallazgo.
- Presiona la tecla de acceso rápido nuevamente para detener. La ruta del informe está en tu portapapeles.
Servidor MCP (para agentes de IA de codificación)
npx --yes --package markuprplus markuprplus-mcp
CLI (para grabaciones que ya tienes)
npx markuprplus analyze ./recording.mov
Compatibilidad: el paquete público y los comandos son
markuprplusymarkuprplus-mcp. Los archivos de proyecto.markuprxexistentes, las rutas de almacenamiento y los identificadores de la aplicación permanecen sin cambios para que las actualizaciones conserven sus configuraciones y sesiones.
Compañero opcional para integraciones CLI de Mac App Store
La aplicación sandboxed de Mac App Store puede usar herramientas de línea de comandos de IA ya instaladas e iniciadas sesión en tu Mac a través del puente CLI opcional de MarkuprPlus. Las reglas locales, Ollama, LM Studio y la API de Anthropic no requieren este compañero.
Instálalo y vincúlalo desde una Terminal:
npm install -g markuprplus
markuprplus bridge install # installs and starts a per-user LaunchAgent
markuprplus bridge token # paste this value in Settings → Advanced
markuprplus bridge status
El paquete npm público contiene los mismos puntos de entrada de CLI y MCP versionados utilizados por la versión fuente.
El servicio escucha solo en 127.0.0.1:49647, requiere su token de vinculación aleatorio para cada solicitud de proveedor y acepta un protocolo de informe estructurado fijo en lugar de texto de shell. La aplicación de App Store no ejecuta comandos de shell ni lanza herramientas externas; el compañero instalado por separado invoca solo el proveedor seleccionado en Configuración.
Comandos de ciclo de vida y recuperación:
markuprplus bridge start
markuprplus bridge stop
markuprplus bridge status
markuprplus bridge token
markuprplus bridge rotate-token
markuprplus bridge uninstall
Rotar el token requiere vincular nuevamente. Desinstalar elimina exactamente el LaunchAgent y la configuración del puente propiedad de MarkuprPlus; no desinstala tus CLI de IA.
Qué llega a tu carpeta
Una sesión, un directorio:
originplayer-test-iphone-20260818-104731/
├── feedback-report.md # the file you paste
├── feedback-summary.md # counts and duration
├── metadata.json # per-issue capture context
├── processing-trace.json # which provider ran, how long, why it fell back
├── screenshots/
│ ├── marked-issue-001.png # one frame per mark, your stroke composited in
│ ├── marked-issue-002.png
│ └── marked-issue-003.png
├── session-recording.webm # the window, with annotations
└── session-audio.webm # your narration
Un hallazgo real y sin editar de esa sesión:
### MX-001
- **Timestamp:** 00:08
- **Tools:** freehand
- **Colors:** #ff3b30
#### User Comment
> So there's a search menu and over here by default, if there's been
> previous searches, it should list out all the searches that have
> happened in the past.
#### Marked Evidence

Cada hallazgo lleva más que píxeles:
| Qué viaja con el problema | Ejemplo |
|---|---|
| Su propio PNG anotado | screenshots/marked-issue-001.png |
| La narración en ese momento | transcript-segment-0001 … 0002 |
| Cómo lo marcaste | freehand · #ff3b30 |
| De dónde vino | window:5976:0 · OriginPlayer Test iPhone · darwin |
| Cursor, aplicación activa y sugerencias de enfoque | capturados en el instante en que dibujaste |
| Metadatos de activación | annotation, manual, pause o voice-command |
Los problemas marcados se numeran MX-001…; los elementos que provienen solo de la narración son FB-001….
Cada superficie
![]() Proveedores de informes Quince formas de convertir una sesión en un informe, cada una muestra si es accesible ahora mismo — versión y ruta de CLI, puerto local, clave faltante. |
![]() Editor de revisión Reordena hallazgos, cámbiales el título, modifica categoría y gravedad, y elimina los que solo eran pensamientos en voz alta. |
![]() Vista previa de Markdown en vivo Ve el archivo exacto que tu agente leerá antes de guardarlo. Cópialo, abre la carpeta o expórtalo. |
![]() Capturas recientes Cada sesión permanece en disco con sus recuentos de elementos y capturas. Copia cualquier ruta de informe sin buscarla en Finder. |
![]() Atajos de teclado Grabar, capturar pantalla y pausar son globales y reasignables, con la referencia rápida en el panel. |
![]() Apariencia Diez colores de acento más un selector personalizado, con vista previa en vivo. El modo claro y oscuro siguen al sistema. |
![]() Grabación y audio Cuenta regresiva antes de grabar, retroalimentación de forma de onda de audio y selección de micrófono. |
![]() Transcripción y claves Whisper se ejecuta localmente primero. OpenAI solo recibe audio si la recuperación local falla y guardaste una clave. |
![]() Barra de menú Inicia una grabación, ve a ajustes o sal — sin abrir el popover. |
Transcripción local
Al iniciar el escritorio, MarkuprPlus descarga el modelo tiny multilingüe de Whisper (~75 MB) en segundo plano si no hay un modelo local instalado. Los modelos existentes se reutilizan. El progreso de la descarga y los errores reintentables aparecen en Ajustes > Avanzado > Transcripción local. Las descargas interrumpidas se reanudan en el siguiente inicio; las descargas sin conexión o fallidas no bloquean la apertura de la aplicación. Una vez descargado, la transcripción local funciona sin conexión a internet.
Idioma de la interfaz
La interfaz de escritorio usa inglés por defecto, incluso al actualizar desde una instalación que antes mostraba chino tradicional automáticamente. Elige Ajustes > General > Idioma > Idioma de la interfaz para optar por chino tradicional o volver al inglés. La preferencia se guarda y se aplica de inmediato en todas las ventanas abiertas, sin reiniciar ni interrumpir una grabación. Restablecer los ajustes generales vuelve al inglés.
El idioma de la interfaz es independiente del idioma de transcripción. Los textos de retroalimentación, las grabaciones y los informes generados no se traducen con este ajuste.
Para añadir otro idioma de interfaz, registra su identificador y nombre visible en src/shared/uiLanguage.ts y su catálogo de traducciones en src/renderer/i18n/catalogs.ts. Las etiquetas en inglés son la fuente y el respaldo para traducciones faltantes; marca las regiones de contenido de usuario con translate="no".
Proveedores de informes
Elige el modelo que convierte una captura en un informe estructurado. MarkuprPlus verifica cada uno antes de que grabes y te muestra lo que realmente encontró.
En la aplicación de la Mac App Store, los proveedores CLI usan el compañero local opcional descrito arriba. Las compilaciones directas de escritorio invocan los mismos adaptadores dentro de la aplicación. Ambas rutas conservan las Reglas locales como informe a prueba de fallos.
| Proveedor | Tipo | Qué usa |
|---|---|---|
| Codex CLI | CLI | Tu CLI instalada o la CLI incluida en la app de Codex para Mac y el inicio de sesión existente de ChatGPT, en una sesión efímera de solo lectura |
| Claude Code CLI | CLI | La CLI de Claude Code en la que ya iniciaste sesión |
| GitHub Copilot CLI | CLI | Copilot CLI 1.0.83+ con tu inicio de sesión existente de GitHub, en una sesión aislada sin herramientas |
| OpenCode | CLI | Tu proveedor de OpenCode configurado, con un agente por ejecución que deniega toda acción de herramienta |
| Cursor Agent CLI | CLI | Cursor Agent en modo Ask no interactivo y de solo lectura |
| Qwen Code | CLI | Qwen Code en modo plan seguro y no interactivo con herramientas de mutación excluidas |
| Goose | CLI | Tu proveedor de Goose configurado en modo chat sin herramientas, sin perfiles ni persistencia de sesión |
| Amp | CLI | Tu inicio de sesión de Amp con una política de herramientas de denegación predeterminada aislada |
| Kiro CLI | CLI | Modo headless de Kiro con solo lectura y grep de confianza |
| Aider | CLI | Tu modelo de Aider configurado en modo dry-run, sin git |
| Ollama | Local | Un modelo servido en 127.0.0.1:11434 — nada sale de la máquina |
| LM Studio | Local | Un servidor de LM Studio en 127.0.0.1:1234 |
| Anthropic API | Nube | Tu propia clave, almacenada en el llavero del sistema y usada solo para esto |
| Reglas locales | Cero configuración | Informe determinista solo con transcripción y marcas, sin credenciales |
El fallo es seguro por diseño. Si el proveedor que elegiste falla, el informe determinista de Reglas locales se escribe de todos modos, y el popover nombra al proveedor y el motivo. Tu grabación, audio y marcas ya estaban en disco antes de que comenzara el análisis. Una elección explícita de CLI nunca se convierte silenciosamente en una llamada a Anthropic.
Codex CLI, GitHub Copilot CLI y OpenCode pueden recibir capturas de pantalla. Los adaptadores CLI solo de transcripción rechazan sesiones solo de capturas en lugar de inventar hallazgos visuales.
Para usar GitHub Copilot CLI, instala o actualiza copilot, ejecuta copilot login
en Terminal, luego selecciona GitHub Copilot CLI en Ajustes de informe y actualiza
los proveedores. Deja el modelo en blanco para usar el predeterminado de Copilot, o ingresa un ID
de modelo de Copilot. El descubrimiento verifica la versión instalada; la autenticación se verifica
cuando se ejecuta un informe. El puente CLI opcional proporciona la misma integración para
la aplicación de la Mac App Store.
Copilot recibe la transcripción por stdin y las capturas de pantalla como adjuntos. Cada informe usa una configuración temporal de Copilot que reutiliza solo tu identidad de inicio de sesión (las credenciales permanecen en el almacén de credenciales del sistema) y el modelo predeterminado, no tus plugins, hooks, servidores MCP ni permisos guardados. Todas las herramientas del modelo y las instrucciones personalizadas están deshabilitadas. El contexto temporal se elimina después del éxito o el fallo. También se admite la autenticación con token de entorno; los respaldos de credenciales en texto plano no se copian en la configuración temporal.
processing-trace.json registra exactamente lo que sucedió:
{
"requestedProvider": "codex-cli",
"actualProvider": "rules",
"aiFallbackReason": "Codex analysis exited with status 1.",
"aiEnhanced": false,
"totalMs": 4220
}
Por qué MarkuprPlus
Evidencia, no metraje. Una grabación de pantalla deja a tu agente un video que no puede ver y a ti un archivo que tienes que narrar dos veces. Esto te da hallazgos separados, un fotograma anotado para cada uno, las palabras que dijiste en esa marca de tiempo y el contexto de ventana y cursor.
Local primero. Whisper se ejecuta en tu dispositivo y las Reglas locales no necesitan credenciales. La transcripción en la nube y los modelos en la nube solo se ejecutan cuando los eliges explícitamente. Sin cuenta, sin telemetría, sin análisis.
No se filma a sí misma. El selector, el lienzo de dibujo y el HUD de grabación están protegidos por contenido a nivel del sistema operativo. Tus marcas llegan al informe; el propio marco de la aplicación nunca llega al video.
Se adapta a tu flujo de trabajo. Aplicaciones de escritorio para Windows y macOS para captura diaria, una CLI para scripts y CI, un servidor MCP para agentes y una GitHub Action para solicitudes de extracción.
Código abierto. Licencia MIT. Léelo, haz un fork, publícalo.
Servidor MCP
Dale a tu agente ojos y oídos. Puede capturar pantallas, grabar tu pantalla con voz y recibir informes estructurados en medio de la conversación.
Conecta GitHub Copilot CLI, la app de Claude para Mac o Codex con el comando de configuración:
npm install -g markuprplus
markuprplus integrate copilot
markuprplus integrate claude-desktop
markuprplus integrate codex
Ejecuta el comando para cada cliente que uses y luego reinicia ese cliente. La configuración de Claude cubre tanto Chat como Code. Codex comparte su configuración con su CLI. Añade --dry-run para previsualizar; los ajustes existentes y otros servidores se conservan, y los archivos modificados se respaldan. Una entrada conflictiva existente de markuprplus requiere --force. Consulta configuración y capacidades del cliente para más detalles.
Para configuración manual, Claude Code (~/.claude.json o proyecto .mcp.json), Cursor y Windsurf usan la misma forma:
{
"mcpServers": {
"MarkuprPlus": {
"command": "npx",
"args": ["--yes", "--package", "markuprplus", "markuprplus-mcp"]
}
}
}
Herramientas
| Herramienta | Descripción |
|---|---|
capture_screenshot | Captura la pantalla actual con cursor, app/ventana activa y pistas de enfoque adjuntas. |
capture_with_voice | Graba pantalla y micrófono durante una duración determinada y devuelve un informe estructurado. |
describe_screen | Describe lo que hay actualmente en pantalla. |
start_recording | Inicia una sesión de grabación interactiva. |
stop_recording | Finaliza la sesión y ejecuta el pipeline completo. |
analyze_video | Procesa un .mov / .mp4 existente a Markdown con fotogramas extraídos. |
analyze_screenshot | Ejecuta una sola captura de pantalla a través del pipeline de análisis. |
push_to_github | Crea issues de GitHub a partir de un informe. |
push_to_linear | Crea issues de Linear a partir de un informe. |
You: "The sidebar is overlapping the main content on mobile. Can you see it?"
Agent: [calls capture_screenshot]
"I can see it — the sidebar is position: fixed with no z-index,
280px wide with no responsive breakpoint. Fixing the CSS..."
Documentación completa de MCP: README-MCP.md.
CLI
npx markuprplus analyze ./recording.mov
| Comando | Qué hace |
|---|---|
markuprplus analyze <video> | Convierte una grabación existente en un informe estructurado |
markuprplus watch [dir] | Procesa nuevas grabaciones de una carpeta a medida que llegan |
markuprplus doctor | Verifica tu entorno en busca de dependencias y configuración |
markuprplus init | Genera la configuración inicial |
markuprplus push github <report> | Crea issues de GitHub a partir de un informe |
markuprplus push linear <report> | Crea issues de Linear a partir de un informe |
markuprplus analyze ./recording.mov --output ./reports
markuprplus analyze ./recording.mov --template github-issue
markuprplus analyze ./recording.mov --no-frames # transcript only
markuprplus watch ~/Desktop --output ./reports
markuprplus push github ./report.md --repo myorg/myapp --dry-run
Plantillas de salida: markdown (predeterminada) · json · github-issue · linear · jira
La aplicación de escritorio también exporta html y pdf.
Requisitos: Node.js 20.9+ y ffmpeg en tu PATH (brew install ffmpeg / apt install ffmpeg / choco install ffmpeg).
Integraciones
GitHub Action
Analiza grabaciones en CI y publica comentarios estructurados en la solicitud de extracción que lo necesita:
- uses: eddiesanjuan/markuprx-action@v1
with:
video-path: ./recordings/
github-token: ${{ secrets.GITHUB_TOKEN }}
create-issues: 'true'
Consulta markuprx-action/README.md para cada entrada.
Rastreadores de issues
Envía cada hallazgo directamente a GitHub Issues o Linear — captura de pantalla, narración, marca de tiempo y contexto de captura ya formateados — desde la aplicación, la CLI o tu agente a través de MCP.
Atajos de teclado
| Acción | macOS | Windows |
|---|---|---|
| Iniciar / detener grabación | Cmd+Shift+F | Ctrl+Shift+F |
| Marcar la pantalla en vivo | mantén Cmd y arrastra | mantén Ctrl y arrastra |
| Captura manual | Cmd+Shift+S | Ctrl+Shift+S |
| Pausar / reanudar | Cmd+Shift+P | Ctrl+Shift+P |
| Ajustes | Cmd+, | Ctrl+, |
Grabar, capturar pantalla y pausar son globales y reasignables en Ajustes → Atajos de teclado. Referencia completa: docs/KEYBOARD_SHORTCUTS.md.
Cómo funciona
+-----------+
Screen + Voice -> | Whisper | -> Timestamped transcript
+-----------+
|
+-----------+
| Aligner | -> Marks matched to the words around them
+-----------+
|
+-----------+
| Provider | -> Structure and severity (or local rules)
+-----------+
|
+-----------+
| Generator | -> Markdown, HTML, JSON, PDF, or tracker-ready
+-----------+
El pipeline se degrada con elegancia en cada paso. ¿Sin ffmpeg? Salida solo de transcripción. ¿Sin modelo de Whisper? Capturas basadas en temporizador. ¿Sin proveedor? Reglas locales. Un fallo en cualquier punto aún te deja un informe y la sesión cruda en disco.
Para detalles de arquitectura, consulta CLAUDE.md.
Desarrollo
npm install
npm run dev
| Comando | Descripción |
|---|---|
npm run dev | Modo de desarrollo con recarga automática |
npm run build | Compilar todo (escritorio + CLI + MCP) |
npm test | Ejecutar todas las pruebas |
npm run lint | Lint |
npm run typecheck | Verificación de tipos |
Contribuciones
- Haz un fork del repositorio
- Crea una rama de funcionalidad:
git checkout -b feature/your-feature - Ejecuta las pruebas:
npm test && npm run lint && npm run typecheck - Abre una Pull Request
Consulta CONTRIBUTING.md para las pautas completas.
Licencia
MIT — consulta LICENSE.








