Painéis de navegador
Abra sites ao lado de um terminal, navegue com controles nativos e mantenha os links no projeto.
O Zshell pode colocar um navegador integrado em qualquer aba ou painel dividido. Ele é útil para um servidor de desenvolvimento local, documentação de API, uma issue ou qualquer conteúdo que você queira ao lado do terminal que o utiliza.
Abrir um navegador
- Escolha Arquivo → Nova Aba de Navegador para uma aba em branco.
- Abra a paleta de comandos (Cmd+P) e execute Nova Aba de Navegador ou Novo Painel de Navegador.
- Clique com o botão direito e Command em uma URL detectada no terminal e escolha Nova Aba de Navegador ou Novo Painel de Navegador para abri-la sem copiar o endereço.
As abas de navegador pertencem ao projeto selecionado e participam do layout normal de abas e painéis. Se não houver um projeto aberto, o Zshell cria um para o navegador.
Endereço e busca
O campo superior aceita uma URL completa, um nome de host ou termos de busca:
zshell.shvira um endereço HTTPS.localhost, nomes de host locais, endereços IP e portas explícitas usam HTTP.- Todo o restante vira uma busca no Google.
Use Cmd+L para focar o campo e Cmd+R para recarregar. A barra de ferramentas também oferece Voltar, Avançar, Parar/Recarregar, Compartilhar e Abrir no Navegador Padrão. Gestos de voltar e avançar no trackpad também funcionam.
| Ação | Atalho |
|---|---|
| Focar a barra de endereços | Cmd+L |
| Recarregar a página | Cmd+R |
Abrir links onde você quiser
Clique com o botão direito em um link da página para Abrir Link em Nova Aba ou Abrir Link em Novo Painel. A nova página permanece no mesmo projeto.
No terminal, Command-clique abre uma URL detectada no navegador padrão. Command-clique com o botão direito oferece uma aba ou painel do Zshell. Caminhos locais seguem um fluxo semelhante, descrito em Caminhos e URLs.
O que é preservado
Alternar abas ou projetos mantém a página como estava, incluindo histórico, posição de rolagem, formulários e estado interno. Ao reiniciar, o Zshell restaura a URL atual e o layout, mas não todo o histórico de voltar e avançar.
Os painéis de navegador mantêm cookies, sessões de login e outros dados de sites entre abas e inicializações. Este não é um modo de navegação privada.
Pedir a um agente para testar a página
Peça ao agente de programação para verificar a página já aberta neste projeto, preencher um formulário, conferir um resultado ou capturar a área visível. Ele reutiliza a sessão do navegador e mantém o foco no terminal por padrão. Também pode abrir uma URL de desenvolvimento em um painel em segundo plano.
Em scripts, execute estes comandos dentro de um terminal Zshell. Anote o browser_id retornado e substitua BROWSER_ID abaixo:
zshell +browser list
zshell +browser open http://localhost:3000 --wait
zshell +browser snapshot --browser BROWSER_ID
zshell +browser fill --browser BROWSER_ID --selector '#search' --text 'terminal'
zshell +browser click --browser BROWSER_ID --selector 'button[type="submit"]'
zshell +browser wait --browser BROWSER_ID --selector '#results' --timeout 10000
zshell +browser screenshot --browser BROWSER_ID --output /tmp/zshell-page.pngOs snapshots retornam texto do quadro principal, rótulos acessíveis e referências de elementos. As referências expiram após alterações ou ações; gere outro snapshot antes de reutilizá-las. O seletor CSS deve corresponder a um único elemento. Use navigate, back, forward, reload e stop para navegar.
A automação aceita URLs HTTP/HTTPS completas e about:blank. Outros protocolos, downloads, seletores de arquivos e diálogos nativos exigem sua interação. A restrição termina após navegar manualmente pela barra de endereços ou ferramentas. Os comandos ficam no projeto e na janela do terminal que os chamou. --timeout aceita 100–30000 milissegundos. Os snapshots têm limites de 200 elementos, 32768 caracteres e 256 KiB, sem valores de senha ou arquivo. Capturas PNG da área visível têm limite de 512 KiB, funcionam antes de exibir o painel, com uma área de 1024 × 768 sem mudar o foco e não sobrescrevem arquivos. Reduza --width se necessário. Consulte zshell +browser --help.
Scripts da página e sessões salvas
zshell +browser eval --browser BROWSER_ID --script 'Promise.resolve({title: document.title})'
zshell +browser state save --browser BROWSER_ID --output /tmp/zshell-login.json
zshell +browser state load --browser BROWSER_ID --input /tmp/zshell-login.json
zshell +browser reload --browser BROWSER_ID --waiteval --script executa na página principal real, aguarda uma Promise retornada e fornece JSON em value; undefined vira null. Use uma expressão de função assíncrona para await. Limites: entrada de 64 KiB; saída de 256 KiB, 10000 valores e 64 níveis. Referências DOM expiram após a execução. O tempo limite apenas para de esperar, sem cancelar o script. Inspecione a página antes de repetir alterações; um loop síncrono infinito pode exigir fechá-la. Expressões únicas, incluindo IIFEs, são injetadas como Scripts globais nativos. Strings com várias instruções continuam sujeitas à CSP da página; se a avaliação for bloqueada, envolva as instruções em uma IIFE.
state save salva cookies aplicáveis ao host de destino (incluindo domínio pai e HttpOnly) e localStorage da origem atual em JSON storage-state do Playwright. state load mescla os cookies e substitui esse localStorage; recarregue depois. Esquema, host e porta devem coincidir exatamente. Domínios alheios, sufixos públicos, campos não suportados e tipos inválidos são rejeitados antes de qualquer mudança. Cookies Secure exigem HTTPS.
Use --format cookies nos dois comandos para Netscape cookies.txt, sem localStorage e SameSite. Os arquivos têm limite de 256 KiB e contêm credenciais: mantenha-os privados e fora do Git. A importação exige arquivo comum acessível somente pelo proprietário (por exemplo 0600) e rejeita links simbólicos. A exportação cria arquivo privado sem sobrescrever caminhos existentes. Os dados WebKit continuam compartilhados entre painéis, com os mesmos limites de projeto, janela e navegação.
Anúncios e rastreadores
Ajustes → Navegador ativa por padrão o bloqueio WebKit com EasyList e EasyPrivacy. Desative cada lista separadamente ou adicione uma URL ABP HTTP/HTTPS por linha e clique em Aplicar listas. Até 8 listas de 8 MiB cada. HTTP não é criptografado.
As regras afetam solicitações futuras de todos os painéis. Recarregue as páginas após alterações. Atualizar listas agora força a atualização. As listas ficam em cache; ao abrir o navegador após reiniciar, as com mais de quatro dias são verificadas. Os ajustes mostram filtros convertidos/ignorados, falhas e uso do cache. Uma troca malsucedida não reutiliza silenciosamente outra lista desmarcada.
Suporta curingas e âncoras URL, tipos comuns, exceções @@, domínios simples e CSS ##/#@#. Os domínios usam a página principal e a classificação de terceiros segue o WebKit. Scriptlets, filtros procedurais, redirecionamentos, expressões regulares, liberação de página inteira e exclusões de subdomínios de domínio incluído são ignorados. Compatibilidade parcial com uBlock Origin.