Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cabal-club/cabal-cli
Terminal client for Cabal, the p2p chat platform.
https://github.com/cabal-club/cabal-cli
command-line decentralized instant-messaging p2p terminal
Last synced: 6 days ago
JSON representation
Terminal client for Cabal, the p2p chat platform.
- Host: GitHub
- URL: https://github.com/cabal-club/cabal-cli
- Owner: cabal-club
- License: other
- Created: 2018-05-19T15:46:12.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-22T21:55:07.000Z (3 months ago)
- Last Synced: 2024-10-29T18:47:56.165Z (about 1 month ago)
- Topics: command-line, decentralized, instant-messaging, p2p, terminal
- Language: JavaScript
- Homepage: https://cabal.chat
- Size: 1.37 MB
- Stars: 522
- Watchers: 34
- Forks: 43
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - cabal-club/cabal-cli - Terminal client for Cabal, the p2p chat platform. (terminal)
README
# cabal-cli
> Terminal client for cabal, the p2p chat platform.
See [cabal-core](https://github.com/cabal-club/cabal-core) for the underlying
database & api.![](cli-2019-04.png)
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](https://github.com/nvm-sh/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
```
e.g.
```
cabal cabal://0201400f1aa2e3076a3f17f4521b2cc41e258c446cdaa44742afe6e1b9fd5f82
```#### Remember cabals for auto-joining
save a cabal to the config```
cabal --save
```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
```#### Save an alias to a key
create a local name for a key.
```
cabal --alias --key
cabal
```#### 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 --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 --seed --port 7331
```## Commands
```py
/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 nickalt-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](https://github.com/cabal-club/cabal-cli/pull/151#issuecomment-602599840).
Regarding the supported options, see [`.cabal.yml-example`](.cabal.yml-example)