Inspiration

We wanted the ultimate “harmless chaos” button: something you can slip into a friend’s VS Code so their code starts misbehaving in subtle, believable ways—and they spend the next hour questioning reality.

What it does

DuckedyDuck is a prank VS Code extension that injects realistic bugs into the file you’re editing. One command can sprinkle multiple classic annoyances—off-by-ones, swapped operators, flipped ternaries, logical/bitwise mixups, and more—while keeping the code syntactically valid.

How we built it

We built a TypeScript VS Code extension and used Babel’s AST toolchain to parse code, mutate specific syntax nodes, and write the result back into the editor. Each prank “bug” is a modular mutator, and a configurable pipeline (bug-generator.bugsPerRun) controls how much mischief gets injected per run.

Challenges we ran into

Making bugs plausible (the kind that look like an honest mistake, not obvious sabotage). Avoiding huge formatting changes so the prank stays stealthy. Handling TS/JS/JSX parsing reliably.

Accomplishments that we're proud of

A growing catalog of sneaky bug injections that feel “real.” Multi-bug injection with a simple “chaos dial.” Clean, modular architecture so adding new prank bugs is fast.

What we learned

The best pranks are subtle: tiny logic shifts cause outsized confusion. AST transforms are perfect for this—safe, targeted, and language-aware.

Built With

Share this project:

Updates