zshell

Panel browser

Buka situs di samping terminal, gunakan navigasi native, dan simpan tautan dalam proyek.

Zshell dapat menempatkan browser bawaan dalam tab atau panel terbagi mana pun. Cocok untuk server pengembangan lokal, dokumentasi API, issue, atau halaman lain yang ingin Anda letakkan di samping terminal yang menggunakannya.

Membuka browser

  • Pilih Berkas → Tab Browser Baru (File → New Browser Tab) untuk tab kosong.
  • Buka palet perintah (Cmd+P) dan jalankan Tab Browser Baru atau Panel Browser Baru (New Browser Pane).
  • Tahan Command sambil mengeklik kanan URL yang terdeteksi di terminal, lalu pilih Tab Browser Baru atau Panel Browser Baru agar tidak perlu menyalin alamat.

Tab browser milik proyek yang dipilih dan mengikuti tata letak tab serta panel normalnya. Jika belum ada proyek terbuka, Zshell membuat proyek untuk menampung browser.

Kolom di atas menerima URL lengkap, nama host, atau kata pencarian:

  • zshell.sh menjadi alamat HTTPS.
  • localhost, nama host lokal, alamat IP, dan port eksplisit menggunakan HTTP.
  • Selain itu menjadi pencarian Google.

Gunakan Cmd+L untuk memfokuskan kolom dan Cmd+R untuk memuat ulang. Toolbar juga menyediakan Kembali, Maju, Hentikan/Muat Ulang, Bagikan, dan Buka di Browser Bawaan (Open in Default Browser). Gestur mundur dan maju pada trackpad juga berfungsi.

TindakanPintasan
Fokus bilah alamatCmd+L
Muat ulang halamanCmd+R

Klik kanan tautan dalam halaman untuk Buka Tautan di Tab Baru (Open Link in New Tab) atau Buka Tautan di Panel Baru (Open Link in New Pane). Halaman baru tetap dalam ruang kerja proyek yang sama.

Di terminal, Command-klik biasa membuka URL web terdeteksi di browser bawaan. Command-klik kanan menawarkan tab atau panel Zshell. Alur serupa untuk jalur lokal dijelaskan di Jalur dan URL.

Yang dipertahankan

Berpindah tab atau proyek mempertahankan halaman, termasuk riwayat, posisi gulir, formulir, dan keadaan dalam halaman. Saat Zshell dimulai ulang, URL aktif dan tata letak dipulihkan, tetapi bukan seluruh riwayat mundur/maju.

Panel browser menyimpan cookie, login, dan data situs lainnya lintas tab dan peluncuran. Ini bukan mode penjelajahan privat.

Meminta agen menguji halaman

Minta agen pemrograman memeriksa halaman yang sudah terbuka dalam proyek ini, mengisi formulir, memeriksa hasil, atau menangkap area yang terlihat. Agen memakai sesi browser yang ada dan mempertahankan fokus terminal secara default. URL pengembangan lokal juga dapat dibuka di panel browser latar belakang.

Untuk skrip, jalankan perintah berikut di terminal Zshell. Catat browser_id yang dikembalikan lalu ganti BROWSER_ID di bawah:

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

Snapshot memberikan teks bingkai utama, label aksesibilitas, dan referensi elemen. Referensi kedaluwarsa setelah perubahan halaman atau tindakan; ambil snapshot baru sebelum memakainya lagi. Pemilih CSS harus cocok dengan tepat satu elemen. Gunakan navigate, back, forward, reload, dan stop untuk navigasi.

Otomatisasi menerima URL HTTP/HTTPS lengkap dan about:blank. Protokol lain, unduhan, pemilih berkas, dan dialog native memerlukan interaksi Anda. Pembatasan berakhir setelah navigasi manual melalui bilah alamat atau toolbar. Perintah tetap berada dalam proyek dan jendela terminal pemanggil. --timeout adalah 100–30000 milidetik. Snapshot dibatasi 200 elemen, 32768 karakter, dan 256 KiB, tanpa nilai kata sandi atau berkas. PNG area terlihat dibatasi 512 KiB, bekerja sebelum panel ditampilkan dengan viewport 1024 × 768 tanpa mengubah fokus, dan tidak menimpa berkas. Kurangi --width jika perlu. Lihat zshell +browser --help.

Skrip halaman dan status login

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 --wait

eval --script berjalan pada halaman utama yang sebenarnya, menunggu Promise yang dikembalikan, dan menghasilkan JSON dalam value; undefined menjadi null. Gunakan ekspresi fungsi asinkron untuk await. Batas: masukan 64 KiB; keluaran 256 KiB, 10000 nilai, dan 64 tingkat. Referensi DOM kedaluwarsa setelah eksekusi. Timeout hanya menghentikan penantian, bukan skrip. Periksa halaman sebelum mengulangi perubahan; loop sinkron tanpa akhir mungkin mengharuskan halaman ditutup. Ekspresi tunggal, termasuk IIFE, disisipkan sebagai Script global native. String dengan beberapa pernyataan tetap mengikuti CSP halaman; jika evaluasi string diblokir, bungkus pernyataan dalam IIFE.

state save menyimpan Cookie yang berlaku untuk host tujuan (termasuk domain induk dan HttpOnly) serta localStorage origin saat ini sebagai Playwright storage-state JSON. state load menggabungkan Cookie dan mengganti localStorage origin itu; muat ulang setelahnya. Skema, host, dan port harus sama persis. Domain lain, sufiks publik, kolom tak didukung, dan tipe tidak valid ditolak sebelum perubahan. Cookie Secure memerlukan HTTPS.

Gunakan --format cookies pada kedua perintah untuk Netscape cookies.txt, tanpa localStorage dan SameSite. Berkas dibatasi 256 KiB dan berisi kredensial: simpan secara privat dan di luar Git. Impor memerlukan berkas biasa yang hanya dapat diakses pemilik (misalnya 0600), dan menolak symlink. Ekspor membuat berkas privat baru tanpa menimpa jalur yang ada. Data WebKit tetap dibagikan antar panel; batas proyek, jendela, dan navigasi tetap berlaku.

Iklan dan pelacak

Pengaturan → Browser mengaktifkan pemblokiran WebKit dengan EasyList dan EasyPrivacy secara default. Nonaktifkan daftar secara terpisah atau tambahkan satu URL daftar ABP HTTP/HTTPS per baris, lalu pilih Terapkan daftar. Maksimal 8 daftar, masing-masing 8 MiB. HTTP tidak terenkripsi.

Aturan berlaku untuk permintaan berikutnya di semua panel. Muat ulang halaman setelah perubahan. Perbarui daftar sekarang memaksa pembaruan. Daftar disimpan dalam cache; setelah restart, membuka browser memeriksa daftar berusia lebih dari empat hari. Pengaturan menampilkan jumlah filter dikonversi/dilewati, kegagalan, dan penggunaan cache. Penggantian yang gagal tidak diam-diam memakai daftar lain yang tidak dipilih.

Mendukung wildcard URL, jangkar, tipe sumber umum, pengecualian @@, domain sederhana, dan CSS ##/#@#. Domain mengacu ke halaman utama; klasifikasi pihak mengikuti WebKit. Scriptlet, filter prosedural, pengalihan, regex, izin seluruh halaman, dan pengecualian subdomain dari domain yang disertakan dilewati. Kompatibilitas uBlock Origin tidak penuh.