Como instalar e configurar a extensão de navegador¶
Este guia cobre a instalação completa da extensão Anotae em Windows (foco do beta 0.9.0-beta2), com notas para macOS e Linux. O Chrome é o caminho recomendado; Edge e Firefox seguem o mesmo padrão com pequenas diferenças.
Resumo em 4 passos
- Builde a extensão (uma vez):
cd extension && npm ci && npm run build- Registre o NMH:
anotae install-extension --browser chrome- Carregue a pasta
extension/dist/chrome/nochrome://extensions/em modo desenvolvedor- Confirme que o ID exibido é
hfebcjlpbgegopcdllhannfmfihbnhcm
Pré-requisitos¶
- Anotae
0.9.0-beta2instalado (Anotae.exepara Windows oupip install -e .rodando do source) - Node.js 22+ (para buildar a extensão localmente; se você baixou o
chrome.zipdo Release, pula essa parte) - Chrome 110+ (ou Edge 110+, Firefox 109+)
Passo 1 — Builde a extensão¶
A extensão é distribuída como código TypeScript fonte; é preciso buildar para gerar extension/dist/chrome/ e extension/dist/firefox/.
A pasta extension/dist/chrome/ deve conter:
extension/dist/chrome/
├── manifest.json
├── background.js
├── content.js
├── popup.js
├── popup/popup.html
├── icons/icon-{16,48,128}.png
└── assets/popup.css
Atalho: se você não quiser instalar Node, baixe o ZIP pré-buildado do Release mais recente em https://github.com/anotae/anotae/releases. Descompacte e use a pasta
chrome/comoextension/dist/chrome/.
Passo 2 — Registre o Native Messaging Host (NMH)¶
O NMH é o canal pelo qual a extensão conversa com o app desktop. Precisa ser registrado no sistema antes que o navegador permita a comunicação.
Opção A — Pelo app (assistente gráfico)¶
- Abra o Anotae
- Menu Ajuda → Instalar extensão de navegador...
- Clique em Registrar para Chrome (ou Edge/Firefox)
- O assistente mostra o caminho do manifesto registrado e os próximos passos
Opção B — Pela linha de comando¶
No Windows (PowerShell ou Prompt de Comando):
Saída esperada:
Instalando NMH para chrome...
Executável: C:\...\Anotae.exe
Diretório: %LOCALAPPDATA%\Anotae\NativeMessagingHosts
[OK] Manifesto NMH instalado em:
C:\Users\<você>\AppData\Local\Anotae\NativeMessagingHosts\ae.anot.anotae.json
Próximos passos para carregar a extensão Anotae:
1. Abra chrome://extensions/
2. Ative 'Modo desenvolvedor' (canto superior direito)
3. Clique em 'Carregar sem compactação'
4. Selecione a pasta extension/dist/chrome/ deste repositório
5. Confirme que o ID é: hfebcjlpbgegopcdllhannfmfihbnhcm
No Windows, o registrador também grava uma chave em HKCU\Software\Google\Chrome\NativeMessagingHosts\ae.anot.anotae (ou Edge/Firefox correspondente) — é assim que o navegador encontra o manifesto.
Passo 3 — Carregue a extensão no navegador¶
Chrome / Edge / Chromium¶
- Acesse
chrome://extensions/(ouedge://extensions/) - Habilite o Modo desenvolvedor (toggle superior direito)
- Clique em Carregar sem compactação
- Selecione a pasta
extension/dist/chrome/ - A extensão Anotae aparece na lista. Confirme:
- ID:
hfebcjlpbgegopcdllhannfmfihbnhcm(determinístico — bate com o NMH) - Versão:
0.9.0(com sufixo0.9.0-beta2em "Detalhes") - Fixe o ícone da Anotae na barra (clique no ícone de quebra-cabeças → alfinete ao lado de Anotae)
Firefox¶
- Acesse
about:debugging#/runtime/this-firefox - Clique em Carregar extensão temporária...
- Selecione o arquivo
extension/dist/firefox/manifest.json
Atenção Firefox: extensões temporárias somem ao reiniciar o navegador. Para uso permanente, será necessário publicar no AMO (Mozilla Add-ons) ou usar Firefox Developer Edition / Nightly com
xpinstall.signatures.required = false.
Passo 4 — Verifique a conexão¶
- No Anotae, abra ou crie um vault
- Crie um atendimento de teste com S/O/A/P preenchido
- Abra https://sei.df.gov.br no Chrome
- Clique no ícone Anotae na barra do navegador → o popup deve listar o atendimento
Se aparecer "Falha ao conectar com o app" ou "Native messaging host not found", veja o troubleshooting abaixo.
Troubleshooting¶
"Native messaging host 'ae.anot.anotae' not found"¶
- Causa: NMH não registrado para o navegador correto.
- Solução: rode
anotae install-extension --browser chrome(ajuste para o navegador em uso).
"Specified native messaging host not found" mesmo após registrar¶
- Causa Windows: chave de registro não foi criada por falta de permissão.
- Solução: abra PowerShell como Administrador e rode novamente. O NMH usa
HKCU(current user), então normalmente não precisa de admin, mas alguns AVs bloqueiam.
Extensão carrega com ID diferente de hfebcjlpbgegopcdllhannfmfihbnhcm¶
- Causa: o
manifest.jsonemdist/chrome/está sem o campokey. - Solução: rebuilde —
cd extension && npm run build— o plugin do Vite copia omanifest.jsoncorreto (com key) do diretório fonte. - Verificação:
python scripts/extension-keypair.pymostra o ID esperado.
"This extension may have been corrupted"¶
- Causa: algum arquivo do
dist/ficou faltando após edição manual. - Solução:
rm -rf extension/dist && cd extension && npm run build
Build do npm run build falha¶
- Causa comum: Node.js < 22.
- Solução: atualize Node. Verifique com
node --version.
Anotae.exe foi movido depois de registrar o NMH¶
- Causa: o manifesto NMH guarda caminho absoluto do executável.
- Solução: rode
anotae install-extension --browser chromenovamente; o caminho será reescrito.
macOS¶
Os passos 1, 3 e 4 são idênticos. Para o passo 2:
O manifesto vai para ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/ae.anot.anotae.json. Sem registro de sistema (não tem winreg).
Linux¶
Idem macOS, com manifesto em ~/.config/google-chrome/NativeMessagingHosts/.
Entendendo o canal de comunicação¶
Quando o popup da extensão chama "injetar atendimento":
- Background script da extensão envia mensagem via
chrome.runtime.connectNative('ae.anot.anotae') - Chrome consulta a chave registrada e encontra o caminho do manifesto JSON
- Manifesto JSON aponta para o executável do Anotae + lista os IDs de extensão permitidos (
allowed_origins) - Chrome confere que o ID da extensão (que clicou) bate com a lista
- Chrome inicia o processo Anotae em modo NMH (stdin/stdout = canal binário)
- Anotae responde com o atendimento serializado em JSON
- Content script injeta no formulário do site-alvo (e-SUS APS PEC, SISREG III, SEI/DF)
Tudo é local. Nenhum byte sai da máquina.
Para detalhes técnicos, ver docs/explanation/extensao-key-id.md.
Mais¶
- Como enviar feedback
- Documentação completa: https://docs.anot.ae