The Kanye Button

I hacked an Amazon Dash Button so when the squad needs inspiration we can summon the greatest creative genius of our time.

When pressed, The Kanye Button sends a random Kanye inspirational quote GIF to our team’s Slack channel. The button floats around our office allowing anyone to randomly send us new ideas, fam, providing a constant source of annoyance inspiration for my coworkers on the daily.


How It Works

  1. A Python script listens for the Dash on the local WiFi network
  2. When the Dash Button is pressed, it pulls from the Giphy API and pushes the data to a custom IFTTT Maker channel
  3. IFTTT takes the HTTP push data and connects it to Slack

Like most Dash hacks, the first step is to partially setup the button on your WiFi network. Once you do that you need to ID the MAC address of the Dash, which you can do by logging into your router or by sniffing for ARP Probes when the button connects to your WiFi network.

If that last paragraph is jibber jabber to you fret not, the links below will explain everything.


At first I tried a Node.js method, using Dasher and Node-Dash-Button, and the help of a tutorial by my compatriot JMac to push an HTTP request to an IFTTT Maker channel, which then pushed to Slack.

It worked, but Node would register anywhere from 3-7 “presses” with each physical press of the button. My guess is that as the button tried to connect to the WiFi, ultimately connected, and then tried to talk to my phone / Amazon servers, the script was registering every network hit. Also pulling in GIFs and getting them to show inline was troublesome. No bueno.

So I said no more parties in JS went with some real friends using Python.

I modified Ted Benson’s dash hack script – which sniffed for ARP Probes – and added the Giphypop and Requests libraries. The former allowed me to easily pull Kanye GIF URLs from the Giphy API, and the latter allowed me to push that data to IFTTT via an HTTP query string.

The Kanye Button script on GitHub.

But a tech-only hack is only half the job in my opinion, so I designed a custom label and used a Xyron machine to make it a branded sticker. Because for me, you know, I’m a creative genius and there’s no other way to word it.