Hey, it's Cindy ๐ฑ You commented GIFT, so here is the exact prompt, plus the setup from zero and the build.
btw the waitlist for AI System Club is now open! If you're keen on using AI to automate your content, video editing, job search, business or build AI agents, feel free to sign up (only if you want to hehe). Ps. the waitlist gets first dibs:)
๐ก The consent bit, and I do mean it. The reel that inspired this ends with someone installing an extension on their partner's work laptop. Please do not do that. Company devices are usually managed, often monitored, and installing unapproved software on one can genuinely put someone's job at risk. Build it, show them, and let them install it on their own machine. The surprise is the idea, not the sneaking.
what you are building
The gift, in four pieces
The version from the reel is a VS Code extension that gently interrupts someone's coding until they do the silly thing you want them to do. Underneath, every gift app like this is the same four parts, which is why the prompt below works for a hundred other jokes too.
โฑ๏ธ A timer Something that fires on a schedule you choose. Fifteen minutes in the original, though five is funnier and thirty is kinder.
๐ง An interruption A message or panel that takes over their attention when the timer fires, so it cannot be ignored by accident.
๐ An unlock The thing they have to do to make it go away. This is where the joke lives, and where your inside references go.
๐ The personal layer Their name, your names for each other, real photos, real dates, the specific phrasing only the two of you would find funny.
๐ก One honest limit up front. An extension on their laptop cannot actually confirm that a person watched a reel, or read a message, or did anything at all inside another app. So the unlock is an honour system: it opens the link and shows a button that says something like "okay, I watched it". That is not a compromise, it is the joke. The whole thing is funnier when both people know it runs on trust.
pick your route
Two ways in, both real
๐ฅ๏ธ Route A: the VS Code extension The exact gift from the reel. Needs Claude Code, which needs a Claude Pro, Max, Team or Enterprise plan (Anthropic's setup docs). Best if the person you are gifting to writes code.
๐ฑ Route B: the tiny web app Works on any Claude plan, including Free, with no terminal and nothing to install. You get a single page you can send as a link or a file. Best for everyone who does not live in a code editor.
Route A is written out in full below. Route B is at the bottom, with its own complete prompt, and it is genuinely lovely, so do not treat it as the consolation prize.
route a, setup
Get the tools on your machine
Twenty minutes, once, and then you have a setup that builds anything. Do these in order and do not skip the version check.
๐ Install VS Code. Download it free from code.visualstudio.com/download and open it once so it finishes setting itself up. This is the editor your extension will run inside, and it is also where you will watch it work.
๐ข Install Node.js. Grab the LTS version from nodejs.org/en/download. VS Code extensions are built on Node, so this one is not optional for Route A. Confirm it landed by opening a terminal and running node --version.
๐ค Install Claude Code. On macOS, Linux or WSL, run curl -fsSL https://claude.ai/install.sh | bash in your terminal. On Windows PowerShell, run irm https://claude.ai/install.ps1 | iex. Then check it with claude --version, which should print something like 2.1.211 (Claude Code).
๐ณ Know the plan gate. Claude Code needs a Pro, Max, Team, Enterprise or Console account. The free Claude.ai plan does not include Claude Code access, which is stated plainly in the setup docs. If you are on Free, jump to Route B instead of paying for a one-off joke.
๐ Make a folder and start Claude. Create an empty folder somewhere obvious, for example gift-app on your desktop. Open a terminal in that folder and type claude. You are now in an interactive session, sitting in the folder where your gift will be built.
๐ฑ๏ธ Prefer buttons to terminals? The Claude Desktop app gives you the same thing with a graphical interface, downloadable from claude.ai/download. Everything below works identically there.
the exact prompt
Paste this, then answer its questions
This is the one you commented for. It is deliberately long because the detail is what makes the result feel like a gift instead of a generic tutorial project. Fill in the brackets before you send it.
๐ the master gift app prompt
Build me a VS Code extension as a personalised birthday gift for [name], who is a [their job, for example backend engineer] and works in VS Code most of the day.
Here is the joke. Every [15] minutes while they have VS Code open, the extension interrupts them with a message that says [your line, for example "your girlfriend has sent you 3 reels and you are ignoring them"]. The interruption shows a button that opens [the link you want them to open], and a second button labelled [your unlock text, for example "fine, I watched it"]. Nothing unlocks until they press the second button, and then the timer resets and it leaves them alone until the next interval. Be clear in the code that we cannot verify they actually watched anything, so the unlock is an honour system button, and write the copy so that is obviously part of the joke.
Make it feel personal rather than generic. Rotate through this list of messages so it never says the same thing twice in a row: [paste five to ten of your own lines, inside jokes, nicknames, references to specific things that happened]. Use [their nickname] in the copy, and add a small easter egg: on [their birthday date] the messages should change to a set of birthday-only lines, which are [paste two or three].
Build it properly so it survives being installed on a real machine. Add a settings section so they can change the interval or turn it off entirely without editing code, because a gift they cannot escape is not a gift. Add a command in the command palette called "Gift: pause for today". Make sure it never blocks saving, running or debugging their actual work, and never touches their files.
Then walk me through it as someone who has never built an extension before. Tell me what each file does in one line, exactly how to run it locally to test it, and exactly how to package it into an installable file I can hand over. Do not assume I know any of the tooling.
๐ฑ Why the brackets matter more than the code. Claude can write the extension either way. The difference between a forgettable demo and something they screenshot and send to their group chat is entirely in the lines you put in that message list. Spend fifteen minutes on the jokes and five on the build.
try it before they do
Test it on your own laptop
Never hand over something you have not watched run. VS Code has a built-in way to test an extension without installing it anywhere permanent.
๐ Open the folder in VS Code. File, then Open Folder, then pick the gift-app folder Claude just filled with files. You should see a package.json and an extension source file.
โถ๏ธ Press F5. This launches a second VS Code window called the Extension Development Host, with your extension already loaded into it. Microsoft's Your First Extension walkthrough covers this same flow if you want the official version.
โฒ๏ธ Shorten the timer while testing. Tell Claude "set the interval to 10 seconds so I can test it", watch it fire a few times, check the buttons work, then tell it to put the interval back. Waiting fifteen real minutes to find a typo is a bad evening.
๐ Feed errors straight back. If something breaks, copy the red text from the Debug Console and paste it into Claude with "this is the error, fix it and tell me what caused it". This loop is the actual skill. The first build is rarely the working one, and that is completely normal.
๐ Live with it for an hour. Leave it running while you do your own work at the real interval. You will discover fast whether your joke is charming or genuinely annoying, and it is much better that you find that out than them.
make it giftable
Package it into one installable file
An extension folder is not a gift. A single file they double-click is. Ask Claude to do this part for you.
๐ฆ package it for handover
Package this extension into a single installable .vsix file I can send to someone, and walk me through it step by step.
Before packaging, check the package.json has everything the packager needs: a sensible name, a display name, a version, a description written for a human rather than a developer, a publisher field, and a license field so the tool does not stop and complain. Fix anything missing and tell me what you changed.
Then give me the exact command to run in this folder to produce the .vsix, tell me what the resulting file will be called, and give me the two ways the person receiving it can install it: the click path inside VS Code, and the one-line terminal command. Finish with a short plain-language note I can send alongside the file explaining what it does, that it can be turned off in settings, and how to uninstall it in two clicks if they have had enough.
For reference, these are the commands that prompt is heading towards, straight from Microsoft's publishing docs. Run the first in your extension folder, and give the second to whoever is installing it.
๐๏ธ Build the file.npx @vscode/vsce package creates a .vsix file in your extension folder, named something like gift-app-0.0.1.vsix. Using npx means you do not have to install the packaging tool globally first.
๐ฑ๏ธ Install it by clicking. In VS Code, open the Extensions view, click Views and More Actions, then Install from VSIX, and choose the file. This is the path to put in your note, because most people prefer buttons.
โจ๏ธ Or install it by command.code --install-extension gift-app-0.0.1.vsix does the same thing in one line. Reload the window afterwards and it is live.
๐ Hand it over properly. Send the file with the note Claude wrote, on their own device, with them watching. That is the moment the gift actually lands.
route b
No Claude Code? Build the web version
This route works on every Claude plan including Free, needs nothing installed, and produces a single page you can send as a link or as a file they open in any browser. For a lot of people it is the better gift, because they can actually open it.
๐ฑ the one-page gift app prompt
Build me a single self-contained HTML page as a personalised birthday gift for [name]. Everything must be in one file, with the CSS and JavaScript inline and no external libraries or fonts, so it works offline when they open it from their downloads folder.
Here is the idea. [Describe the joke or the sentiment in three or four sentences, for example: a page that shows a countdown to our next trip, and every time they click the plane it reveals one of my favourite memories from a list, with the last one unlocking a hidden note.] Use their name throughout, and use these lines as the content: [paste your list of memories, jokes, reasons, dates, whatever the gift is made of].
Design it warmly rather than corporately. Cream background, one accent colour, generous spacing, a friendly rounded font stack, gentle animation on reveal, and it must look right on a phone screen because that is where they will open it. Save their progress in local storage so closing the tab does not wipe what they have already unlocked.
Then tell me two things: how to save this as a file I can send them, and the simplest free way to put it on a real link if I would rather text them a URL than a file.
๐ก Ask Claude to build it as an artifact so you can see it live in the chat, click through it, and say "make the reveal slower" or "the pink is too much" until it is right. Then download the file. Iterating on something you can see beats describing changes to something you cannot.
steal these
Six gift apps that are not the reel one
Same prompts, different joke. Swap the idea paragraph and everything else holds.
๐ The countdown A page counting down to your next trip, with a new photo and memory unlocking every day until you go.
๐ฐ The decision wheel A spinner loaded with the twelve restaurants you actually argue about, so the "where do you want to eat" loop finally ends.
๐ The reasons jar One hundred reasons written by you, one revealed per day, saved so they cannot binge the whole thing on day one.
๐ง The quiz A how-well-do-you-know-me quiz with your real answers, a score at the end, and a custom roast for every score band.
๐ฑ The habit nudge A gentle desktop reminder for the thing they keep saying they want to do, with encouragement written in your voice rather than an app's.
๐ The time capsule A page with letters that unlock on specific future dates, so the gift keeps arriving for a year after the birthday.
be realistic
What it genuinely cannot do
๐ It cannot watch other apps No extension can confirm a reel was watched, a message was read, or a task was done elsewhere. Honour-system buttons only, and make that part of the joke.
๐ It cannot go on a managed device Work laptops often block unsigned extensions outright, and where they do not, installing one can breach company policy. Personal machines only.
๐ช It is not marketplace ready A .vsix you hand over privately is fine. Publishing publicly needs a publisher account and review, which is a whole other project.
๐ค The first build is a draft Expect two or three rounds of "that broke, here is the error". Budget an evening, not ten minutes, and the loop itself is the thing worth learning.