Amazon released Alexa back in November of 2014. Now it’s everyone’s favorite personal assistant. There are tons of tutorials out there (2–3 from Amazon themselves) on how to start developing on the Alexa. Now, you could follow every step and make the perfect Alexa skill, but alas, you need an Alexa to test it. I am going to show you how you can build almost any Alexa skill you want (and test it of course!) without owning an Alexa. Getting started The skill we will be building is pretty simple. We’ll give Alexa the ability to tell us whether a given a number is an or not. We will be writing all our code in Python 2.7. Here are the Python install links, if you don’t have them: and . Next, we will be installing pip, a package management tool for Python, download it . Install Flask, a python mircoframework, by opening the terminal and typing. Armstrong number OS X Windows here pip install Flask Flask-Ask Usually when you build skills with Alexa you need to setup an AWS Lambda function. But say if you’re at, going through the effort of making lambda functions is not the best way to go. Enter: Flask-Ask, a Flask extension tool that makes it easy to build Alexa skills. You can check out more about it here _flask-ask - Alexa Skills Kit for Python_github.com johnwheeler/flask-ask Like we did earlier with Flask, use the same line in the terminal to install flask-ask pip install flask-ask With flask-ask installed, we create a file called which will hold our code for the flask server. In the same folder create a file, which will hold our speech templates. flask_app.py templates.yaml Now with our python backend ready to go we can host it locally by typing. python flask_app.py This starts our server locally on port 5000. We also need Alexa to access to have access our server, for this there is a handy tool called . If you have already downloaded it, open a new terminal window and type: ngrok ngrok http 5000 Your terminal screen should look something like this. Alexa Skills Kit Head over to and create your developer account if you don’t have one. If you already do, just login. Go to the Alexa tab, select Alexa skills kit and then click Add new Skill. https://developer.amazon.com/ The first tab we fill up is Skill Information. Select Skill Type as Name as IsArmstrong and Invocation Name as Armstrong. The Name here is our skill name and Invocation Name we call when we have to start the skill, example: ‘Alexa, start Armstrong’. Custom Interaction Skill, The second tab is our Interaction Model. This mainly describes how we will interact with our Skill. The first text box, Intent Schema, tells Alexa the various speech intents our skill will posses. Fill it with the following JSON: { "intents": [{ "intent": "AnswerIntent", "slots": \[{ "name": "number", "type": "AMAZON.NUMBER" }\] }\] } Ignore the Custom slot types for now. Under the Sample Utterances, put in the following: AnswerIntent {number}AnswerIntent My number is {number}AnswerIntent Is {number} an armstrong number Now hit Next and lets proceed. While our Interaction Model is being built let us complete rest of the tabs. For the Configuration tab, click on the radio button that says HTTPS and checkbox that says North America. In the text box, put in the ngrok HTTPS URL and hit Next. It should look something like this. In the SSL Certificate tab select the option that reads, Hit Next. My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority. Testing Your Skill Now comes our testing phase. You should see a screen like this. In the box that says , let’s start by putting in our invocation phrase which in this case is, “start armstrong”. Alexa’s response should look something like this. Enter Utterance You can click on Listen and hear your response read out my Alexa. Go ahead and type This is the response. one hundred fifty three. Now, if you have an Alexa you can go and enable the skill there but that isn’t the point of this tutorial. Head over to and log in with your Amazon id. Echoism.io Now hold down the mic and test your skill. Keep the Console open so you can see what’s going on. Here is how my conversation went: : “Alexa, start armstrong” Me : “Hello. Welcome to the IsArmstrong skill. Give me a number and I will tell you if it’s an Armstrong number.” Alexa : “Ask Armstrong if 153 is an Armstrong number” Me “Yes, This number is an Armstrong number!” Alexa: Conclusion The skill we built was is pretty simple. Alexa skills, the good ones at least require a lot more code and lot more testing. If you want to go ahead and explore other skills head over to the or if you have an idea and want to deploy your own here is another great tutorial: Alexa store http://moduscreate.com/build-an-alexa-skill-with-python-and-aws-lambda/ Happy Developing 🎉