Install the ask command-line interface for Alexa on macOS

You’ve written an Alexa skill. Now you want to upload it to Alexa and submit for certification. Before you do anything, you’ll want to make sure you have a developer account setup and that you’ve accepted the EULA for the Alexa developer program at https://developer.amazon.com/alexa. To do so, simply go there and click sign in and it’ll take you through the prompts. You’ll need this as when you init your session, you’ll be prompted to link an account through the Amazon website.

Once done, let’s get the technical stuff out of the way. First, install the latest version of node from https://nodejs.org/dist/v6.10.0/node-v6.10.0.pkg (it’s a package so follow the defaults to install the package). Once that’s done, verify that the version of node.js is modern using the –version option with the node command:

node --version

Then install ask via npm:

sudo npm install -g ask-cli

Once that’s done, we’ll need to link accounts. To start that process, run the ask command along with the init verb:

ask init

This will open a webpage to link your account. Accept that by clicking the Continue button.

The skills you’re creating will be stored in lambda functions usually. So let’s create a skill using the new verb:

ask new --skill-name krypted

This should respond as follows:

New project for Alexa skill created.

Next, let’s deploy that. To do so, take the .json file that is the skill you’re uploading and make sure it’s in the working directory of the computer you’re on. Then, use ask along with the deploy verb, which automatically looks for a file called skill.json in your working directory and uploads it. 

ask deploy

Once uploaded, go ahead and verify it’s there:

ask api list-skills

If it’s there, you might as well try it out. You’ll need the skill-id for this (e.g. amzn1.ask.skill.2468-2468-2468-246824682468)  To do so, let’s use the simulate verb, running in debug mode, with some text input.

ask simulate --sl --skill-id amzn1.ask.skill.2468-2468-2468-246824682468 --text "read latest article" --debug

If your new skill works, then you can submit it for skill certification (which I’ll do in debug mode here):

ask api submit -s|--skill-id amzn1.ask.skill.2468-2468-2468-246824682468 --debug

Or if you’d rather remove the skill, simply swap out submit with withdraw

ask api withdraw -s|--skill-id amzn1.ask.skill.2468-2468-2468-246824682468 --debug

Alexa, Order Me A Pizza

Domino’s is arguably not the best pizza in the world. But it’s pizza. And, if you have an Amazon Echo, you can order it without opening an app, touching a keyboard, or making a phone call. This makes for a great look at using one of the skills options in Alexa to extend the usefulness of an Echo. To do so, you’ll first setup a Domino’s account (aka Pizza Profile). Do that at Dominos.com (avoiding any conflicts with the Noid along the way). Screen Shot 2016-05-31 at 8.34.41 AM Also setup an Easy Order, which is the kind of pizza that Alexa will order each time you tell her to do so. Once done, you’ll need to enable the Domino’s skill. To enable the Domino’s skill. A skill is an extension of an Echo. Think of it like an App Store on an iPhone. In this example, I’ll use my desktop to enable the skill, but the process is the same when run using the Alexa app. First, open the web interface at http://alexa.amazon.com. Then, click on Skills in the sidebar along the left side of the screen and click on Enable. Screen Shot 2016-05-31 at 1.11.30 AM You’ll then be prompted to provide a username and password for your Domino’s profile. Enter that and then click on Link My Pizza Profile. Screen Shot 2016-05-31 at 8.37.18 AM After a brief moment, Alexa will tell you that the skill was successfully linked. Close this window. Screen Shot 2016-05-31 at 8.38.18 AM Now, you’ll see that the skill has been enabled and can easily be disabled if you decide that there’s better pizza to be had by clicking on the Disable button. Screen Shot 2016-05-31 at 8.44.10 AM Now, just say “Alexa, open Domino’s and place my Easy Order” and then as your tummy grumbles, simply say “Alexa, ask Domino’s to track my order” to check the status.

Connect Amazon Echo (Alexa) to IFTTT

IFTTT makes the possibilities practically endless for what you can do with an Amazon Echo running Alexa. IFTTT provides workflows that connect Alexa to many of the most popular cloud services on the Internet. For example, Alexa can make a spreadsheet of all the songs you listen to using your Prime account, Email you a shopping list, sync To-Dos to Evernote, find your phone, set reminders on your phone, extend Alexa to manage your TV using Harmony, run Wink shortcuts, print files, manage a Wemo bulb (Belkin), control otherwise unsupported thermostats, control items within apps (e.g. make all your Hue lights a given color), time things (e.g. turn on the air conditioning for an hour), lock a door using an otherwise unsupported lock (e.g. with a Smarthings), do random things (e.g. assign a random color to a Hue light), interface with Google Calendar, and so much more. Basically, if a service can interact with IFTTT using an API, then your Alexa can be made to talk to it. But first, let’s connect your Amazon Echo to IFTTT. To get started, first go to the Alexa channel on IFTTT at Amazon Alexa Channel on IFTTT. When the page loads, click Connect. Screen Shot 2016-05-28 at 11.01.41 PM You’ll then be prompted to sign into IFTTT using your Amazon account. Enter your username and password and then click “Sign in using our secure server”. Screen Shot 2016-05-28 at 11.02.05 PM You’ll then be prompted to trust IFTTT from Amazon. Click Okay. Screen Shot 2016-05-28 at 11.02.17 PM Then you’ll be able to setup recipes. Let’s say you’d like to put your shopping list on a Slack channel so you can be judged even more harshly than you already are… Screen Shot 2016-05-28 at 11.18.36 PM Enjoy.

Manage Alarms On Amazon Echo

One of those fun things that Alexa can do is set alarms for you. I usually sleep around 4 or 5 hours a night, so no amount of alarms is enough to roust me out of bed. Therefore, adding Alexa on my Amazon Echo to the extensive list of alarms I have around my house is welcome. Let’s look at some things you can tell Alexa to do for ya’, when it comes to alarms. First, let’s set an alarm for noon:
“Alexa, set an alarm for noon tomorrow.”
Alexa will then repeat back the alarm she just configured. Now, let’s setup a repeating alarm for every Tuesday morning at 6am:
“Alexa, set an alarm for every Tuesday at 6am.”
Now, let’s check a list of all the alarms running on your Amazon Echo account:
“Alexa, list my alarms.”
If an alarm for tomorrow is at 11am, we can then delete it using:
“Alexa, delete the 11am alarm for tomorrow”
To snooze an alarm, just say:
“Snooze”
You can also ask about what alarms you have for a given day. So that alarm we set for Tuesday…
“What alarms do I have for Tuesday?”
Or to ask about which ones that repeat:
“What repeating alarms do I have?”
Alexa then lists your repeating alarms. To delete an alarm, change the sound, or set the volume, use either the Alexa app or use http://alexa.amazon.com and click on Timers & Alarms. Then click on “Manage alarm volume and default sound”. Screen Shot 2016-05-28 at 10.42.39 PM Let’s say we wanted to explore alarms. click on Alarm and then (as seen) click on the alarm you’d like to hear a sample. Screen Shot 2016-05-28 at 10.43.39 PM You can also configure timers. So if you’re cooking some salmon, you might say:
“Alexa, set a timer for 20 minutes”
You can also use the web interface or app to pause, cancel, or stop timers.