Fenestra
GitHub
manual oficial

Seu HTML, no navegador de verdade.

O Fenestra abre a porta em 127.0.0.1 e entrega o site para o seu navegador. Ele não é um navegador — é a janela entre a sua pasta e o navegador que você já usa.

Windows · Linux · macOSsem nuvemsem conta

Como funciona

Três passos, sem configuração.

1

Você abre o HTML

Duplo clique em um .html ou em uma pasta de build.

2

O Fenestra serve

Um servidor local sobe em 127.0.0.1, com porta estável por pasta.

3

O navegador mostra

A página abre no navegador que você escolher aqui embaixo.

um passo essencial

Torne o Fenestra o padrão para .html

Cada sistema tem o seu jeito. Escolha o seu:

Este passo é opcional. Para abrir um projeto uma vez, arraste o index.html sobre o Fenestra ou passe o caminho; o handler de .html não muda.

Abra uma vez, sem tornar padrão

Fenestra+ index.html
→
Navegadorprojeto aberto
→
Feche a janelaservidor encerra
  1. Arraste o index.html sobre o Fenestra, ou passe o caminho na linha de comando.
  2. O projeto abre numa aba normal do navegador.
  3. Feche a janela que o Fenestra abriu. O servidor local encerra junto.

Se o navegador já estava aberto, o servidor encerra após 4 horas ociosas; fechar só a aba não encerra o processo do navegador.

Windows

Pelas Configurações do Windows:

  1. Abra Configurações (Win + I).
  2. Vá em Aplicativos → Aplicativos padrão.
  3. Procure .html e escolha Fenestra.

Atalho: ms-settings:defaultapps.

Configurações — Aplicativos padrão
.htmlFenestra›

Linux

Registre o handler uma vez:

  1. fenestra --install
  2. xdg-mime default fenestra.desktop text/html

Desfaça com fenestra --uninstall.

Terminal
voce@linux:~$ xdg-mime default fenestra.desktop text/html

macOS

Sem terminal — pelo Finder:

  1. Botão direito no .html → Obter informações.
  2. Abrir com → Fenestra.
  3. Clique em Alterar tudo….
Exemplo.html — Informações
Abrir com
Fenestra ▾
Alterar tudo…
escolha do navegador

Escolha o navegador do Fenestra

Isto não é uma lista. Clique em um navegador para dizer ao Fenestra qual abrir — a escolha vale no próximo .html.

↻ Atualizar lista

O Windows pede confirmação na primeira vez. A lista é atualizada a cada execução.

No dia a dia

Os comandos que importam.

Fenestra.exe "C:\projeto\dist\index.html" Fenestra.exe "C:\projeto\dist" Fenestra.exe --port 8080 "C:\projeto\dist"
Duplo clique no Fenestra.exe sem arquivo abre a tela de configuração. O --diagnose mostra qual navegador o Windows está entregando.

Crie um atalho para um site

Atalho não é só um link para o .html: ele precisa iniciar o Fenestra com o arquivo como argumento.

Windows

  1. Botão direito na Área de Trabalho → Novo → Atalho.
  2. Em “Digite o local do item”, cole:
    %LOCALAPPDATA%\Fenestra\Fenestra.exe "%USERPROFILE%\Documents\Exemplo\dist\index.html"
  3. Clique em Avançar, dê o nome Exemplo e conclua.
  4. Opcional: Propriedades → Executar em = a pasta dist.
  5. Dê duplo clique para testar.

O Windows expande %LOCALAPPDATA% e %USERPROFILE%. Mantenha as aspas no caminho do .html.

Propriedades de Exemplo
GeralAtalhoDetalhes
Destino%LOCALAPPDATA%\Fenestra\Fenestra.exe "%USERPROFILE%\Documents\Exemplo\dist\index.html"
Executar emC:\...\dist
ExecutarJanela normal
OK

Linux

Crie ~/.local/share/applications/exemplo.desktop:

[Desktop Entry] Type=Application Name=Exemplo Exec=/home/voce/.local/bin/fenestra "/home/voce/Exemplo/dist/index.html"

Marque como confiável ou rode update-desktop-database. O Linux não expande $HOME em .desktop — use caminho absoluto ou um script wrapper.

exemplo.desktop — Text Editor
[Desktop Entry]
Type=Application
Name=Exemplo
Exec=/home/voce/.local/bin/fenestra "/home/voce/Exemplo/dist/index.html"

macOS

Salve Exemplo.command:

#!/bin/sh exec "$HOME/Applications/fenestra" \ "$HOME/Exemplo/dist/index.html"

Rode chmod +x Exemplo.command uma vez e dê duplo clique.

Exemplo.command
#!/bin/sh
exec "$HOME/Applications/fenestra" \
  "$HOME/Exemplo/dist/index.html"
$ chmod +x Exemplo.command

Onde ficam as coisas

Tudo em uma pasta só: %LOCALAPPDATA%\Fenestra.

Fenestra.exe manual.html settings.json (só quando você fixa um navegador)