Skip to content

cabal-club/cabal-cli

Repository files navigation

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

About

Terminal client for Cabal, the p2p chat platform.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors