How I Built A Raycast Extension
I present a hospital radio show. It’s one of those things that sounds glamorous until you’re staring at a spreadsheet at 11pm trying to figure out which songs you’ve already played; and which ones might actually lift the spirits of someone lying in a hospital bed.
For a long time, my system was run together with good intentions and a Google Sheet. It worked really well and I was quite proud of it. But it was clunky, very manual, and relied entirely on me remembering to check what I’d played in recent weeks!
So I decided to fix it. And the tool I ended up building, a custom Raycast extension, has completely changed how I prepare for each show.
🎙️ A Bit of Background
Raycast is a Mac productivity launcher. Think Spotlight, but smarter and infinitely more extensible. You can build your own commands, called extensions, that do almost anything you can imagine.
I’ve been using Raycast for a while, but I’d never built my own extension from scratch. I’m not a developer, so always steered away from it.
Then, I had a thought. Why not ask Claude to help me?
It started with the question “Can I build a Raycast extension similar to my Hospital Radio dashboard?”.
Claude replied:
Great idea! Before I dive in, let me ask a few questions so I build exactly what you need:
What data would you want to see in Raycast? Song/playlist lookup? Request tracking? Duplicate checker (has this song been played recently)? Something else?
Where does your data live? Is it still in a Google Sheet? Or somewhere else now?
What would you actually do from Raycast? Just view data (read-only)? Add songs/requests on the fly? Mark songs as played?
How does this compare to your existing dashboard? Would this replace your Google Sheet dashboard, or sit alongside it as a quick-access companion?
I love the fact that it already had the context of what I was using.
I continued having a conversation with Claude about what I actually needed. Not in a vague, “I want an app” kind of way, but a proper back-and-forth about the problem I was trying to solve. What data did I have? Where did it live? What did I want to be able to do with it?
Step by step, Claude helped me think it through, it gave me the code, helped to debug the inevitable hiccups, and refine things until they felt right.
It even gave me precise instructions for how to create the necessary credentials for setting up API access via Google Cloud Console. This was taking me far outside my comfort zone, but I felt quite excited about it.
As I’ve mentioned, I’m not a developer, but with Claude walking me through each stage, I didn’t need to be.
🎵 What the Extension Actually Does
The finished extension has two main commands, and between them, they’ve transformed my show prep.
The first command gives me a full song library view. Every track I’ve ever played on the show appears in a searchable list, along with the name of the show it was played on and, crucially, the last time it was played. Tap into any song and you get more detail: the full history, and in which shows it appeared.
It sounds simple. But having that at my fingertips, without opening a spreadsheet and scanning rows manually, is really amazing.
The second command is called Suggest — and this is the one I’m most excited about.
Run the command, and the extension analyses my entire play history, in my Google Sheet, and generates a playlist of 13 songs that haven’t been played in the last four weeks.
It’s a thoughtfully mixed list that avoids the recent repeats while drawing from the full catalogue I’ve built up over time.
I can import that list directly as a new tab into my Google Sheet. My show structure stays intact, the history is preserved, and any information about the track is also imported.
I’ve got a fresh starting point for the next episode without any of the manual cross-referencing that used to eat up my prep time.
📊 The Dashboard That Ties It All Together
The extension doesn’t sit in isolation. I also use a Live Artifact dashboard, built with Claude Cowork, that pulls in data from my Google Sheet and gives me a visual overview of everything.
This was another great project to work on, with Claude; iterating over the idea until I got something that works.
When the new suggested playlist lands in the sheet, it’s a quick refresh and I can review, adjust, and finalise my running order.
It’s a joined-up workflow that just… works.
🤔 What I Learned From Building This
The biggest takeaway from this project isn’t technical.
It’s simply that you don’t need to be a developer to build something genuinely useful for your own life.
What you do need is a clear sense of the problem you’re trying to solve, the patience to work through it iteratively, and the right collaborator.
Claude was that collaborator for me. Asking the questions, catching my mistakes, and helping me articulate what I actually wanted even when I wasn’t sure myself.
🎧 The Bottom Line
If you’ve got a repetitive workflow that’s held together with spreadsheets and memory, and a Mac on your desk, it might be worth having a conversation with Claude about building something better.
You might surprise yourself.
I certainly did.