Open-source, production-ready kiosk browser you can script, configure and remotely control. Split and grid layouts let you compose multiple sites on a single screen.
A focused toolkit for unattended displays, dashboards and info terminals.
Drive behavior via command-line flags, JSON/YAML config files, or the built-in HTTP API.
Show multiple sites side-by-side in horizontal, vertical, or grid compositions.
Update URLs, reload, toggle views, and more—over HTTP from anywhere on your network.
Launch fullscreen, disable chrome, and lock down navigation with sensible defaults.
Minimal overhead, instant start. Built on Electron for cross-platform reliability.
MIT licensed, actively maintained, and open to contributions.
Examples of single, split, and grid layouts.
CLI flags, config files, and a simple HTTP API give you full control.
kioskb \
--kiosk \
--urls="https://news.ycombinator.com,https://dash.example.com" \
--layout="split:h" \
--refresh=300 \
--allow-remote=0.0.0.0:8080
Pro tip: pass a config file with --config=./kioskb.json.
{
"kiosk": true,
"layout": "grid:2x2",
"urls": [
"https://www.weather.gov",
"https://status.example.com",
"https://grafana.example.com",
"https://calendar.google.com"
],
"refreshSeconds": 300,
"http": { "bind": "0.0.0.0:8080" }
}
Change layout:
PUT /api/layout
{ "mode": "split:h" }
Set URLs:
PUT /api/urls
{ "urls": ["https://example.com","https://news.ycombinator.com"] }
Reload all views:
POST /api/reload
Get status:
GET /api/status