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
| Ferramenta | O que faz | |
|---|---|---|
| 🔎 | sifr_capture | Captura uma página como um documento SiFR |
| 🔎 | query | Filtra a captura atual — por tag, saliência, texto ou seletor |
| 🔎 | inspect | Detalhes completos de um elemento: seletor, atributos, estilos, box |
| 🔎 | read_page | Lê o texto da página como markdown, em ordem de leitura |
| 🔎 | list_tabs | Lista as abas abertas do navegador |
| 🖐 | act | Uma interação explícita: clicar, digitar, selecionar, navegar, arrastar, abrir (nova aba) ou colar |
| 🖐 | batch_act | Executa uma sequência planejada e depois observa uma vez (ex.: preencher formulário + enviar) |
| 🖐 | explore | Rolar, passar o mouse ou recapturar — lê mais, não muda nada |
| 🖐 | close_tab | Fechar 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:
| Skill | Para | Cobre |
|---|---|---|
e2llm | Dirigir um navegador ao vivo | Verificaçã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 |
sifr | Ler arquivos de captura salvos | Seçõ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 CLI —
npx 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.
| Caminho | O quê |
|---|---|
SIFR.md | Especificação do formato SiFR |
TAXONOMY.md | Vocabulário controlado SiFR |
server.json | Manifesto do servidor MCP (transporte, autenticação, inventário de ferramentas) |
.mcp.json | Configuraçã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.md | Política de segurança e programa de divulgação |
CHANGELOG.md | Histó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.