K|Browser — Electron-based Kiosk Browser

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.

Open Source Open Source (MIT) Built with Electron Built with Electron
K|Browser layouts mock

Why K|Browser?

A focused toolkit for unattended displays, dashboards and info terminals.

Powerful Configuration

Drive behavior via command-line flags, JSON/YAML config files, or the built-in HTTP API.

Multi-View Layouts

Show multiple sites side-by-side in horizontal, vertical, or grid compositions.

Remote Control

Update URLs, reload, toggle views, and more—over HTTP from anywhere on your network.

Kiosk-Ready

Launch fullscreen, disable chrome, and lock down navigation with sensible defaults.

Fast & Lightweight

Minimal overhead, instant start. Built on Electron for cross-platform reliability.

Open Source

MIT licensed, actively maintained, and open to contributions.

Configuration & Remote Control

CLI flags, config files, and a simple HTTP API give you full control.

Command Line

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.

Config File (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" }
}
        

HTTP API

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
Expanded screenshot