Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Wallboard is a web browser for OS X designed to be used primarily with information radiators. It has no UI; instead, upon startup, it fills every attached screen with a full-screen WebKit browser. Configuration is via command-line modification of the OS X user defaults store.


Before launch, configure URLs to load like so:

    $ defaults write url.0
    $ defaults write url.1

URL keys are in the format url.<number>, where <number> is a zero-based index of attached screens. At the moment you may either quit the application or use the HTTP API to change the current page. Keyboard and mouse input should work, but have not been extensively tested.

Wallboard can be added to Login Items for a user with minimal permissions. Upon launch, Wallboard will load the URLs configured in the user defaults store.

Wallboard can be quit like a normal application — use ⌘Q.


Wallboard can also be configured via a HTTP API. Responses are JSON-encoded, and any POST bodies must be JSON-encoded as well. URL-encoded POST bodies are not allowed. At the moment, no mechanism for authentication is provided. Wallboard listens on port 9244 by default, but this can be changed:

    $ defaults write httpport -int 9245

Wallboard advertises itself via Bonjour. The service name used is _wallboard._tcp..

The API may be disabled altogether if desired:

    $ defaults write disablehttp -bool YES

GET /screens — Get all screens

    $ curl http://wallboard.local:9244/screens
            "saved_url" : "http:\/\/",
            "current_url" : "http:\/\/",
            "height" : 1080,
            "width" : 1920,
            "api_endpoint" : "\/screens\/0"
            "saved_url" : "http:\/\/",
            "current_url" : "http:\/\/",
            "height" : 1080,
            "width" : 1920,
            "api_endpoint" : "\/screens\/1"

GET /screens/:screen_id — Get one screen

    $ curl http://wallboard.local:9244/screens/0
        "saved_url" : "http:\/\/",
        "current_url" : "http:\/\/",
        "height" : 1080,
        "width" : 1920,
        "api_endpoint" : "\/screens\/0"

Attempts to access screens which do not exist will return a 404.

POST /screens/:screen_id — Set URL

    $ curl -H 'Content-type: application/json' --data-ascii '{"url":""}'
        "saved_url" : null,
        "current_url" : "http:\/\/\/",
        "height" : 1080,
        "width" : 1920,
        "api_endpoint" : "\/screens\/0"

In addition, if the POSTed object includes "save": true, the user defaults object will be updated, and Wallboard will navigate to that URL when it is opened next.


If you're hacking on Wallboard (please do!), you can disable full-screen mode by setting the following preference:

    $ defaults write devmode -bool YES

Security concerns

Wallboard is designed for use on trusted networks. You can only navigate to http or https URLs via the API, but it may be possible to inject javascript into the browser instances.


Email me if you have any questions: Or talk to me on I'm @berg.


A multi-monitor-aware, full-screen WebKit browser designed specifically for use with information radiators.




No packages published