cabal-cli

    14.0.0 • Public • Published

    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

    Install

    npm i cabal-cli

    DownloadsWeekly Downloads

    7

    Version

    14.0.0

    License

    AGPL-3.0-or-later

    Unpacked Size

    70.5 kB

    Total Files

    13

    Last publish

    Collaborators

    • ralphtheninja
    • cblgh
    • nickwarner
    • noffle
    • substack
    • karissa