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

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

Watch the 33-second MarkuprPlus product tour

▶ 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.

CI Nightly Deploy Action Coverage

Version 3.2.0 Desktop app for Windows and macOS MarkuprPlus CLI MCP server for AI agents Local Whisper transcription License

Inicio rápido · El ciclo · Salida · Capturas de pantalla · Proveedores · MCP · CLI


An app under review, unmarked    The same screen with a red freehand ellipse around the problem

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 comoLo que puedes hacerComienza
Aplicación de escritorio para WindowsGraba tu pantalla y voz, dibuja anotaciones en vivo y revisa informes desde la bandeja del sistema.Descargar para Windows
Aplicación de escritorio para macOSCaptura y anota desde la barra de menús en Macs con Apple Silicon o Intel.Descargar para macOS
CLIAnaliza grabaciones existentes, supervisa carpetas y genera informes en scripts.Comandos de la CLI
Servidor MCPPermite que un agente de IA capture capturas de pantalla, grabe sesiones y reciba informes estructurados.Conecta tu agente
Acción de GitHubProcesa 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.

The MarkuprPlus popover in its Ready To Capture state

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

A red hand-drawn ellipse around the tab bar of the app under review

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.

The popover showing Report Ready with the markdown path copied to the clipboard

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.

  1. Presiona Cmd+Shift+F (macOS) o Ctrl+Shift+F (Windows) y haz clic en la ventana que quieras.
  2. Narra lo que ves. Mantén presionado Cmd / Ctrl y arrastra para marcar la pantalla en vivo.
  3. Suelta la tecla y luego haz clic normalmente: eso guarda la marca y limpia el lienzo. Repite para cada hallazgo.
  4. 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 markuprplus y markuprplus-mcp. Los archivos de proyecto .markuprx existentes, 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

![Marked issue MX-001](./screenshots/marked-issue-001.png)

Cada hallazgo lleva más que píxeles:

Qué viaja con el problemaEjemplo
Su propio PNG anotadoscreenshots/marked-issue-001.png
La narración en ese momentotranscript-segment-0001 … 0002
Cómo lo marcastefreehand · #ff3b30
De dónde vinowindow:5976:0 · OriginPlayer Test iPhone · darwin
Cursor, aplicación activa y sugerencias de enfoquecapturados en el instante en que dibujaste
Metadatos de activaciónannotation, 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

Provider list with live reachability status
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.
Review editor with editable category and severity chips
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.
Live markdown preview inside the review editor
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.
Recent captures list with item and shot counts
Capturas recientes
Cada sesión permanece en disco con sus recuentos de elementos y capturas. Copia cualquier ruta de informe sin buscarla en Finder.
Hotkey settings and quick reference
Atajos de teclado
Grabar, capturar pantalla y pausar son globales y reasignables, con la referencia rápida en el panel.
Accent colour picker with live preview
Apariencia
Diez colores de acento más un selector personalizado, con vista previa en vivo. El modo claro y oscuro siguen al sistema.
Recording behaviour and audio input settings
Grabación y audio
Cuenta regresiva antes de grabar, retroalimentación de forma de onda de audio y selección de micrófono.
Local transcription and credential settings
Transcripción y claves
Whisper se ejecuta localmente primero. OpenAI solo recibe audio si la recuperación local falla y guardaste una clave.
Menu bar context menu
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.

ProveedorTipoQué usa
Codex CLICLITu 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 CLICLILa CLI de Claude Code en la que ya iniciaste sesión
GitHub Copilot CLICLICopilot CLI 1.0.83+ con tu inicio de sesión existente de GitHub, en una sesión aislada sin herramientas
OpenCodeCLITu proveedor de OpenCode configurado, con un agente por ejecución que deniega toda acción de herramienta
Cursor Agent CLICLICursor Agent en modo Ask no interactivo y de solo lectura
Qwen CodeCLIQwen Code en modo plan seguro y no interactivo con herramientas de mutación excluidas
GooseCLITu proveedor de Goose configurado en modo chat sin herramientas, sin perfiles ni persistencia de sesión
AmpCLITu inicio de sesión de Amp con una política de herramientas de denegación predeterminada aislada
Kiro CLICLIModo headless de Kiro con solo lectura y grep de confianza
AiderCLITu modelo de Aider configurado en modo dry-run, sin git
OllamaLocalUn modelo servido en 127.0.0.1:11434 — nada sale de la máquina
LM StudioLocalUn servidor de LM Studio en 127.0.0.1:1234
Anthropic APINubeTu propia clave, almacenada en el llavero del sistema y usada solo para esto
Reglas localesCero configuraciónInforme 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

HerramientaDescripción
capture_screenshotCaptura la pantalla actual con cursor, app/ventana activa y pistas de enfoque adjuntas.
capture_with_voiceGraba pantalla y micrófono durante una duración determinada y devuelve un informe estructurado.
describe_screenDescribe lo que hay actualmente en pantalla.
start_recordingInicia una sesión de grabación interactiva.
stop_recordingFinaliza la sesión y ejecuta el pipeline completo.
analyze_videoProcesa un .mov / .mp4 existente a Markdown con fotogramas extraídos.
analyze_screenshotEjecuta una sola captura de pantalla a través del pipeline de análisis.
push_to_githubCrea issues de GitHub a partir de un informe.
push_to_linearCrea 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
ComandoQué 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 doctorVerifica tu entorno en busca de dependencias y configuración
markuprplus initGenera 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).

MarkuprPlus desktop-to-report workflow demo

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ónmacOSWindows
Iniciar / detener grabaciónCmd+Shift+FCtrl+Shift+F
Marcar la pantalla en vivomantén Cmd y arrastramantén Ctrl y arrastra
Captura manualCmd+Shift+SCtrl+Shift+S
Pausar / reanudarCmd+Shift+PCtrl+Shift+P
AjustesCmd+,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
ComandoDescripción
npm run devModo de desarrollo con recarga automática
npm run buildCompilar todo (escritorio + CLI + MCP)
npm testEjecutar todas las pruebas
npm run lintLint
npm run typecheckVerificación de tipos

Contribuciones

  1. Haz un fork del repositorio
  2. Crea una rama de funcionalidad: git checkout -b feature/your-feature
  3. Ejecuta las pruebas: npm test && npm run lint && npm run typecheck
  4. Abre una Pull Request

Consulta CONTRIBUTING.md para las pautas completas.

Licencia

MIT — consulta LICENSE.


www.markuprplus.com