htmlgate

Seu agente fez um relatório lindo em HTML. E você mandou um print?

Para com isso. O htmlgate dá um link pra cada arquivo que o seu agente gera. O agente publica com um comando, quem abre faz login, e só passa quem está na sua lista. Tudo roda na sua conta Cloudflare.

O htmlgate não cobra nada. A conta Cloudflare é sua, e a fatura dela também.

$ htmlgate publish fechamento.html --title "Fechamento de outubro"
https://html.example.com/d/q7Rk2mXa9LpB
$ htmlgate public q7Rk2mXa9LpB   # só se você quiser
Todo Drop nasce fechado: só quem está na sua lista lê o conteúdo, depois de entrar.

Agente bom entrega HTML. Aí começa a gambiarra.

Dashboard, relatório, protótipo, comparação de pull request. O agente devolve um arquivo .html caprichado, com gráfico que mexe e tabela que filtra.

Pra mostrar pra alguém, você manda o arquivo no chat e ninguém abre no celular. Ou sobe num host público e torce pro link não parar onde não devia. Ou tira print, e o gráfico interativo vira foto de gráfico.

Se você se reconheceu em alguma dessas, relaxa, todo mundo já fez. O htmlgate dá a cada arquivo um endereço fixo, atrás de um login que você controla. Você manda o link e pronto.

Três passos e o agente já está publicando

Você faz o primeiro passo uma vez. Os outros dois viram rotina do agente.

  1. Instale na sua conta

    pnpm run setup cria o banco, o bucket, o Worker e o login do Cloudflare Access. Pode rodar de novo quando quiser: ele atualiza no lugar, sem tirar nada do ar.

  2. Dê um token ao agente

    Um por máquina ou por agente, criado na página de tokens. Vazou? Revogue ali mesmo e ele para de funcionar no pedido seguinte.

  3. O agente publica

    htmlgate publish arquivo.html devolve a URL. Pra atualizar sem trocar o link, publique com --slug: o mesmo endereço ganha uma versão nova, e as 20 últimas ficam guardadas.

O que vem no pacote

Tudo isso sem pagar um centavo ao htmlgate. Onde a Cloudflare pode cobrar, a gente conta logo abaixo, sem esconder nada.

Fechado por padrão

Todo Drop nasce visível só pra quem está na sua lista, depois de entrar pelo Cloudflare Access. Quer abrir um pro mundo? htmlgate public. Mudou de ideia? htmlgate gate fecha de novo a partir do próximo acesso.

Na sua conta, com as suas chaves

Você instala na sua própria conta Cloudflare. Ninguém mais guarda as suas credenciais, nem quem escreveu o htmlgate.

HTML do agente na caixa de areia

Cada Drop roda isolado, numa origem opaca. O script dele não lê os cookies de quem abre e não age em nome dessa pessoa.

Saiu da lista, perdeu o acesso

O Worker confere a sua lista em todo pedido. Quem sai dela perde o acesso no pedido seguinte.

Feito pra agente usar

CLI com --output json, códigos de saída documentados e uma skill pronta que ensina o seu agente a publicar sozinho.

Histórico de versões

Cada atualização com --slug vira uma versão nova na mesma URL. As 20 mais recentes ficam guardadas, cada uma com o seu link.

Quanto custa, sem letra miúda

O htmlgate não cobra nada. O que pode custar é a Cloudflare, na sua fatura, pelo que você usar.

R$ 0pelo htmlgate.
  • Workers. O plano gratuito deve dar conta, mas ainda não testamos. A versão 0.1 roda no plano pago.
  • R2, onde ficam os arquivos. Você ativa a assinatura uma vez no painel. Vêm 10 GB-mês grátis; passou disso, a Cloudflare cobra armazenamento e operações. O htmlgate para em 5 GB por padrão.
  • Zero Trust, o login. Tem plano gratuito, mas a Cloudflare pede os dados de pagamento mesmo assim.

Melhor nem instalar se

  • você quer um site público, com SEO e domínio bonito. Pra isso, use um host de site estático.
  • várias pessoas vão publicar, cada uma com a sua conta. Na 0.1, quem instala é o único autor.
  • você não tem, e nem quer ter, uma conta Cloudflare.
  • os seus arquivos passam de 2 MiB. É o limite de cada Drop.

Perguntas que todo mundo faz

É código aberto?

Sim, com licença MIT. O repositório fica público na versão 0.1. O cliente de linha de comando é um fork do htmlbin-cli, também MIT.

Preciso saber programar?

Precisa se virar num terminal: instalar Node 26 e pnpm, entrar na Cloudflare e rodar o setup. Se você já usa um agente de código, ele faz isso junto com você.

E se um token vazar?

Revogue na página de tokens: ele para no pedido seguinte. Depois liste os Drops públicos com htmlgate list --public e veja quem mexeu por último em cada um. Revogar não desfaz o que o token já fez.

Um Drop consegue roubar dados de quem abre?

Ele roda isolado, sem acesso aos cookies e à sessão de quem abre. Ele ainda pode mandar pra outro site o que ele mesmo contém. O isolamento protege quem abre, e o conteúdo do Drop é responsabilidade de quem publica.

O que é o "Entrar" lá em cima?

É a instância de quem escreveu o htmlgate, em app.htmlgate.com. Só entra quem foi convidado. A sua fica na sua conta, no endereço que você escolher.

Tem a ver com o htmlbin?

Foi inspirado nele, e o cliente é um fork do htmlbin-cli. Não é o htmlbin e não tem afiliação com o htmlbin.dev.

Bora colocar no ar?

Você precisa de uma conta Cloudflare com R2 e Zero Trust ativados, Node 26, pnpm e as CLIs wrangler e cf logadas na mesma conta. O resto está aqui embaixo, e o guia do operador explica cada passo.

git clone https://github.com/mneves75/htmlgate
cd htmlgate && pnpm install
cp instance.example.json instance.json   # edite: seu nome, seu e-mail, quem pode abrir
pnpm run setup
pnpm run token create laptop               # mostra o token uma vez
pnpm run build:cli && npm install -g ./packages/cli
htmlgate login https://sua-instancia.example.com

O repositório fica público na versão 0.1. O guia do operador explica cada passo e o que ele muda na sua conta.