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
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
▶ 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.
Início Rápido · O Ciclo · Saída · Capturas de Tela · Provedores · MCP · CLI
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 como | O que você pode fazer | Comece aqui |
|---|---|---|
| Aplicativo de desktop para Windows | Grave sua tela e voz, desenhe anotações ao vivo e revise relatórios pela bandeja do sistema. | Baixar para Windows |
| Aplicativo de desktop para macOS | Capture e anote pela barra de menus em Macs Apple Silicon ou Intel. | Baixar para macOS |
| CLI | Analise gravações existentes, monitore pastas e gere relatórios em scripts. | Comandos da CLI |
| Servidor MCP | Deixe um agente de IA de codificação capturar telas, gravar sessões e receber relatórios estruturados. | Conecte seu agente |
| GitHub Action | Processe 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.
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
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.
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.
- Pressione
Cmd+Shift+F(macOS) ouCtrl+Shift+F(Windows) e clique na janela desejada. - Narre o que você vê. Segure
Cmd/Ctrle arraste para marcar a tela ao vivo. - Solte a tecla e clique normalmente — isso salva a marca e limpa a tela. Repita para cada achado.
- 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
markuprplusemarkuprplus-mcp. Os arquivos de projeto.markuprxexistentes, 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

Cada achado carrega mais do que pixels:
| O que acompanha o problema | Exemplo |
|---|---|
| Seu próprio PNG anotado | screenshots/marked-issue-001.png |
| A narração naquele momento | transcript-segment-0001 … 0002 |
| Como você marcou | freehand · #ff3b30 |
| De onde veio | window:5976:0 · OriginPlayer Test iPhone · darwin |
| Cursor, aplicativo ativo e dicas de foco | capturados no instante em que você desenhou |
| Metadados de gatilho | annotation, 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
![]() 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. |
![]() Editor de revisão Reordene descobertas, renomeie-as, altere categoria e gravidade, e descarte aquelas que eram apenas pensamentos em voz alta. |
![]() 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. |
![]() 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. |
![]() Atalhos de teclado Gravar, capturar tela e pausar são globais e reatribuíveis, com a referência rápida mantida no painel. |
![]() Aparência Dez cores de destaque mais um seletor personalizado, pré-visualizadas ao vivo. Claro e escuro seguem o sistema. |
![]() Gravação e áudio Contagem regressiva antes de gravar, feedback de forma de onda de áudio e seleção de microfone. |
![]() 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. |
![]() 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.
| Provedor | Tipo | O que usa |
|---|---|---|
| Codex CLI | CLI | Sua 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 CLI | CLI | A CLI do Claude Code na qual você já está conectado |
| GitHub Copilot CLI | CLI | Copilot CLI 1.0.83+ com seu login existente do GitHub, em uma sessão isolada sem ferramentas |
| OpenCode | CLI | Seu provedor OpenCode configurado, com um agente por execução que nega toda ação de ferramenta |
| Cursor Agent CLI | CLI | Cursor Agent no modo Ask não interativo e somente leitura |
| Qwen Code | CLI | Qwen Code no modo de plano seguro e não interativo, com ferramentas de mutação excluídas |
| Goose | CLI | Seu provedor Goose configurado no modo de chat sem ferramentas, sem perfis ou persistência de sessão |
| Amp | CLI | Seu login Amp com uma política de ferramentas isolada de negação por padrão |
| Kiro CLI | CLI | Modo headless do Kiro com apenas leitura e grep confiáveis |
| Aider | CLI | Seu modelo Aider configurado no modo dry-run, sem git |
| Ollama | Local | Um modelo servido em 127.0.0.1:11434 — nada sai da máquina |
| LM Studio | Local | Um servidor LM Studio em 127.0.0.1:1234 |
| Anthropic API | Nuvem | Sua própria chave, armazenada no chaveiro do sistema e usada para nada mais |
| Regras locais | Zero configuração | Relató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
| Ferramenta | Descrição |
|---|---|
capture_screenshot | Capture a tela atual com cursor, aplicativo/janela ativo e dicas de foco anexadas. |
capture_with_voice | Grave tela e microfone por uma duração definida e retorne um relatório estruturado. |
describe_screen | Descreva o que está atualmente na tela. |
start_recording | Inicie uma sessão de gravação interativa. |
stop_recording | Encerre a sessão e execute o pipeline completo. |
analyze_video | Processe um .mov / .mp4 existente em Markdown com quadros extraídos. |
analyze_screenshot | Execute uma única captura de tela pelo pipeline de análise. |
push_to_github | Crie issues do GitHub a partir de um relatório. |
push_to_linear | Crie 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
| Comando | O 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 doctor | Verifique seu ambiente para dependências e configuração |
markuprplus init | Gere 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).
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ção | macOS | Windows |
|---|---|---|
| Iniciar / parar gravação | Cmd+Shift+F | Ctrl+Shift+F |
| Marcar a tela ao vivo | segure Cmd e arraste | segure Ctrl e arraste |
| Captura de tela manual | Cmd+Shift+S | Ctrl+Shift+S |
| Pausar / retomar | Cmd+Shift+P | Ctrl+Shift+P |
| Configurações | Cmd+, | 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
| Comando | Descrição |
|---|---|
npm run dev | Modo de desenvolvimento com recarga automática |
npm run build | Compilar tudo (desktop + CLI + MCP) |
npm test | Executar todos os testes |
npm run lint | Lint |
npm run typecheck | Verificação de tipos |
Contribuindo
- Faça um fork do repositório
- Crie um branch de funcionalidade:
git checkout -b feature/your-feature - Execute os testes:
npm test && npm run lint && npm run typecheck - Abra um Pull Request
Consulte CONTRIBUTING.md para as diretrizes completas.
Licença
MIT — consulte LICENSE.








