CLI utility to post files and command output to slack
Go VimL Makefile Ruby
Latest commit ab9bf89 Oct 5, 2016 @bcicen bcicen add install steps


Slackcat is a simple commandline utility to post snippets to Slack.




Download the latest release for your platform:


brew install slackcat


curl -Lo slackcat
sudo mv slackcat /usr/local/bin/
sudo chmod +x /usr/local/bin/slackcat


wget -O slackcat
sudo mv slackcat /usr/local/bin/
sudo chmod +x /usr/local/bin/slackcat


Generate a new Slack token with:

slackcat --configure

A new browser window will be opened for you to confirm the request via Slack, and you'll be returned a token.

Create a Slackcat config file and you're ready to go!

echo '<your-slack-token>' > ~/.slackcat

For configuring multiple teams and default channels, see Configuration Guide.


Pipe command output as a text snippet:

$ echo -e "hi\nthere" | slackcat --channel general --filename hello
*slackcat* file hello uploaded to general

Post an existing file:

$ slackcat --channel general /home/user/bot.png
*slackcat* file bot.png uploaded to general

Stream input continously as a formatted message:

$ tail -F -n0 /path/to/log | slackcat --channel general --stream
*slackcat* posted 5 message lines to general
*slackcat* posted 2 message lines to general


Option Description
--tee, -t Print stdin to screen before posting
--stream, -s Stream messages to Slack continuously instead of uploading a single snippet
--plain, -p When streaming, write messages as plain text instead of code blocks
--noop Skip posting file to Slack. Useful for testing
--configure Configure Slackcat via oauth
--channel, -c Slack channel, group, or user to post to
--filename, -n Filename for upload. Defaults to given filename or current timestamp if reading from stdin
--filetype Specify filetype for synax highlighting. Defaults to autodetect
--comment Initial comment for snippet