diff --git a/app/index.html b/app/index.html
deleted file mode 100644
index 277b271..0000000
--- a/app/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-  
-    Scuttlebutt
-    
-    
-    
-    
-  
-  
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-  
-
diff --git a/app/index.js b/app/index.js
index ef53167..5911830 100644
--- a/app/index.js
+++ b/app/index.js
@@ -5,6 +5,7 @@ var BrowserWindow = require('browser-window')
 var path = require('path')
 
 var config = require('ssb-config') 
+var setupRpc = require('./lib/muxrpc-ipc')
 
 // Report crashes to our server.
 //require('crash-reporter').start();
@@ -24,9 +25,10 @@ app.on('ready', function ready () {
 
     // open the web app
     mainWindow = new BrowserWindow({width: 1000, height: 720})
-    mainWindow.loadUrl('file://' + __dirname + '/index.html')
+    mainWindow.loadUrl('file://' + path.join(__dirname, '../node_modules/ssbplug-phoenix/home.html'))
     mainWindow.webContents.on('new-window', onNewWindow)
     mainWindow.on('closed', function() { mainWindow = null })
+    setupRpc(sbot, mainWindow)
 
     function onNewWindow (e, url) {
       e.preventDefault() // hell naw
diff --git a/app/lib/muxrpc-ipc.js b/app/lib/muxrpc-ipc.js
new file mode 100644
index 0000000..4d24f48
--- /dev/null
+++ b/app/lib/muxrpc-ipc.js
@@ -0,0 +1,34 @@
+var ipc        = require('ipc')
+var muxrpc     = require('muxrpc')
+var pull       = require('pull-stream')
+var Serializer = require('pull-serializer')
+var pushable   = require('pull-pushable')
+var Api        = require('scuttlebot/lib/api')
+
+module.exports = function (sbot, window) {
+  // construct api
+  var api = Api(sbot)
+  for (var k in sbot.manifest) {
+    if (typeof sbot.manifest[k] == 'object')
+      api[k] = sbot[k] // copy over the plugin APIs
+  }
+
+  // create rpc object
+  var rpc = muxrpc(null, sbot.manifest, serialize)(api)
+  rpc.authorized = { id: sbot.feed.id, role: 'master' }
+  rpc.permissions({allow: null, deny: null})
+  function serialize (stream) {
+    return Serializer(stream, JSON, {split: '\n\n'})
+  }
+
+  // setup rpc stream over ipc
+  var rpcStream = rpc.createStream()
+  var ipcPush = pushable()
+  ipc.on('muxrpc-ssb', function (e, msg) {
+    if (e.sender == window.webContents)
+      ipcPush.push(msg)
+  })
+  pull(ipcPush, rpcStream, pull.drain(function (msg) {
+    window.webContents.send('muxrpc-ssb', msg)
+  }))
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 24f35ae..de8d01e 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,9 @@
   "dependencies": {
     "multiblob": "^1.4.3",
     "multicb": "^1.1.0",
+    "muxrpc": "^5.0.1",
+    "pull-pushable": "^1.1.4",
+    "pull-serializer": "^0.3.2",
     "pull-stream": "^2.27.0",
     "scuttlebot": "^4.2.3",
     "ssb-config": "^1.0.3",