DevDuck
DevDuck is a VS Code rubber duck pet that lives in your sidebar, reacts to your code, and lays eggs full of jokes, motivation, coding tips, and tiny challenges.
Features
- Duck sidebar panel
- Animated duck movement
- Personality-based speech
- File-save reactions
- Error/no-error reactions through VS Code diagnostics
- Clickable egg system
- Local jokes, motivation, tips, challenges, and mystery messages
- Optional online jokes
- Rubber Duck Debugging prompt mode
- XP, level, save count, egg count, and error count
Usage
- Open the DevDuck activity bar icon.
- Watch the duck move around the sidebar.
- Save files and fix errors to trigger reactions.
- Click Lay Egg or wait for the duck to lay one.
- Crack the egg for a joke, motivation, coding tip, or challenge.
- Click Debug With Duck when you are stuck.
Settings
Search for DevDuck in VS Code settings.
Available settings:
devduck.personality
devduck.roastLevel
devduck.eggFrequency
devduck.enableOnlineJokes
devduck.enableMovement
devduck.idleMinutes
Development
npm install
code .
Press F5 in VS Code to launch the Extension Development Host.
Package
npm install -g @vscode/vsce
vsce package
Publish
Change the publisher field in package.json, then run:
vsce publish
Privacy
DevDuck does not send your code anywhere. Online jokes are disabled by default. If enabled, DevDuck only fetches a random joke and does not send file content or workspace data.
Optional Pixel Duck Sprite
This project is sprite-ready for CazBee's Ducky 3 asset pack.
To use it:
- Download
ducky_3_spritesheet.png from CazBee's Ducky 3 itch.io page.
- Copy the file into this project at:
media/ducky_3_spritesheet.png
- Run the extension again with
F5.
If the spritesheet is missing, DevDuck automatically falls back to the built-in CSS duck.
The Ducky 3 page lists the asset as Creative Commons Zero v1.0 Universal. Attribution is optional, but a shout-out is appreciated. Recommended credit:
Duck sprite: Ducky 3 by CazBee — https://caz-bee.itch.io/ducky-3
Egg animation
This version uses a transparent 17-frame PNG spritesheet at:
media/egg-hatching-transparent.png
When you click Lay Egg, the egg starts near the duck, drops onto the sidebar floor, rocks, and then plays the hatching spritesheet when clicked.
The green GIF background issue is fixed by using a transparent PNG frame strip instead of the original GIF.
Asset Credit
- Tree decoration:
tree.png from Pixel Art Grass Tileset 32x32 by ma9ici4n.
New controls
This build adds:
- Duck size setting:
devduck.duckSize (40 to 64, default/max 64)
- Ground/base height setting:
devduck.groundHeight (8 to 22, default 14)
- Feed button and feeding animation
- Speech bubble follows the duck and appears directly above it
- Online joke source setting:
devduck.jokeSource
mixed
programming
dad
general
local
Online jokes are still controlled by devduck.enableOnlineJokes. Keep it off for local-only jokes, turn it on to use no-token public joke APIs.
Active Duck Click Behaviour
Clicking the duck now triggers one of several playful actions:
- dash across the sidebar floor
- hop forward
- inspect the tree
- spin around dramatically
- patrol the walking space
The backend no longer overrides click actions with a generic idle message, so the duck feels alive instead of static.
Pixel Speech Bubble
This version includes media/speech-bubble.png, a transparent pixel-art speech bubble.
Duck messages are still dynamic text, but they are rendered inside the sprite-style bubble.
Replace media/speech-bubble.png with your own transparent bubble image if you want a different look.
Egg Result Bubble
After cracking an egg, the result panel now uses the same pixel speech-bubble sprite style instead of the old rectangular modal.