Need help with topcube?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

405 Stars 35 Forks MIT License 58 Commits 16 Opened issues


Webkit Bindings for node

Services available


Need anything else?

Contributors list

# 1,999
2 commits
# 109,186
1 commit


Gives node developers a way to have a desktop GUI to their node servers using HTML5 + CSS3 as the GUI platform.


  • Client/server architecture with communication over HTTP.
    If you're interested in merged event loops, common javascript contexts, or other non-HTTP communication and resource sharing between the node process and the GUI take a look at node-webkit.
  • Single, HTML5 + CSS3 driven window.
    The client window does not spawn popups, support tabs, create additional windows or add any native UI components other than what a typical browser pane would provide.
  • Child process.
    The client window runs as a child process of the calling node process.

Implementation Details



. Install the following packages on Debian/Ubuntu or the equivalents for your system to build topcube:
sudo apt-get install libgtk2.0-dev libwebkitgtk-dev


The windows client currently downloads a custom compiled binary client that uses the Chromium Embedded Framework. If you're interested in building the client yourself or making modifications see mapbox/cefclient.

Mac OS X

TODO. Work on a native webkit client for Mac OS X that can be built within topcube is certainly welcome.


Pass a single

object to topcube with the following properties:
  • url
    of your running node application to point topcube at.
  • name
    of the window displayed in the titlebar. Also sets any window manager classes associated with the topcube window. On linux a
    file using the same name can be used set the icon for your application.
  • width
    in pixels of the window. Optional.
  • height
    in pixels of the windows. Optional.
  • minwidth
    in pixels. Restricts resizing the window width smaller than this value. Optional.
  • minheight
    in pixels. Restricts resizing the window height smaller than this value. Optional.
  • ico
    full path to a Windows
    file to use for your application. Optional, no-op on non-windows platforms.

Example usage of topcube to wrap a default "Hello world" server.

var Http = require('http');
var TopCube = require('topcube');

Http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(7569);

TopCube({ url: 'http://localhost:7569', name: 'My webapp', width: 800, height: 600 });

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.