cfjedimaster/eleventy-demos/01
Claude Code and agent skill by cfjedimaster/eleventy-demos
- community
Checking that the SKILL.md file is still in the repository.
A simple example of adding a card to an Alexa Skill.
Install
npx vskill@latest install cfjedimaster/eleventy-demos/01SKILL.md
It's been a while since I've blogged about building Alexa skills, but this weekend I played around with something I've been meaning to take a look at for quite some time - visual results. In case you weren't aware, there are multiple ways of returning visual results with an Alexa skill response. There are multiple Alexa devices that have screens (I've got an Alexa Show and Spot) and whenever you use the Alexa app itself, visual results are displayed there. To be fair, I'd be willing to bet a lot of people aren't even aware of the Alexa app or that it can show previous uses. This is something I've meant to look at for sometime and dang if I wish I had looked at it earlier. You can add simple visual feedback in about five minutes of work!
Note that Alexa devices support two kinds of visual feedback. The simplest one, the one I'm covering today, is called a Card. This is supported "everywhere" by which I mean it will always show up in the app even if you are speaking to a device without a display. There's a second method of support called "display templates" for devices that ship with a screen. I'm not covering this today but you can read more about it at the docs.
Ok, so let's demonstrate how to do this.
My Initial Skill
Before I continue on, note that how I built the skill is totally not relevant. I think it was kind of neat so I wanted to share, but you can definitely skip on to the next section where I discuss modifying it to add card support. I'll also note that I'm not submitting this one for release by Amazon so you can't test this yourself, but remember that Amazon makes it super easy to build and test these skills on your own devices which is awesome!
My skill is called "My Monster" and it simply selects a random monster from Diablo 3. After giving myself a Nintendo Switch as an early birthday present, I've been playing the heck out of it and have really enjoyed the port. I played quite a bit on the PC and can say that the Switch does an incredible job with it. I don't miss a mouse at all.
There's a great wiki for Diablo at, of course, <https://diablo.fandom.com/wiki/Diablo_Wiki>, and as every wiki has an API, I built some code to parse their data.
The first thing I did was simply ask for all pages in the "Animals" category. I did this via a simple Postman test at this URL: <https://diablo.fandom.com/api/v1/Articles/List?category=Animals&limit=999999>. This returns a list of pages. You can then get more information about a page by going to <https://diablo.fandom.com/api/v1/Articles/AsSimpleJson?id=36097> where the ID value comes from the initial list in the previous URL. I wrote a quick Node script to get every page and save it to a local JSON file:
Note the awesome use of Promises to run the HTTP calls in parallel and then my epic use of reduce to work with the text. Basically my idea was to end up with a set of JSON data I could use "as is" for my skill versus parsing data on the fly for each call. I missed one or two things and could have updated this but left it as is.
The end result was a big array of monsters - here's part of it.
Next I built a Webtask.io serverless task to select a random monster and return the result to the Alexa device. Here's the code, with again most of the monsters trimmed out for space.
You can see I modify the text a bit. As I said earlier, the script I built to parse and save the data could have been updated so I'm not doing this on the fly. Or heck, I could write another Node script to read in the output and fix it. As I wasn't planning on releasing this skill I didn't worry about it. Here's a sample result via Alexa's testing console.
<img src="https://static.raymondcamden.com/images/2019/04/alexa1.png" alt="An example of the output from running the Alexa skill" class="imgborder imgcenter">
That one's a bit long for a response, but again, I'm just testing. Ok, so how do we add a card to the response?
First - read the excellent docs! Include a Card in Your Skill's Response There's multiple different types of cards but the easiest is a simple card. You can test it by simply adding the card object to your response:
In the example above I've added a simple card with a title and the same content as the audio response. This is the returned in the card key. Obviously you don't have to do that. You could use the text response as a way to include things that may not make sense over audio. So for example, I can imagine a case where acronyms are included in the text but not the audio:
That's a pretty minor difference but you get the idea.
Adding an image is pretty easy too. Switch the type to Standard, change content to text (which feels like a dumb change, mainly because I missed it), and then include an image object with up to two keys: smallImageUrl and largeImageUrl. I had the images for each monster already but didn't notice the wiki doing a server-side redirect to the proper image file. I modified my code to handle "guessing" the right URL so this isn't exactly perfect, but here's what I ended up with:
And that's it! The result:
<img src="https://static.raymondcamden.com/images/2019/04/alexa2.png" alt="An example showing the text and image from the skill" class="imgborder imgcenter">
Here's a pic I took of it running on my Alexa Show. There's a bit of glare - sorry about that.
<img src="https://static.raymondcamden.com/images/2019/04/alexa3.jpg" alt="Example of the result on the Alexa Show" class="imgborder imgcenter">
So not exactly rocket science and in general Alexa development is pretty easy, but I was very impressed by how easy it was to add this feature to my skill. I kinda wished I had done this much earlier.
<i>Header photo by <a href="https://unsplash.com/photos/9SewS6lowEU?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Jack Hamilton</a> on Unsplash</i>
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinglunr4/_posts/2019/04/01/2019-04-01-adding-visual-feedback-to-an-alexa-skill.md
Popularity
- Repository stars
- 70
- Repository forks
- 12
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/cfjedimaster/eleventy-demos/01)