JoyBoy
Celebrate every commit.
JoyBoy is a VS Code extension that celebrates developers' progress by showing a calm, positive notification whenever a Git commit is successfully created. The goal is to add a small moment of joy and motivation to a developer's daily workflow—without being distracting or noisy.
Features
- Automatic Commit Detection: Automatically detects when you create a new Git commit
- Positive Notifications: Shows encouraging, randomized messages with emojis
- Status Bar Celebrations: Optional status bar display for non-intrusive celebrations
- Message Packs: Choose from multiple message packs (default, minimal, celebratory)
- Optional Sound Effects: Subtle sound effects to enhance the celebration experience
- Smart Cooldown: Prevents notification spam during rapid commits, rebases, or amends
- Zero Configuration: Works out of the box with sensible defaults
- Respectful of Focus: Calm, non-intrusive notifications that don't interrupt your flow
- Multi-Repository Support: Works with all repositories in your workspace
How It Works
JoyBoy monitors your Git repositories and detects when the HEAD commit changes. When a new commit is detected, it shows a positive, encouraging notification. The extension includes a cooldown mechanism to prevent multiple notifications during rapid commit sequences.
Extension Settings
JoyBoy contributes the following settings:
Core Settings
joyboy.enabled: Enable/disable JoyBoy celebration notifications (default: true)
joyboy.cooldownSeconds: Cooldown period in seconds between notifications (default: 5, range: 1-60)
Status Bar Settings
joyboy.statusBar.enabled: Enable status bar celebrations (default: true)
joyboy.statusBar.durationSeconds: How long to show celebration in status bar (default: 3, range: 1-30)
joyboy.statusBar.only: Show only in status bar (no notification popup) (default: false)
Message Settings
joyboy.messagePack: Active message pack(s) - single string or array of strings. Available: "default", "minimal", "celebratory" (default: "default")
Sound Settings
joyboy.sound.enabled: Enable sound effects (default: true)
joyboy.sound.pack: Select sound pack - "bells", "anime", or "solo-levelling". Sounds are randomly selected from the chosen pack (default: "bells")
Other Settings
joyboy.celebrateAmend: Celebrate amend commits (default: true)
joyboy.pollInterval: Polling interval in seconds for detecting commits made outside VS Code (default: 3, range: 1-10)
joyboy.detectExternalCommits: Detect commits made outside VS Code via polling (default: true)
joyboy.quietHours: Time ranges when celebrations are disabled, e.g. ["09:00-10:00", "14:00-15:00"] (default: [])
joyboy.notification.duration: Auto-dismiss notification after N seconds; 0 = manual dismiss (default: 0, range: 0-30)
Example Configuration
You can configure JoyBoy in your VS Code settings (.vscode/settings.json or User Settings):
{
"joyboy.enabled": true,
"joyboy.cooldownSeconds": 5,
"joyboy.statusBar.enabled": true,
"joyboy.statusBar.durationSeconds": 3,
"joyboy.messagePack": "default",
"joyboy.sound.enabled": true,
"joyboy.sound.pack": "bells"
}
Advanced Configuration Examples
Status bar only mode (no popup notifications):
{
"joyboy.statusBar.enabled": true,
"joyboy.statusBar.only": true
}
Multiple message packs:
{
"joyboy.messagePack": ["default", "minimal"]
}
Celebratory pack:
{
"joyboy.messagePack": "celebratory"
}
Select Bell pack (default):
{
"joyboy.sound.pack": "bells"
}
Select Anime voice pack:
{
"joyboy.sound.pack": "anime"
}
Select Solo Levelling pack:
{
"joyboy.sound.pack": "solo-levelling"
}
Usage
- Install the extension
- Make a Git commit (via VS Code's Source Control panel or command line)
- Enjoy the positive notification!
The extension works automatically in the background. No commands or setup required.
Manual Testing
You can manually trigger a celebration notification using the command palette:
- Press
Ctrl+Shift+P (or Cmd+Shift+P on Mac)
- Type "Celebrate Commit"
- Select the command to see a sample notification
Requirements
- VS Code 1.105.0 or higher
- Git extension (built into VS Code)
- A Git repository
Known Issues
None at this time. If you encounter any issues, please report them on the GitHub repository.
Release Notes
0.0.1
Initial release of JoyBoy:
- Automatic commit detection (Git HEAD change, including external commits via polling)
- Positive, randomized notifications with message packs (default, minimal, celebratory)
- Status bar celebrations (optional, with duration and “status bar only” mode)
- Sound packs: bells, anime, Solo Levelling (random sound from selected pack)
- Cooldown and quiet hours to limit notifications
- Optional celebration of amend commits
- Enable/disable and configurable cooldown period
Philosophy
JoyBoy is intentionally small. Its power comes from being:
- Invisible until needed: Works silently in the background
- Delightful when it appears: Positive, encouraging messages
- Easy to remove, but hard to miss: Simple to disable, but adds value when enabled
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
Licensed under the MIT License.
Enjoy your commits! 🎉