a headless client for cabal, a distributed p2p group chat

Usage no npm install needed!

<script type="module">
  import cabalHeadless from '';



Headless makes it easy to write experiments ontop of cabal.


There are a couple of options you can provide when creating a new headless instance
var headless = new Headless(opts)

opts.temp = false

store all data in memory

opts.completeLog = false

stream all messages from beginning to end

var Headless = require("cabal-headless")

var headless = new Headless(cabalKey, { opts.temp: false }){
    type: "chat/text",
    channel: "default",
    message: "welcome to cabal"


headless.connect() // connect to the cabal's swarm
headless.disconnect() // disconnect from the swarm
headless.onPeerConnected(function (peer) {
    console.log("peer connected")

headless.onPeerDisonnected(function (peer) {
    console.log("peer disconnected")

headless.onMessageReceived(function (msg) {
    console.log("new message", msg)
}) (id) {
    console.log("my peer's id:", id)

var connectedPeers = headless.peers()