Paneles de navegador
Abre sitios web junto a un terminal, navega con controles nativos y conserva los enlaces dentro del proyecto.
Zshell permite integrar un navegador en cualquier pestaña o panel dividido. Resulta útil para un servidor de desarrollo local, documentación de API, una incidencia o cualquier contenido que quieras tener junto al terminal que lo utiliza.
Abrir un navegador
- Elige Archivo → Nueva pestaña de navegador para abrir una pestaña vacía.
- Abre la paleta de comandos (Cmd+P) y ejecuta Nueva pestaña de navegador o Nuevo panel de navegador.
- Haz clic derecho con Command pulsado sobre una URL detectada en un terminal y elige Nueva pestaña de navegador o Nuevo panel de navegador para abrirla sin copiar la dirección.
Las pestañas de navegador pertenecen al proyecto seleccionado y forman parte de su disposición normal de pestañas y paneles. Si no hay un proyecto abierto, Zshell crea uno para alojar el navegador.
Dirección y búsqueda
El campo superior acepta una URL completa, un nombre de host o términos de búsqueda:
zshell.shse convierte en una dirección HTTPS.localhost, los nombres de host locales, las direcciones IP y los puertos explícitos usan HTTP.- El resto se convierte en una búsqueda en Google.
Usa Cmd+L para enfocar el campo y Cmd+R para recargar. La barra de herramientas también incluye Atrás, Adelante, Detener/Recargar, Compartir y Abrir en el navegador predeterminado. También funcionan los gestos de avanzar y retroceder del trackpad.
| Acción | Atajo |
|---|---|
| Enfocar barra de direcciones | Cmd+L |
| Recargar página | Cmd+R |
Abrir enlaces donde quieras
Haz clic derecho en un enlace de una página para elegir Abrir enlace en una pestaña nueva o Abrir enlace en un panel nuevo. La página nueva permanece en el espacio de trabajo del mismo proyecto.
En un terminal, un clic normal con Command abre una URL web detectada en el navegador predeterminado. El clic derecho con Command ofrece una pestaña o panel de Zshell. Las rutas locales tienen un flujo equivalente, descrito en Rutas y URL.
Qué se conserva
Al cambiar de pestaña o proyecto, la página permanece como la dejaste, incluido el historial, la posición de desplazamiento, los formularios y el estado interno de la página. Cuando Zshell vuelve a iniciarse, restaura la URL actual y la disposición, pero no todo el historial de navegación.
Los paneles de navegador conservan las cookies, las sesiones iniciadas y otros datos de los sitios entre pestañas y reinicios. No es un modo de navegación privada.
Pedir a un agente que pruebe la página
Pide al agente de programación que revise la página ya abierta en este proyecto, rellene un formulario, compruebe un resultado o capture el área visible. Reutiliza la sesión del navegador y mantiene el foco en el terminal de forma predeterminada. También puede abrir una URL de desarrollo en un panel en segundo plano.
Para scripts, ejecuta estos comandos dentro de un terminal Zshell. Guarda el browser_id devuelto y sustituye BROWSER_ID abajo:
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.pngLas instantáneas devuelven texto del marco principal, etiquetas accesibles y referencias de elementos. Las referencias caducan tras cambios o acciones; obtén otra instantánea antes de reutilizarlas. Cada selector CSS debe coincidir con un solo elemento. Usa navigate, back, forward, reload y stop para navegar.
La automatización admite URL HTTP/HTTPS completas y about:blank. Otros protocolos, descargas, selectores de archivos y diálogos nativos requieren tu intervención. La restricción termina al navegar manualmente con la barra de direcciones o herramientas. Los comandos se limitan al proyecto y ventana del terminal que los invoca. --timeout admite 100–30000 milisegundos. Las instantáneas tienen un máximo de 200 elementos, 32768 caracteres y 256 KiB, sin valores de contraseña ni de archivo. Las capturas PNG del área visible tienen un máximo de 512 KiB, funcionan también antes de mostrar el panel, con una vista de 1024 × 768 y sin cambiar el foco y no sobrescriben archivos. Reduce --width si hace falta. Consulta zshell +browser --help.
Scripts de página y sesiones guardadas
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 se ejecuta en la página principal real, espera una Promise devuelta y entrega JSON en value; undefined se convierte en null. Usa una expresión de función asíncrona para await. Límites: 64 KiB de entrada; 256 KiB, 10000 valores y 64 niveles de salida. Las referencias DOM caducan después. Un tiempo agotado deja de esperar, pero no cancela el script. Inspecciona la página antes de repetir cambios; un bucle síncrono infinito puede obligarte a cerrarla. Las expresiones únicas, incluidas las IIFE, se inyectan como Scripts globales nativos. Las cadenas con varias instrucciones siguen sujetas a la CSP de la página; si se bloquea su evaluación, agrupa las instrucciones en una IIFE.
state save guarda cookies aplicables al host de destino (incluidos dominio padre y HttpOnly) y localStorage del origen actual en JSON storage-state de Playwright. state load combina las cookies y reemplaza ese localStorage; recarga después. El esquema, host y puerto deben coincidir exactamente. Los dominios ajenos, sufijos públicos, campos no admitidos y tipos inválidos se rechazan antes de modificar nada. Las cookies Secure requieren HTTPS.
Usa --format cookies en ambos comandos para Netscape cookies.txt, sin localStorage ni SameSite. Los archivos están limitados a 256 KiB y contienen credenciales: mantenlos privados y fuera de Git. La importación exige un archivo normal accesible solo por su propietario (por ejemplo 0600) y rechaza enlaces simbólicos. La exportación crea un archivo privado sin sobrescribir rutas existentes. Los datos WebKit siguen compartidos entre paneles y se mantienen los límites de proyecto, ventana y navegación.
Anuncios y rastreadores
Ajustes → Navegador activa por defecto el bloqueo WebKit con EasyList y EasyPrivacy. Desactiva cada lista por separado o añade una URL de lista ABP HTTP/HTTPS por línea y pulsa Aplicar listas. Máximo: 8 listas de 8 MiB cada una. HTTP no está cifrado.
Las reglas afectan a futuras solicitudes de todos los paneles. Recarga las páginas después de cambiar reglas. Actualizar listas ahora fuerza la actualización. Las listas se guardan en caché; al abrir el navegador tras reiniciar se revisan las de más de cuatro días. Los ajustes muestran filtros convertidos/omitidos, errores y uso de caché. Un cambio fallido no reutiliza silenciosamente otra lista desmarcada.
Admite comodines y anclas URL, tipos comunes, excepciones @@, dominios simples y CSS ##/#@#. Los dominios usan la página principal y la clasificación de terceros sigue WebKit. Se omiten scriptlets, filtros procedimentales, redirecciones, expresiones regulares, permisos de página completa y exclusiones de subdominios de un dominio incluido. La compatibilidad con uBlock Origin es parcial.