Skip to content
A simple emacs interface for the slack-cli Python program
Emacs Lisp
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Emacs Slack-Cli

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 messages
  • slack-cli-send - Allows sending of a message to a specific channel
  • slack-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.

To Do

  • 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
You can’t perform that action at this time.