• Stars
    star
    521
  • Rank 84,922 (Top 2 %)
  • Language
    JavaScript
  • License
    Other
  • Created over 6 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Terminal client for Cabal, the p2p chat platform.

cabal-cli

Terminal client for cabal, the p2p chat platform.

See cabal-core for the underlying database & api.

chat with us: npx cabal cabal://cabal.chat

Installation

$ npm install --global cabal
$ cabal --new

If that fails the newest node is not yet supported by the stack. Try this:

Install nvm, open a new shell and run

$ nvm install 12
$ npm install --global cabal
$ cabal --new

Usage

Start a new instance:

cabal --new

then copy the key and give it to someone else.

Connect to an existing instance:

cabal <key>

e.g.

cabal cabal://0201400f1aa2e3076a3f17f4521b2cc41e258c446cdaa44742afe6e1b9fd5f82

Remember cabals for auto-joining

save a cabal to the config

cabal --save <key>

then connect to all of your saved cabals, by simply running cabal:

cabal

show saved cabals with --cabals and remove a saved cabal with --forget

cabal --cabals
cabal --forget <key|alias>

Save an alias to a key

create a local name for a key.

cabal --alias <name> --key <key>
cabal <name>

Scan a QR code to join a cabal:

Cabal can use a webcam connected to your computer to read a cabal key from a QR code. For this to work, you'll need to install an additional system dependency:

  • Linux: sudo apt-get install fswebcam
  • MacOS: brew install imagesnap
# Hold up your QR code in front of the webcam and then run:
cabal --qr

Headless mode

This will run cabal without a UI. You can use this to seed a cabal (e.g. on a VPS) and make its data more available:

cabal <key> --seed

Custom port

If you have a tightly configured firewall and need to port-forward a port, the default port Cabal uses is port 13331. You can change this with the --port flag, or setting preferredPort in your .cabal.yml config file.

cabal <key> --seed --port 7331

Commands

/add, /cabal
  add a cabal
/new
  create a new cabal
/nick, /n
  change your display name
/emote, /me
  write an old-school text emote
/names
  display the names of the currently online peers
/channels
  display the cabal's channels
/panes
  set pane to navigate up and down in panes: channels, cabals
/join, /j
  join a new channel
/leave, /l
  leave a channel
/clear
  clear the current backscroll
/help
  display this help message
/qr
  generate a qr code with the current cabal's address
/quit, /exit
  exit the cabal process
/topic, /motd
  set the topic/description/message of the day for a channel
/whoami, /key
  display your local user key
/whois
  display the public keys associated with the passed in nick

alt-n
  move between channels/cabals panes
ctrl-{n,p}
  move up/down channels/cabals

Hotkeys

ctrl-l
    redraw the screen
ctrl-u
    clear input line
ctrl-w
    delete last word in input
up-arrow
    cycle through command history
down-arrow
    cycle through command history
home
    go to start of input line
end
    go to end of input line
ctrl-n
    go to next channel
ctrl-p
    go to previous channel
ctrl-a
    go to next unread channel
pageup
    scroll up through backlog
pagedown
    scroll down through backlog
shift-pageup
    scroll up through nicklist
shift-pagedown
    scroll down through nicklist
alt-[1,9]
    select channels 1-9
alt-n
    tab between the cabals & channels panes
alt-l
    tab toggle id suffixes on/off

Configuration

The message styling can be slightly tweaked.
Regarding the supported options, see .cabal.yml-example

More Repositories

1

cabal-desktop

Desktop client for Cabal, the p2p/decentralized/local-first chat platform.
JavaScript
839
star
2

cabal-core

Core database and replication for cabal.
JavaScript
303
star
3

cabal-mobile

p2p chat in your phone [dev help wanted :)]
JavaScript
146
star
4

cabal-client

interface for writing peer-to-peer chat clients
JavaScript
93
star
5

cable

A lightweight peer-to-peer chat protocol.
60
star
6

message-land

chat on the web and with p2p friends via cabal!
JavaScript
29
star
7

cable.rs

rust implementation of the cable protocol
Rust
28
star
8

cabal-desktop-mini

[deprecated - please try `Cabal Desktop`] a minimalist desktop app for Cabal, the p2p/decentralized/local-first chat platform
JavaScript
25
star
9

cabin

a rustic command-line cabal client using the cable protocol
Rust
19
star
10

cabals

a list of public cabals
17
star
11

cabal-irc

Connect to Cabal using an IRC client.
JavaScript
16
star
12

commons

high level thoughts and issues for the future of cabal
14
star
13

cabal-headless

a simple headless client to make experimenting easier
JavaScript
13
star
14

cabal-bot

Create your own cabal bot
JavaScript
13
star
15

cable.js

library for reading & writing the cable wire format
JavaScript
11
star
16

cabal-club.github.io

cabal website
HTML
9
star
17

matrix-appservice-cabal

A (very) simple cabal-matrix bridge bot
JavaScript
9
star
18

cable-core.js

cable-core is a library powering cable peers in nodejs
JavaScript
8
star
19

cable-client.js

p2p chat client library for the cable wire protocol
JavaScript
8
star
20

cabal-web

a very much work in progress
8
star
21

cabal-ui

a library of React components for Cabal clients
JavaScript
8
star
22

cabal-irc-bridge

a simple message bridge between an irc channel and a cabal
JavaScript
7
star
23

cabal-client-files

Plugin for cabal clients for message file attachments shared via dat
JavaScript
6
star
24

cabal-tools

making debugging cabalsoft more fun
JavaScript
4
star
25

cabal-bot-example

simple example bot for cabal
JavaScript
4
star
26

cable-handshake.ts

TypeScript implementation of the Cable Handshake Protocol.
TypeScript
3
star
27

cabal-URI

spec for cabal URIs (aka cabal keys, or cabal://)
3
star
28

grants

grant applications for cabal
2
star
29

cable-docs

companion docs for understanding the peer-to-peer cable chat protocol
1
star