MarkuprPlus

Capture telas e voz para agentes de codificação de IA. Transforme revisões de UI narradas em Markdown estruturado com capturas de tela anotadas e envie descobertas para GitHub ou Linear. Transcrição local via Whisper; aplicativo desktop, CLI e servidor MCP.

Documentação

MarkuprPlus

MarkuprPlus

Você vê. Você diz. Sua IA corrige.

Um aplicativo de desktop para Windows e macOS, CLI e servidor MCP para feedback visual.
Grave e anote a partir da sua área de trabalho, processe gravações pelo terminal ou dê ao seu agente de IA ferramentas de captura de tela.

Baixar para Windows ou macOS · Usar a CLI · Conectar um cliente MCP · GitHub Action

Watch the 33-second MarkuprPlus product tour

▶ Assista ao tour do produto em 33 segundos

Escolha uma janela. Fale sobre o que está errado. Circule enquanto acontece.
Cada círculo vira seu próprio problema, com sua própria captura de tela, pronta para colar no seu agente de codificação.

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

Início Rápido · O Ciclo · Saída · Capturas de Tela · Provedores · MCP · CLI


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

Segure Ctrl no Windows ou Cmd no macOS, circule o problema, continue falando. Esse traço vira MX-001.

O Problema

Seu agente de codificação não consegue ver sua tela. Então você para de trabalhar e começa a transcrever: descreva o bug de layout em prosa, tire uma captura de tela, recorte-a, arraste-a para o lugar certo, explique qual parte importa. Você fala a 150 palavras por minuto e digita a 60, e o contexto se perde no caminho.

A Solução

MarkuprPlus é um aplicativo de desktop para Windows e macOS, com CLI, servidor MCP e GitHub Action para fluxos de trabalho automatizados. O aplicativo de desktop fica na bandeja do sistema do Windows ou na barra de menus do macOS. Ele grava a janela exata para a qual você aponta, ouve enquanto você narra e permite desenhar na tela ao vivo sem bloquear seus cliques. Quando você para, ele transcreve no dispositivo, alinha suas palavras a cada marca e escreve um relatório que seu agente pode usar — um achado por círculo, cada um com seu próprio quadro anotado.

Use MarkuprPlus comoO que você pode fazerComece aqui
Aplicativo de desktop para WindowsGrave sua tela e voz, desenhe anotações ao vivo e revise relatórios pela bandeja do sistema.Baixar para Windows
Aplicativo de desktop para macOSCapture e anote pela barra de menus em Macs Apple Silicon ou Intel.Baixar para macOS
CLIAnalise gravações existentes, monitore pastas e gere relatórios em scripts.Comandos da CLI
Servidor MCPDeixe um agente de IA de codificação capturar telas, gravar sessões e receber relatórios estruturados.Conecte seu agente
GitHub ActionProcesse gravações nos seus fluxos de trabalho do GitHub Actions.Configuração da Action
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

O Ciclo

1. Pressione o atalho de captura e escolha seu alvo

Use Ctrl+Shift+F no Windows ou Cmd+Shift+F no macOS.

The MarkuprPlus popover in its Ready To Capture state

O seletor abre acima de todas as janelas. O que estiver sob o cursor acende — clique e o gravador trava naquela janela sozinha, e permanece travado durante movimentos, redimensionamentos e trocas de aplicativos. Os modos de região e tela cheia estão a um clique de distância quando um achado precisa de um quadro mais amplo.

Se a identidade da janela ou a geometria nativa ficar ambígua no meio da sessão, a captura para em vez de ampliar para o que está atrás. Você nunca envia um quadro que não pretendia compartilhar.

Os controles de captura ficam em um único popover vertical, acessível pela bandeja do sistema do Windows ou pela barra de menus do macOS.


2. Fale enquanto trabalha

Continue clicando no seu aplicativo normalmente. MarkuprPlus grava a janela e seu microfone juntos e depois transcreve com Whisper no dispositivo após você parar.

O seletor, a tela de desenho e o HUD de gravação são todos excluídos da captura de tela no nível do sistema operacional — nada que MarkuprPlus desenha aparece no seu vídeo. Apenas seu aplicativo aparece, além dos traços que você quis deixar.

3. Segure Ctrl (Windows) ou Cmd (macOS) e desenhe

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

Segure a tecla modificadora e arraste para pintar diretamente na tela ao vivo — à mão livre, círculo ou destaque, na cor que você escolher. Solte a tecla e seu próximo clique normal alcança o aplicativo por baixo e salva essa marca, limpando a tela para a próxima.

Três círculos significam três problemas, não uma captura de tela com três rabiscos. Cada achado carrega seu próprio PNG, timestamp, ferramenta e cor.


4. Pressione o atalho de captura novamente para parar

Use Ctrl+Shift+F no Windows ou Cmd+Shift+F no macOS.

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

O Whisper roda, sua narração é alinhada a cada marca e o relatório é gravado no disco. O caminho do markdown vai para sua área de transferência no momento em que fica pronto — cole direto no Claude Code, Codex, Cursor ou qualquer outra ferramenta que leia arquivos.

Tudo da sessão vai para uma pasta: o relatório, as capturas de tela, o vídeo da sessão, o áudio da narração e os metadados.


Início Rápido

Aplicativo de desktop para Windows e macOS (recomendado)

Baixe de markuprplus.com ou da página de releases. Escolha o instalador para Windows (.exe) ou a imagem de disco para macOS (.dmg) para Apple Silicon ou Intel.

Nota de instalação no macOS: Downloads diretos do GitHub Releases são assinados, notarizados e carimbados. Se o Gatekeeper rejeitar um artefato, use o suporte MarkuprPlus para que o release seja investigado.

  1. Pressione Cmd+Shift+F (macOS) ou Ctrl+Shift+F (Windows) e clique na janela desejada.
  2. Narre o que você vê. Segure Cmd / Ctrl e arraste para marcar a tela ao vivo.
  3. Solte a tecla e clique normalmente — isso salva a marca e limpa a tela. Repita para cada achado.
  4. Pressione o atalho novamente para parar. O caminho do relatório está na sua área de transferência.

Servidor MCP (para agentes de IA de codificação)

npx --yes --package markuprplus markuprplus-mcp

CLI (para gravações que você já tem)

npx markuprplus analyze ./recording.mov

Compatibilidade: o pacote público e os comandos são markuprplus e markuprplus-mcp. Os arquivos de projeto .markuprx existentes, caminhos de armazenamento e identificadores de aplicativo permanecem inalterados para que as atualizações mantenham suas configurações e sessões.

Companheiro opcional para integrações CLI da Mac App Store

O aplicativo sandboxed da Mac App Store pode usar ferramentas de linha de comando de IA já instaladas e conectadas no seu Mac por meio do MarkuprPlus CLI Bridge opcional. Regras Locais, Ollama, LM Studio e API da Anthropic não exigem este companheiro.

Instale e emparelhe a partir de um 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

O pacote npm público contém os mesmos pontos de entrada de CLI e MCP versionados usados pelo release de código-fonte.

O serviço escuta apenas em 127.0.0.1:49647, exige seu token de emparelhamento aleatório para cada solicitação de provedor e aceita um protocolo fixo de relatório estruturado em vez de texto de shell. O aplicativo da App Store não executa comandos de shell nem inicia ferramentas externas; o companheiro instalado separadamente invoca apenas o provedor selecionado nas Configurações.

Comandos de ciclo de vida e recuperação:

markuprplus bridge start
markuprplus bridge stop
markuprplus bridge status
markuprplus bridge token
markuprplus bridge rotate-token
markuprplus bridge uninstall

Rotacionar o token exige emparelhamento novamente. A desinstalação remove exatamente o LaunchAgent e a configuração de ponte de propriedade da MarkuprPlus; ela não desinstala seus CLIs de IA.

O Que Cai na Sua Pasta

Uma sessão, um diretório:

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

Um achado real e sem edição dessa sessão:

### 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 achado carrega mais do que pixels:

O que acompanha o problemaExemplo
Seu próprio PNG anotadoscreenshots/marked-issue-001.png
A narração naquele momentotranscript-segment-0001 … 0002
Como você marcoufreehand · #ff3b30
De onde veiowindow:5976:0 · OriginPlayer Test iPhone · darwin
Cursor, aplicativo ativo e dicas de fococapturados no instante em que você desenhou
Metadados de gatilhoannotation, manual, pause ou voice-command

Problemas marcados são numerados MX-001…; itens que vêm apenas da narração são FB-001….

Cada Superfície

Provider list with live reachability status
Provedores de relatório
Quinze maneiras de transformar uma sessão em um relatório, cada uma mostrando se está acessível agora mesmo — versão e caminho da CLI, porta local, chave ausente.
Review editor with editable category and severity chips
Editor de revisão
Reordene descobertas, renomeie-as, altere categoria e gravidade, e descarte aquelas que eram apenas pensamentos em voz alta.
Live markdown preview inside the review editor
Pré-visualização de Markdown ao vivo
Veja o arquivo exato que seu agente lerá antes de salvá-lo. Copie, abra a pasta ou exporte.
Recent captures list with item and shot counts
Capturas recentes
Cada sessão permanece no disco com suas contagens de itens e capturas. Copie qualquer caminho de relatório de volta sem procurar no Finder.
Hotkey settings and quick reference
Atalhos de teclado
Gravar, capturar tela e pausar são globais e reatribuíveis, com a referência rápida mantida no painel.
Accent colour picker with live preview
Aparência
Dez cores de destaque mais um seletor personalizado, pré-visualizadas ao vivo. Claro e escuro seguem o sistema.
Recording behaviour and audio input settings
Gravação e áudio
Contagem regressiva antes de gravar, feedback de forma de onda de áudio e seleção de microfone.
Local transcription and credential settings
Transcrição e chaves
O Whisper roda localmente primeiro. A OpenAI só recebe áudio se a recuperação local falhar e você salvou uma chave.
Menu bar context menu
Barra de menu
Inicie uma gravação, vá para as configurações ou saia — sem abrir o popover.

Transcrição Local

Na inicialização do desktop, o MarkuprPlus baixa o modelo tiny multilíngue do Whisper (~75 MB) em segundo plano se nenhum modelo local estiver instalado. Modelos existentes são reutilizados. O progresso do download e erros que podem ser repetidos aparecem em Configurações > Avançado > Transcrição Local. Downloads interrompidos são retomados na próxima inicialização; downloads offline ou com falha não bloqueiam a abertura do aplicativo. Uma vez baixado, a transcrição local funciona sem conexão com a internet.

Idioma da Interface

A interface do desktop usa Inglês por padrão, inclusive ao atualizar de uma instalação que exibia Chinês Tradicional automaticamente. Escolha Configurações > Geral > Idioma > Idioma da interface para optar pelo Chinês Tradicional ou voltar ao Inglês. A preferência é salva e aplicada imediatamente em todas as janelas abertas, sem reiniciar ou interromper uma gravação. Redefinir as configurações gerais restaura o Inglês.

O idioma da interface é separado do idioma de transcrição. Textos de feedback, gravações e relatórios gerados não são traduzidos por esta configuração.

Para adicionar outro idioma de interface, registre seu identificador e nome de exibição em src/shared/uiLanguage.ts e seu catálogo de traduções em src/renderer/i18n/catalogs.ts. Os rótulos em Inglês são a fonte e o fallback para traduções ausentes; marque regiões de conteúdo do usuário com translate="no".

Provedores de Relatório

Escolha o modelo que transforma uma captura em um relatório estruturado. O MarkuprPlus verifica cada um antes de você gravar e mostra o que realmente encontrou.

No aplicativo da Mac App Store, os provedores CLI usam o companheiro local opcional descrito acima. As compilações diretas para desktop invocam os mesmos adaptadores dentro do aplicativo. Ambos os caminhos preservam as Regras Locais como o relatório à prova de falhas.

ProvedorTipoO que usa
Codex CLICLISua CLI instalada ou a CLI integrada do aplicativo Codex para Mac e o login existente do ChatGPT, em uma sessão efêmera somente leitura
Claude Code CLICLIA CLI do Claude Code na qual você já está conectado
GitHub Copilot CLICLICopilot CLI 1.0.83+ com seu login existente do GitHub, em uma sessão isolada sem ferramentas
OpenCodeCLISeu provedor OpenCode configurado, com um agente por execução que nega toda ação de ferramenta
Cursor Agent CLICLICursor Agent no modo Ask não interativo e somente leitura
Qwen CodeCLIQwen Code no modo de plano seguro e não interativo, com ferramentas de mutação excluídas
GooseCLISeu provedor Goose configurado no modo de chat sem ferramentas, sem perfis ou persistência de sessão
AmpCLISeu login Amp com uma política de ferramentas isolada de negação por padrão
Kiro CLICLIModo headless do Kiro com apenas leitura e grep confiáveis
AiderCLISeu modelo Aider configurado no modo dry-run, sem git
OllamaLocalUm modelo servido em 127.0.0.1:11434 — nada sai da máquina
LM StudioLocalUm servidor LM Studio em 127.0.0.1:1234
Anthropic APINuvemSua própria chave, armazenada no chaveiro do sistema e usada para nada mais
Regras locaisZero configuraçãoRelatório determinístico apenas a partir da transcrição e das marcações, sem credenciais

A falha é segura por design. Se o provedor escolhido apresentar erro, o relatório determinístico de Regras locais é gravado mesmo assim, e o popover nomeia o provedor e o motivo. Sua gravação, áudio e marcações já estavam no disco antes do início da análise. Uma escolha explícita de CLI nunca se torna silenciosamente uma chamada à Anthropic.

Codex CLI, GitHub Copilot CLI e OpenCode podem receber capturas de tela. Adaptadores CLI somente de transcrição rejeitam sessões apenas com capturas de tela, em vez de inventar descobertas visuais.

Para usar o GitHub Copilot CLI, instale ou atualize copilot, execute copilot login no Terminal e selecione GitHub Copilot CLI nas Configurações de Relatório e atualize os provedores. Deixe o modelo em branco para usar o padrão do Copilot, ou insira um ID de modelo do Copilot. A descoberta verifica a versão instalada; a autenticação é verificada quando um relatório é executado. A Ponte CLI opcional fornece a mesma integração para o aplicativo da Mac App Store.

O Copilot recebe a transcrição via stdin e capturas de tela como anexos. Cada relatório usa uma configuração temporária do Copilot que reutiliza apenas sua identidade de login (as credenciais permanecem no armazenamento de credenciais do SO) e o modelo padrão, não seus plugins, hooks, servidores MCP ou permissões salvas. Todas as ferramentas de modelo e instruções personalizadas são desativadas. O contexto temporário é removido após sucesso ou falha. A autenticação por token de ambiente também é suportada; fallbacks de credenciais em texto puro não são copiados para a configuração temporária.

processing-trace.json registra exatamente o que aconteceu:

{
  "requestedProvider": "codex-cli",
  "actualProvider": "rules",
  "aiFallbackReason": "Codex analysis exited with status 1.",
  "aiEnhanced": false,
  "totalMs": 4220
}

Por que o MarkuprPlus

Evidência, não filmagem. Uma gravação de tela deixa ao seu agente um vídeo que ele não pode assistir e a você um arquivo que precisa narrar duas vezes. Isto oferece descobertas separadas, um quadro anotado para cada uma, as palavras que você disse naquele timestamp e o contexto da janela e do cursor.

Local primeiro. O Whisper roda no seu dispositivo e as Regras locais não precisam de credenciais. Transcrição em nuvem e modelos em nuvem só rodam quando você os escolhe explicitamente. Sem conta, sem telemetria, sem analytics.

Não filma a si mesmo. O seletor, a tela de desenho e o HUD de gravação são protegidos por conteúdo no nível do SO. Suas marcações chegam ao relatório; o próprio chrome do aplicativo nunca chega ao vídeo.

Adapta-se ao seu fluxo de trabalho. Aplicativos desktop para Windows e macOS para captura diária, uma CLI para scripts e CI, um servidor MCP para agentes e uma GitHub Action para pull requests.

Código aberto. Licença MIT. Leia, faça um fork, publique.

Servidor MCP

Dê olhos e ouvidos ao seu agente. Ele pode capturar telas, gravar sua tela com voz e receber relatórios estruturados no meio da conversa.

Conecte o GitHub Copilot CLI, o aplicativo Claude para Mac ou o Codex com o comando de configuração:

npm install -g markuprplus
markuprplus integrate copilot
markuprplus integrate claude-desktop
markuprplus integrate codex

Execute o comando para cada cliente que você usa e reinicie o cliente em seguida. A configuração do Claude cobre tanto o Chat quanto o Code. O Codex compartilha sua configuração com a CLI. Adicione --dry-run para pré-visualizar; configurações existentes e outros servidores são preservados, e arquivos alterados são copiados. Uma entrada markuprplus conflitante existente requer --force. Veja configuração e capacidades do cliente para detalhes.

Para configuração manual, Claude Code (~/.claude.json ou projeto .mcp.json), Cursor e Windsurf usam o mesmo formato:

{
  "mcpServers": {
    "MarkuprPlus": {
      "command": "npx",
      "args": ["--yes", "--package", "markuprplus", "markuprplus-mcp"]
    }
  }
}

Ferramentas

FerramentaDescrição
capture_screenshotCapture a tela atual com cursor, aplicativo/janela ativo e dicas de foco anexadas.
capture_with_voiceGrave tela e microfone por uma duração definida e retorne um relatório estruturado.
describe_screenDescreva o que está atualmente na tela.
start_recordingInicie uma sessão de gravação interativa.
stop_recordingEncerre a sessão e execute o pipeline completo.
analyze_videoProcesse um .mov / .mp4 existente em Markdown com quadros extraídos.
analyze_screenshotExecute uma única captura de tela pelo pipeline de análise.
push_to_githubCrie issues do GitHub a partir de um relatório.
push_to_linearCrie issues do Linear a partir de um relatório.
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..."

Documentação completa do MCP: README-MCP.md.

CLI

npx markuprplus analyze ./recording.mov
ComandoO que faz
markuprplus analyze <video>Transforme uma gravação existente em um relatório estruturado
markuprplus watch [dir]Processe novas gravações de uma pasta conforme elas chegam
markuprplus doctorVerifique seu ambiente para dependências e configuração
markuprplus initGere a configuração inicial
markuprplus push github <report>Crie issues do GitHub a partir de um relatório
markuprplus push linear <report>Crie issues do Linear a partir de um relatório
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

Modelos de saída: markdown (padrão) · json · github-issue · linear · jira O aplicativo desktop também exporta html e pdf.

Requisitos: Node.js 20.9+ e ffmpeg no seu PATH (brew install ffmpeg / apt install ffmpeg / choco install ffmpeg).

MarkuprPlus desktop-to-report workflow demo

Integrações

GitHub Action

Analise gravações na CI e poste feedback estruturado no pull request que precisa:

- uses: eddiesanjuan/markuprx-action@v1
  with:
    video-path: ./recordings/
    github-token: ${{ secrets.GITHUB_TOKEN }}
    create-issues: 'true'

Veja markuprx-action/README.md para cada entrada.

Rastreadores de issues

Envie cada descoberta diretamente para o GitHub Issues ou Linear — captura de tela, narração, timestamp e contexto de captura já formatados — a partir do aplicativo, da CLI ou do seu agente via MCP.

Atalhos de Teclado

AçãomacOSWindows
Iniciar / parar gravaçãoCmd+Shift+FCtrl+Shift+F
Marcar a tela ao vivosegure Cmd e arrastesegure Ctrl e arraste
Captura de tela manualCmd+Shift+SCtrl+Shift+S
Pausar / retomarCmd+Shift+PCtrl+Shift+P
ConfiguraçõesCmd+,Ctrl+,

Gravação, captura de tela e pausa são globais e reatribuíveis em Configurações → Atalhos de teclado. Referência completa: docs/KEYBOARD_SHORTCUTS.md.

Como 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
                    +-----------+

O pipeline degrada graciosamente em cada etapa. Sem ffmpeg? Saída somente de transcrição. Sem modelo Whisper? Capturas de tela baseadas em temporizador. Sem provedor? Regras locais. Uma falha em qualquer lugar ainda deixa você com um relatório e a sessão bruta no disco.

Para detalhes de arquitetura, veja CLAUDE.md.

Desenvolvimento

npm install
npm run dev
ComandoDescrição
npm run devModo de desenvolvimento com recarga automática
npm run buildCompilar tudo (desktop + CLI + MCP)
npm testExecutar todos os testes
npm run lintLint
npm run typecheckVerificação de tipos

Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade: git checkout -b feature/your-feature
  3. Execute os testes: npm test && npm run lint && npm run typecheck
  4. Abra um Pull Request

Consulte CONTRIBUTING.md para as diretrizes completas.

Licença

MIT — consulte LICENSE.


www.markuprplus.com