e2llm-sifr

E2LLM — percepção estruturada do navegador para IA. O E2LLM transforma qualquer página web ativa em SiFR: um modelo compacto, determinístico e legível por LLM do que está na página, o que significa e o que pode ser feito com ela. A percepção é o produto. A ação está disponível quando você precisar — sempre explícita, sempre controlada. Funciona como um servidor MCP remoto hospedado com a IA que você já usa. Não é necessário executar um servidor local — uma extensão do navegador conecta seu navegador ativo ao servidor, para que a percepção e a ação ocorram no navegador real no qual você já está logado.

Documentação

E2LLM — percepção estruturada do navegador para IA

E2LLM transforma uma página web ao vivo em SiFR: um modelo compacto, estruturado e legível por LLM do que está na página, o que significa e o que pode ser feito com ela. Percepção é o produto. Ação está disponível quando você precisa — sempre explícita, sempre controlada.

Funciona como um servidor MCP remoto hospedado com a IA que você já usa. Não há servidor local para executar — uma extensão de navegador conecta seu navegador ao vivo ao servidor, para que percepção e ação aconteçam no navegador real no qual você já está conectado.


E2LLM não é um agente

Isso é importante, então vem primeiro.

Um agente decide e age por conta própria — ele planeja, faz loops e dá passos em direção a um objetivo sem você no caminho. Essa autonomia também é sua superfície de ataque: um runtime de agente que pode fazer qualquer coisa pode ser direcionado para fazer qualquer coisa.

E2LLM é uma camada de percepção, não um agente. Ele dá ao seu modelo sentidos para o navegador — visão estruturada através de sifr_capture, e um conjunto de atuadores estreitos e individualmente controlados. Ele não planeja, não faz loops e não decide. Qualquer modelo que você já usa faz o raciocínio; E2LLM apenas relata o que uma página é e executa uma instrução explícita por vez. Sem autonomia oculta, sem passos autodirigidos, nada que execute enquanto você desvia o olhar.

Essa linha — substrato de percepção versus runtime autônomo — é todo o design.


O que ele faz

FerramentaO que faz
🔎sifr_captureCaptura uma página como um documento SiFR
🔎queryFiltra a captura atual — por tag, saliência, texto ou seletor
🔎inspectDetalhes completos de um elemento: seletor, atributos, estilos, box
🔎read_pageLê o texto da página como markdown, em ordem de leitura
🔎list_tabsLista as abas abertas do navegador
🖐actUma interação explícita: clicar, digitar, selecionar, navegar, arrastar, abrir (nova aba) ou colar
🖐batch_actExecuta uma sequência planejada e depois observa uma vez (ex.: preencher formulário + enviar)
🖐exploreRolar, passar o mouse ou recapturar — lê mais, não muda nada
🖐close_tabFechar uma aba

Nove ferramentas: cinco 🔎 que apenas percebem, e quatro 🖐 para interação — das quais act, batch_act e close_tab alteram o estado da página, enquanto explore apenas lê. O inventário de ferramentas está em server.json; os esquemas completos de parâmetros vêm do servidor ao vivo na conexão. As ferramentas de percepção nunca alteram o estado da página; as ferramentas que alteram estado podem ser retidas para sua confirmação (veja Segurança).


O que é SiFR — e por que não é a opção óbvia

SiFR (Single-File RAG, pronunciado "see-far") é um artefato de recuperação autocontido para estado de interface ao vivo: legível por modelo, endereçável por nó, consultável progressivamente e independente do sistema de raciocínio acima dele. E2LLM é sua implementação de referência para o navegador real.

  • Não é um despejo de DOM. Um despejo serializa a árvore como está — tudo, em ordem de documento, incluindo ruído. SiFR seleciona e classifica: pontua cada nó por saliência, remove andaimes e achata os sobreviventes em um modelo relacional onde a estrutura é carregada por relações explícitas em vez de profundidade de aninhamento.
  • Não é uma árvore de acessibilidade. A árvore de a11y é derivada para tecnologia assistiva, orientada por ARIA, cega a qualquer coisa não rotulada e indiferente ao que mais importa na página. SiFR é construído para um modelo de linguagem: classifica por saliência, prioriza o que importa e carrega os seletores que um agente precisa para agir — nada disso a árvore de a11y faz.
  • Não é uma captura de tela. SiFR deriva percepção legível por máquina do DOM renderizado ao vivo, estilos computados, geometria e estado de runtime em vez de pixels. Uma captura registra o estado observado da página sob as versões e condições nomeadas por seu artefato de evidência.

O resultado é uma camada de percepção, não uma serialização: o que uma página é, o que você pode fazer nela e como suas partes se relacionam — priorizado para que o modelo alcance o que precisa primeiro. Um sifr_capture retorna um resumo de ~5–15 KB (metadados mais os elementos de alta saliência) antes do documento completo, para que a leitura possa começar imediatamente.

  • 📄 SIFR.md — a especificação do formato
  • 🔤 TAXONOMY.md — níveis de saliência, prefixos de ID, tipos de relação e categoria
  • 📚 examples/ — capturas reais de páginas públicas
  • 🗓 CHANGELOG.md — a linhagem do formato v1 → v2 → v3 (atual: v3)

Para receitas de prompt e fluxos de automação construídos sobre SiFR, veja awesome-e2llm-prompts — um livro de receitas da comunidade que aponta de volta para cá como o lar canônico da especificação SiFR.


Instalação em 3 passos

1. Configure em e2llm.com. Crie uma conta e instale a extensão do navegador. A extensão conecta seu navegador ao vivo ao servidor — essa conexão é o que permite sua IA perceber e agir na sessão na qual você já está conectado. (Esta é a única parte que roda na sua máquina; não há servidor local.)

2. Adicione E2LLM ao seu cliente MCP. Uma linha — escolha seu cliente em clients/, ou cole isto para login OAuth interativo:

{
  "mcpServers": {
    "e2llm": {
      "url": "https://mcp.e2llm.com/mcp",
      "type": "http"
    }
  }
}

Para CLI / CI onde login interativo não está disponível, use uma chave estática contra https://api.e2llm.com/mcp com um cabeçalho Authorization: Bearer mk_…. Instruções completas por cliente: clients/README.md.

3. Peça à sua IA para fazer algo em uma página. Por exemplo:

"Abra a página em que estou, encontre a caixa de busca e filtre por issues abertas."

Seu assistente chama sifr_capture para ver a página, depois act para interagir — no seu navegador real, um passo explícito por vez.


Ensine ao seu modelo a disciplina — as skills

As descrições de ferramentas dizem a um modelo o que cada ferramenta faz; elas deliberadamente não dizem como trabalhar bem. Essa disciplina de trabalho é entregue como duas Agent Skills:

SkillParaCobre
e2llmDirigir um navegador ao vivoVerificação de conexão, captura antes de descrever, uma ação e depois re-observar, relatar a partir do diff retornado, conteúdo de página não confiável, drenagem de cursor
sifrLer arquivos de captura salvosSeções, IDs compactos, níveis de saliência, predefinições, padrões estruturais, receitas jq

Instale ambas em uma linha, no agente que você usa:

npx skills add e2llm/e2llm-sifr

Isso funciona para 77+ agentes — Claude Code, Codex e qualquer outra coisa seguindo o layout de Agent Skills. Adicione -a codex para direcionar Codex explicitamente, ou --skill e2llm para instalar apenas uma.

Outras formas de entrada:

  • Codex CLInpx skills add e2llm/e2llm-sifr -a codex, ou o fluxo $skill-installer.
  • Manual — copie um diretório de skill em ~/.claude/skills/ (todos os projetos) ou em um .claude/skills/ do projeto. Ele carrega automaticamente sempre que as ferramentas e2llm ou documentos SiFR aparecem.
  • Outros clientes — inclua o conteúdo da skill nas instruções do seu agente (ex.: AGENTS.md).

Modelo de segurança e aprovação

Percepção é somente leitura por construção: as cinco ferramentas 🔎 não podem alterar o estado da página, então ver uma página é sempre seguro.

Apenas as quatro ferramentas 🖐 podem agir, e são deliberadamente estreitas — não existe ferramenta "faça qualquer coisa". Cada passo que altera estado pode ser controlado por aprovação conforme sua postura de sessão: dependendo de como sua sessão está configurada, uma ação pausa e espera sua confirmação antes de executar. As ações acontecem uma instrução explícita por vez, nunca como um loop autônomo.

Divulgações de segurança e nosso programa de divulgação de vulnerabilidades (com safe harbor) estão em e2llm.com/security/disclosure; veja também SECURITY.md.


Tratamento de dados

O conteúdo da página é capturado sob demanda e transita pelo relay E2LLM para alcançar seu cliente MCP. Dados relacionados à sessão são retidos por uma janela limitada (veja a Política de Privacidade) e campos do tipo senha são redigidos antes do armazenamento. O relay envolve todo o conteúdo derivado da página como dados externos não confiáveis, para que modelos downstream tratem o texto da página como dados, não instruções. Detalhes completos: Política de Privacidade · Termos.


Compatibilidade

E2LLM fala MCP padrão, então funciona com qualquer cliente compatível. Verificado na prática com Claude, ChatGPT, Codex, Perplexity, Grok e Manus. Outros clientes MCP — incluindo Cursor, VS Code e Cline — devem funcionar; se você testar algum, uma nota ou PR é bem-vindo.


Conteúdo do repositório

Este repositório é o lar canônico e descritivo do formato SiFR e da interface do servidor MCP E2LLM. Ele documenta o formato e como conectar; o motor de captura, extensões de navegador e servidor são um produto hospedado separado que roda em e2llm.com.

CaminhoO quê
SIFR.mdEspecificação do formato SiFR
TAXONOMY.mdVocabulário controlado SiFR
server.jsonManifesto do servidor MCP (transporte, autenticação, inventário de ferramentas)
.mcp.jsonConfiguração de cliente MCP pronta para uso (endpoint OAuth)
skills/A skill SIFR — disciplina de trabalho para modelos que dirigem as ferramentas
clients/Configurações de conexão por cliente
examples/Capturas reais de páginas públicas
SECURITY.mdPolítica de segurança e programa de divulgação
CHANGELOG.mdHistórico de versões do formato

Licença

MIT. A especificação do formato, manifesto, exemplos e configurações de cliente neste repositório são abertos. O motor de captura e o servidor são um produto hospedado separado.