This is a simple Emacs interface for the slack-cli python program.
There is an already existing slack client for Emacs called emacs-slack. I've used it a lot in the past but could not get it to work anymore thanks to the changes to slack's API.
I searched around for an alternative and found the slack-cli python program. It had the bare minimum that I needed for my daily use so I installed it and made this interface for it.
This package is not yet ready for Melpa so it can only be downloaded as is and loaded manually from your emacs config file like this:
(load "~/your/path/slack-cli/slack-cli.el")
Also make sure to install the slack-cli
on your system. Found out how here. Run it once so you could get an API token.
From your configuration file, update and evaluate the line below:
(setq slack-cli-channels '("channel1" "channel2" "channel3"))
Here are the available functions:
slack-cli-listen
- Connects to a channel and waits for messagesslack-cli-send
- Allows sending of a message to a specific channelslack-cli-retrieve
- Retrieves a certain amount of messages from a specific channel
Here are the default keybindings:
- Press
r
while on a slack-cli buffer to send a reply to the current channel - Press
g
while on a slack-cli buffer to retrieve and refresh the latest messages
This project has a lot of missing features and I will try to improve it whenever I can. Contributions are welcome. Refer to the todos or check out the issues list if there are any.
- Add checker if
slack-cli-channels
is set beforehand - Allow retrieving from all channels
- Allow setting of default number of lines to display
- Upload to Melpa