Code With Imran Khan
Replace your compiler with Imran Khan — just like she replaced you with someone she liked more!!
A fun VS Code extension that reacts to your code with Imran Khan GIFs, dashboard history, diagnostic counts, and native local audio when compile/run/save reactions happen.
Features
The Activity Bar view shows a compact dashboard with:
- Current Imran Khan GIF reaction
- Error/warning counts and diagnostic scope
- Current reaction state and history storage scope
- Last reaction details
- Recent terminal, task, and save reaction history
- Quick controls for refresh, audio toggle, success preview, failure preview, and clear history
Status Bar Summary
A compact status bar item shows errors/warnings and opens a diagnostic summary when clicked. It respects the same diagnostic scope as the sidebar.
Audio Feedback
The extension plays random local audio clips for successful and failed reactions:
- Terminal compile/run commands
- VS Code build/run tasks
- Save reactions when diagnostics move to a different reaction state
Audio is native and local-only. HTTPS GIFs are supported, but HTTPS audio is intentionally skipped.
Configurable Terminal Detection
Built-in terminal detection supports common commands for Python, JavaScript, TypeScript, shell, PowerShell, Go, Rust, Java, C/C++, C#, and Swift.
You can also add ordered regex rules. Ignore rules are evaluated before tracking rules, so noisy commands can be suppressed cleanly.
{
"code-with-imran-khan.terminal.rulesMode": "builtInPlusCustom",
"code-with-imran-khan.terminal.customRules": [
{
"id": "ignore-watch-tests",
"pattern": "^npm run test:watch",
"action": "ignore"
},
{
"id": "vite-dev",
"pattern": "^npm run dev$",
"languageId": "typescript",
"kind": "run",
"action": "track"
}
]
}
Commands
| Command |
Description |
Code With Imran Khan: Show Diagnostics Summary |
Shows the current diagnostic summary. |
Code With Imran Khan: Toggle Audio |
Mutes or unmutes automatic audio globally. |
Code With Imran Khan: Preview Success Audio |
Plays a random success clip, ignoring cooldown. |
Code With Imran Khan: Preview Failure Audio |
Plays a random failure clip, ignoring cooldown. |
Code With Imran Khan: Refresh Reactions |
Refreshes sidebar/status-bar reactions. |
Code With Imran Khan: Clear Reaction History |
Clears persisted workspace and global dashboard history. |
Requirements
- VS Code 1.109+
- Local audio playback support:
- Windows: PowerShell
System.Media.SoundPlayer
- macOS:
afplay
- Linux:
aplay or paplay
Extension Settings
| Setting |
Type |
Default |
Description |
audio.enabled |
boolean |
true |
Enable or disable automatic audio feedback. |
audio.cooldownSeconds |
number |
2 |
Minimum seconds between terminal/task audio reactions. |
audio.success |
string[] |
assets/audios/ok*.wav |
Local success audio pool. |
audio.fail |
string[] |
assets/audios/e*.wav |
Local failure audio pool. |
diagnostics.scope |
workspace \| activeEditor |
workspace |
Choose diagnostic scope for sidebar and status bar. |
diagnostics.majorErrorThreshold |
number |
3 |
Error count above which the major-error GIF is shown. |
statusBar.enabled |
boolean |
true |
Show or hide the status bar summary. |
history.storageScope |
workspace \| global |
workspace |
Store dashboard history per workspace or globally. |
history.maxEntries |
number |
25 |
Maximum dashboard history entries. |
terminal.rulesMode |
builtInPlusCustom \| customOnly \| builtInOnly |
builtInPlusCustom |
Choose how custom regex rules combine with built-in detection. |
terminal.customRules |
object[] |
[] |
Ordered custom regex terminal rules. |
saveReactions.enabled |
boolean |
true |
Record save reactions and refresh dashboard on save. |
saveReactions.audio.enabled |
boolean |
true |
Allow save audio when the diagnostic reaction state changes. |
saveReactions.cooldownSeconds |
number |
10 |
Minimum seconds between save-triggered audio reactions. |
gifs.sidebarClean |
string |
assets/ok2.gif |
GIF for clean diagnostics. |
gifs.sidebarWarnings |
string |
assets/e1.gif |
GIF for warnings only. |
gifs.sidebarErrorsMinor |
string |
assets/e3.gif |
GIF for errors at or below the threshold. |
gifs.sidebarErrorsMajor |
string |
assets/e5.gif |
GIF for errors above the threshold. |
GIF paths can be relative, absolute, or HTTPS URLs. Audio paths are local files only.
Example Configuration
{
"code-with-imran-khan.audio.enabled": true,
"code-with-imran-khan.audio.cooldownSeconds": 4,
"code-with-imran-khan.diagnostics.scope": "activeEditor",
"code-with-imran-khan.history.storageScope": "workspace",
"code-with-imran-khan.history.maxEntries": 25,
"code-with-imran-khan.saveReactions.enabled": true,
"code-with-imran-khan.saveReactions.cooldownSeconds": 10
}
Release Notes
See CHANGELOG.md.