Панели браузера
Открывайте сайты рядом с терминалом, пользуйтесь системной навигацией и сохраняйте ссылки в пределах проекта.
Встроенный браузер Zshell можно открыть в любой вкладке или разделённой панели. Это удобно для локального сервера разработки, документации API, задачи или любой страницы, которую хочется видеть рядом с использующим её терминалом.
Открытие браузера
- Выберите Файл → Новая вкладка браузера, чтобы открыть пустую вкладку.
- Откройте палитру команд (Cmd+P) и выполните Новая вкладка браузера или Новая панель браузера.
- Щёлкните распознанный URL в терминале правой кнопкой с зажатой Command и выберите Новая вкладка браузера или Новая панель браузера, чтобы открыть адрес без копирования.
Вкладки браузера принадлежат выбранному проекту и входят в его обычную раскладку вкладок и панелей. Если открытых проектов нет, Zshell создаёт проект для браузера.
Адрес и поиск
Поле вверху принимает полный URL, имя хоста или поисковый запрос:
zshell.shпревращается в HTTPS-адрес.- Для
localhost, локальных имён хостов, IP-адресов и явно указанных портов используется HTTP. - Остальной ввод становится поисковым запросом Google.
Нажмите Cmd+L для перехода в поле или Cmd+R для перезагрузки. На панели инструментов также есть «Назад», «Вперёд», «Остановить/Перезагрузить», «Поделиться» и Открыть в стандартном браузере. Поддерживаются жесты трекпада для перехода назад и вперёд.
| Действие | Сочетание клавиш |
|---|---|
| Перейти в адресную строку | Cmd+L |
| Перезагрузить страницу | Cmd+R |
Открытие ссылок в нужном месте
Щёлкните ссылку на странице правой кнопкой и выберите Открыть ссылку в новой вкладке или Открыть ссылку в новой панели. Новая страница останется в рабочей среде того же проекта.
Обычный щелчок с Command по распознанному веб-адресу в терминале открывает стандартный браузер. Щелчок правой кнопкой с Command предлагает вкладку или панель Zshell. Аналогичные действия с локальными путями описаны в разделе Пути и URL.
Что сохраняется
При переключении вкладок и проектов сохраняются история страницы, прокрутка, формы и внутреннее состояние. После перезапуска Zshell восстанавливает текущий URL и раскладку, но не полную историю переходов назад и вперёд.
Панели браузера сохраняют cookie, входы в аккаунты и другие данные сайтов между вкладками и запусками. Это не режим частного просмотра.
Проверка страницы с помощью агента
Попросите агента проверить уже открытую в этом проекте страницу, заполнить форму, сверить результат или сделать снимок видимой области. Он использует существующий сеанс браузера и по умолчанию сохраняет фокус терминала. Локальный адрес разработки можно также открыть в фоновом браузерном разделе.
Для сценариев выполняйте команды внутри терминала Zshell. Сохраните полученный browser_id и замените BROWSER_ID ниже:
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.pngСнимки DOM содержат текст основного фрейма, доступные подписи и ссылки на элементы. Ссылки устаревают после изменений страницы или действий: перед повторным использованием получите новый снимок. CSS-селектор должен находить ровно один элемент. Для навигации служат navigate, back, forward, reload и stop.
Автоматизация принимает полные HTTP/HTTPS-адреса и about:blank. Другие протоколы, загрузки, выбор файлов и системные диалоги требуют вашего участия. Ограничение снимается после ручной навигации через адресную строку или панель инструментов. Команды действуют только в проекте и окне вызывающего терминала. --timeout — 100–30000 миллисекунд. Снимок DOM ограничен 200 элементами, 32768 символами и 256 KiB; значения паролей и файлов не включаются. PNG видимой области ограничен 512 KiB, работает и до первого показа с областью 1024 × 768 без смены фокуса и не перезаписывает файлы. Уменьшите --width при необходимости. Синтаксис: zshell +browser --help.
Скрипты страницы и сохранённый вход
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 выполняется в настоящем основном фрейме, ждёт возвращённый Promise и выдаёт JSON в value; undefined становится null. Для await используйте асинхронное функциональное выражение. Пределы: 64 KiB входа; 256 KiB, 10000 значений и 64 уровня результата. Ссылки DOM после выполнения устаревают. Тайм-аут прекращает ожидание, но не скрипт. Перед повторной записью проверьте страницу; синхронный бесконечный цикл может потребовать её закрытия. Отдельные выражения, включая IIFE, внедряются как нативные глобальные Script. Строки с несколькими инструкциями по-прежнему подчиняются CSP страницы; если вычисление строк запрещено, оберните инструкции в IIFE.
state save сохраняет применимые к целевому хосту Cookie (включая родительский домен и HttpOnly) и localStorage текущего источника в Playwright storage-state JSON. state load объединяет Cookie и заменяет этот localStorage; затем перезагрузите страницу. Схема, хост и порт должны точно совпадать. Посторонние домены, публичные суффиксы, неподдерживаемые поля и неверные типы отклоняются до изменений. Secure Cookie требуют HTTPS.
Укажите --format cookies в обеих командах для Netscape cookies.txt, без localStorage и SameSite. Файлы ограничены 256 KiB и содержат учётные данные: храните их приватно и вне Git. Импорт принимает только обычный файл, доступный лишь владельцу (например 0600), и отвергает символические ссылки. Экспорт создаёт новый приватный файл без перезаписи. Данные WebKit по-прежнему общие для панелей; ограничения проекта, окна и навигации сохраняются.
Реклама и трекеры
В Настройки → Браузер по умолчанию включена блокировка WebKit с EasyList и EasyPrivacy. Отключайте списки отдельно или добавляйте по одному HTTP/HTTPS URL списка ABP на строку, затем нажмите Применить списки. Максимум 8 списков по 8 МиБ. HTTP не шифруется.
Правила действуют на будущие запросы всех панелей браузера. После изменений перезагрузите страницы. Обновить списки сейчас запускает принудительное обновление. Списки кешируются; после перезапуска при открытии браузера проверяются списки старше четырёх дней. Настройки показывают число преобразованных/пропущенных фильтров, ошибки и использование кеша. При неудачной замене не используется молча другой отключённый список.
Поддерживаются шаблоны URL, якоря, обычные типы ресурсов, исключения @@, простые домены и CSS ##/#@#. Домены относятся к верхней странице, классификация сторон соответствует WebKit. Скриптлеты, процедурные фильтры, перенаправления, регулярные выражения, разрешение целой страницы и исключения поддоменов включённого домена пропускаются. Совместимость с uBlock Origin неполная.