CodeGiri - Bangladeshi Coding Companion 🎭
A humorous Bangladeshi meme-powered coding companion that reacts to coding mistakes, build failures, merge conflicts, and debugging events with regional Bangla roasts and funny sound effects.
Features
- Regional Roasts: Choose from 5 Bangladeshi regions (Dhaka, Mymensingh, Barishal, Noakhali, Chottogram) for authentic regional humor
- Smart Detection: Automatically detects VS Code diagnostics (errors, warnings, lint issues)
- Sound Effects: Optional sound effects for different events
- Toast Notifications: Funny Bangla messages displayed as toast notifications
- Parent Mode: Late-night coding reminders at 3 AM
- Achievement System: Unlock achievements for coding milestones
- Customizable Settings: Full control over roast intensity, sound, and region
Installation
Prerequisites
- Node.js (v18 or higher)
- npm or yarn
- VS Code (v1.85.0 or higher)
Development Installation
- Clone the repository:
git clone https://github.com/foysalpranto121/CodeGiri.git
cd codegiri
- Install dependencies:
npm install
- Compile the TypeScript code:
npm run compile
- Run the extension in development mode:
- Press
F5 in VS Code to launch a new Extension Development Host window
- Or use the command palette:
Run Extension
Production Installation
- Package the extension:
npm install -g vsce
vsce package
- Install the
.vsix file:
code --install-extension FoysalAhmedPranto-codegiri-1.0.0.vsix
Or publish to the VS Code Marketplace and install from there.
Configuration
Open VS Code Settings and search for "CodeGiri" to configure:
Settings
codegiri.enabled: Enable or disable CodeGiri roasts (default: true)
codegiri.region: Select your preferred region (default: Dhaka)
- Dhaka
- Mymensingh
- Barishal
- Noakhali
- Chottogram
codegiri.soundEnabled: Enable sound effects (default: true)
codegiri.roastIntensity: Roast intensity level (default: medium)
codegiri.parentMode: Enable parent mode for late-night reminders (default: false)
codegiri.achievementsEnabled: Enable achievement system (default: true)
Usage
Commands
Open the Command Palette (Ctrl+Shift+P or Cmd+Shift+P) and use:
CodeGiri: Change Region - Change your preferred region
CodeGiri: Toggle Roast Mode - Enable/disable roasts
CodeGiri: Test Roast - Test a random roast
CodeGiri: Open Settings - Open the settings webview
CodeGiri: Show Achievements - View your achievements
Status Bar
The CodeGiri status bar item shows your current region and allows quick access to settings.
Automatic Reactions
CodeGiri automatically reacts to:
- Errors: Shows error roasts when diagnostics detect errors
- Warnings: Shows warning roasts for lint issues
- Build Failures: Reacts to terminal build failures
- Merge Conflicts: Special roasts for Git merge conflicts
- npm Install Failures: Crying animation and sound effect
- Too Many Errors: Special message when error count exceeds 20
- Successful Builds: Celebration message
- Late Night Coding: Parent mode reminders at 3 AM
Regional Roasts
Dhaka
- "Boss production down 💀"
- "Deploy disos? Astaghfirullah"
Mymensingh
- "Mamaa eta abar ki likhla?"
- "Compiler o lajjai crash khaise"
Noakhali
- "Ki korsos miaaa?"
- "Bug na, pura bipod"
Chottogram
- "Syntax e agun"
- "Debug koren, dua poren"
Barishal
- "Code kom, problem beshi"
- "Eta dekhe IDE o voy paisey"
Achievements
Unlock achievements by coding:
- First Successful Build: Complete your first successful build
- 100 Errors Fixed: Fix 100 errors in your code
- Merge Conflict Survivor: Survive a merge conflict
- Night Owl: Code past 3 AM with parent mode enabled
- Roast Master: Receive 50 roasts from CodeGiri
Sound Effects
CodeGiri includes built-in sound effects designed to complement notifications and events. These can be enabled or disabled via the configuration settings.
The extension features native background audio playback for:
- Error: Plays when diagnostics detect syntax or compilation errors.
- Warning: Plays for linting warnings or minor code issues.
- Success: Plays upon successful builds and task completions.
- Conflict: Triggered during Git merge conflict events.
- Cry: Plays on installer and environment failures (such as
npm install failures).
Architecture
To provide a seamless, non-intrusive experience, CodeGiri handles sound playback natively in the background without launching external GUI media players or opening empty VS Code editor tabs:
- Windows: Executed asynchronously in the background using PowerShell leveraging the .NET
System.Windows.Media.MediaPlayer API.
- macOS: Utilizes the native command-line
afplay utility.
- Linux: Proactively falls back through standard system audio players (
paplay, pw-play, play, aplay, mpg123, mplayer) to find an available playback engine.
Development
Project Structure
codegiri/
├── src/
│ ├── data/
│ │ └── roastData.ts # Regional roast messages
│ ├── managers/
│ │ ├── soundManager.ts # Sound effect management
│ │ └── achievementManager.ts # Achievement tracking
│ ├── ui/
│ │ └── settingsPanel.ts # Settings webview
│ └── extension.ts # Main extension entry point
├── sounds/ # Sound effect files
├── webview/ # Webview assets
├── package.json # Extension manifest
├── tsconfig.json # TypeScript configuration
└── README.md # This file
Building
# Compile TypeScript
npm run compile
# Watch for changes
npm run watch
# Lint code
npm run lint
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature)
- Commit your changes (
git commit -m 'Add some AmazingFeature')
- Push to the branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Inspired by the vibrant Bangladeshi coding community
- Built with VS Code Extension API
- TypeScript for type safety
Support
If you encounter any issues or have suggestions, please open an issue on GitHub.
Changelog
Version 1.0.0
- Initial release
- 5 regional roast options
- Sound effect support
- Achievement system
- Parent mode
- Settings webview
- Status bar integration%
Made with ❤️ for Bangladeshi developers everywhere