The best CLI client for Slack, because everything is terrible!
The project is still under alpha, there are lots of things already done, but there is also a lot of work to do! If you want to help, please contact me under marcelocamargo@linuxmail.org or create an issue! Working in community, we can soon have a CLI client as complete as the web one!
First of all get a Slack token here.Use, create or request a token for each workspace that you'll use on Sclack.Not all workspaces allow you to generate a legacy token, so sometimes you'll need toask for the administrator to enable the feature.
Unfortunately some serious hoops need to be jumped through to use a non-legacy token.
http://localhost:8080
https://slack.com/oauth/authorize?client_id=[Client ID here]&scope=client
code=
parameter (http://localhost:8080?code=[code-will-be-here]&state=) curl -s "https://slack.com/api/oauth.access?client_id=[client id here]&client_secret=[client secret here]&code=[code here]"
access_token
from the response (should start with xoxs-
). This is your new auth token for SclackSclack seems better when used with a Nerd Font. Usingthem is completely optional, but it is how some Sclack icons are possible.Personally, I use Fira Code Nerd Font.Download, install and set as the default font of your terminal emulator.
Sclack uses caca-utils
to create ANSI/VT100 + ASCII versions of pictures andrender them. Images will only be rendered if both caca-utils
is installedand features.pictures
is configured to true
. To install caca-utils
, justrun sudo apt-get install caca-utils
on Debian and brew install libcaca --with-imlib2
onOS X.
Ensure you have Python 3.4 or superior version.
pip
git clone https://github.com/haskellcamargo/sclack.git
cd sclack
pip3 install -r requirements.txt
chmod +x ./app.py
./app.py
pipenv
git clone https://github.com/haskellcamargo/sclack.git
cd sclack
export PIPENV_VENV_IN_PROJECT=1
pipenv install # install deps
pipenv shell # enter virtualenv
python app.py # run app
If you don't have Python installed, you can get the compiled binary for Sclackon releases page. Versions will be available for Linux x86/x64 and OS X.
Run ./app.py
after giving the correct permissions. If you don't have a ~/.sclack
file, you can generate one here by providing your workspace token. You can change the theme, enable or disable images, emojis, markdown, configure keyboards and everything else on config.json
. Important: use q
to quit!
Your ~/.sclack
file will look like:
{
"workspaces": {
"default": "wow-such-secret"
}
}
If you want to, you can use Sclack in multiple workspaces. You can haveat most 9 workspaces defined inside workspaces
:
{
"workspaces": {
"default": "wow-such-secret",
"another": "wow-another-secret"
}
}
You can use the keys from 1 up to 9 to switch workspaces or event right-click the indicator:
You can use ctrl k (or your custom shortcut) to navigate in your DMs and channels.
You can use ctrl d (or your custom shortcut) to set snooze time.
Focus on message and press r (or your custom shortcut) to get permalink (Quote message) and it will be put into your chat box.
{
"keymap": {
"cursor_down": "j",
"cursor_left": "h",
"cursor_right": "l",
"cursor_up": "k",
"delete_message": "d",
"edit_message": "e",
"go_to_chatbox": "c",
"go_to_profile": "p",
"go_to_sidebar": "esc",
"open_quick_switcher": "ctrl k",
"quit_application": "q",
"set_edit_topic_mode": "t",
"set_insert_mode": "i",
"yank_message": "y",
"get_permalink": "r",
"set_snooze": "ctrl d"
}
}
The mouse support also has been programmed. You can scroll the chatbox and the sidebar and double click the channels to select.
{
"sidebar": {
"width": 25,
"max_users": 20
}
}
max_users
: Max users who are shown in the sidebar{
"features": {
"emoji": true,
"markdown": true,
"pictures": true,
"browser": ""
}
}
browser
: Config your preferable browser to open the link, when ever you focus on chat box text which contains external link (http/https), press enter key, the link will be opened. Valid value. Example you can config "browser": "chrome"
Sclack has been tested with the following terminal emulators:
To run the tests first install the development dependencies via:
pip3 install -r requirements-dev.txt
and then run pytest
.
Contributions are very welcome, and there is a lot of work to do! You can...
Made with