This is a simple Python-based app for displaying your Slack status fullscreen on a Raspberry Pi, along with your latest scrobbled Last.fm track as a "now playing" feature. I designed the app around the display I'm using but you can adjust the code to use whatever display output you need.
Static Preview:
Live Preview: (The color is a lot more like the static, just had to heavily compress the GIF for upload.)
- A Raspberry Pi. (Any model that can run Python 3 should work, but as a warning, this was only tested on a Raspberry Pi 3B.)
- A hardware display.
- SSH accesss to the Raspberry Pi.
- Login to a shell and run updates on your Pi
sudo apt-get update -y && sudo apt-get full-upgrade -y - Install any necessary drivers for your display.
- If you're using the same display I used, use the
LCD35-showdriver from this repository. - Make sure to enable I2C or SPI via
sudo raspi-config> Interface Options if needed. Refer to your hardware documentation to find out.
- If you're using the same display I used, use the
- Install the needed dependencies by running
sudo apt-get install python3-full python3-pip git.
- Go to api.slack.com/apps.
- Click "Create New App".
- Choose "From scratch".
- Give your app a name (e.g., "Pi Slack Status Display") and select your Slack workspace.
- In your app's settings, navigate to "OAuth & Permissions".
- Under "Scopes" -> "Bot Token Scopes",
add users.profile:read.
- At the top of the "OAuth & Permissions" page, click "Install to Workspace"
- Authorize the app.
After installation, you'll see a "Bot User OAuth Token" (starts with xoxb-). Copy this token and keep it secure. This token will be used by your Python application.
- Open Slack in your browser.
- Click on your profile picture in the top right corner.
- Click "Profile".
- In the sidebar that appears, click the "..." menu next to "Edit Profile".
- Select "Copy member ID". It will look something like
U1234567890. Save this along with your Bot Token from earlier.
- Navigate to https://www.last.fm/api/account/create.
- Fill out the form, you don't need to fill out the "Callback URL" or "Application homepage" sections.
- Save your newly created API Key and Secret, you'll need them.
- Clone this repository:
git clone https://github.com/untraceablez/pi_slack_statusand thencd pi_slack_status. - Create a Python virtual environment named .venv using this command:
python3 -m venv $HOME/.venv/pi-slack - Run
source $HOME/.venv/pi-slack/bin/activate. - Run
pip install -r requirements.txtto install the various Python dependencies. - Create a
.envfile by copying.env_sample:cp .env_sample ~/.env. - Open the
~/.envfile and paste in your User ID, API Token, and optionally, your Client Secret and Signing Secret (you'll need these if your Slack workspace enforces oAuth). - For Last.fm, paste in your API Key, Secret, and username.
- Go ahead and test the application by running
python3 pi_slack_status.py.
- Before you do the steps below, modify the .service file with the correct paths and usernames. For example, I use Ansible in my homelab, and thus have ansible username instead of the default 'pi'
- In order to set this up as a startup service on the pi, first make the
start_pi_status.shfile executable:sudo chmod +x ./start_pi_status.sh. - Next, copy the contents of the
pi_status.servicefile to your clipboard and create a systemd service file:sudo nano /etc/systemd/system/pi_status.serviceand paste the contents inside. - Run the following commands to enable and start the service:
sudo systemctl enable pi_status.service sudo systemctl start pi_status.service sudo systemctl daemon-reload - You should be able to reboot the Pi and see the screen load. Enjoy your new Slack status kiosk!

