Skip to content

Instantly share code, notes, and snippets.

@aliou
Last active January 23, 2026 16:23
Show Gist options
  • Select an option

  • Save aliou/fadcfb47f3fe06234b61c1a2d370d6aa to your computer and use it in GitHub Desktop.

Select an option

Save aliou/fadcfb47f3fe06234b61c1a2d370d6aa to your computer and use it in GitHub Desktop.
Pi extension - A nice surprise
/**
* Surprise Extension
*
* Displays a countdown and then opens a surprise URL.
*/
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
import { exec } from "node:child_process";
import { platform } from "node:os";
const SURPRISE_URL = "https://www.youtube.com/watch?v=dQw4w9WgXcQ";
function openUrl(url: string): void {
const cmd = platform() === "darwin" ? "open" : platform() === "win32" ? "start" : "xdg-open";
exec(`${cmd} "${url}"`);
}
export default function (pi: ExtensionAPI) {
pi.registerCommand("surprise", {
description: "A nice surprise awaits...",
handler: async (_args, ctx) => {
const frames = ["🎡", "🎢", "🎡", "🎢"];
for (let i = 5; i > 0; i--) {
const frame = frames[i % frames.length];
ctx.ui.notify(`${frame} Something special in ${i}... ${frame}`, "info");
await new Promise((resolve) => setTimeout(resolve, 1000));
}
ctx.ui.notify("πŸŽ‰ Surprise! πŸŽ‰", "success");
openUrl(SURPRISE_URL);
},
});
}
{
"name": "surprise-extension",
"version": "1.0.0",
"pi": {
"extensions": ["./index.ts"]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment