A retro pixel-art cigarette consumption tracker for developers, right inside VS Code.
Click the status bar to log a cigarette. Watch a tiny chunky progress bar fill up over the day. Open the dashboard for a CRT-styled summary with money burned and a 7-day chart. Get random one-liners after some cigarettes, and gentle warnings when you blow past your daily target.
Just for fun — does not endorse smoking, and the messages will give you some side-eye when you really overdo it.
- Counter
$(flame) [███░░] 12/20— click to add +1 immediately, no menu in the way. - Menu icon
$(list-unordered)— quick pick of every action (undo, reset, dashboard, refresh, currency, price). - Dashboard icon
$(graph)— jump straight to the CRT dashboard.
The progress bar fills with chunky Unicode blocks. The icon and color escalate ($(flame) → $(zap) → $(error)) as you cross half-target and target.
Five live stat rows, each clickable:
| Row | Description | Click |
|---|---|---|
| Today | gDailySmoked / dailyTarget with flame icon |
adds +1 |
| Lifetime | total ever logged | opens dashboard |
| Money burned | currency × cost × total |
opens dashboard |
| Last smoke | relative time (2h ago) |
— |
| Daily progress | Unicode progress bar | — |
Title bar has +, −, Dashboard, Refresh, Reset icons — no Command Palette needed.
Retro CRT terminal with scanlines, blinking cursor, four stat cards, a 7-day ASCII chart of cigarettes per day, and arcade-style buttons. Auto-switches between dark CRT (phosphor green on black) and light CRT (sepia on paper) following your VS Code theme. Force one or the other with the cigarette-status.dashboardTheme setting.
- Milestone messages — random one-liner from a library of 70+ developer jokes after some cigarettes. Frequency is configurable (default ~30% per stick).
- Excess warnings — fires when you hit and exceed the daily target, with a separate set of concerned-but-still-funny messages.
- Idle reminder — pings you if no cigarette has been logged for
timerIntervalminutes (default 20).
All three streams can be toggled / tuned in settings.
- Install the extension. The status bar shows the counter immediately.
- Click the flame counter for +1. Click again for +2. That's it.
- Click the
$(list-unordered)icon for the action menu. - Click the
$(graph)icon (or any sidebar item, or run Cigarette: Open Dashboard) to see the full CRT dashboard. - Run Cigarette: Change Currency from the Command Palette or the menu icon to switch to IDR, EUR, GBP, JPY, and 8 other presets (or enter a custom symbol).
- Run Cigarette: Set Price per Cigarette to update the per-stick cost.
| Setting | Default | Description |
|---|---|---|
cigarette-status.dailyTarget |
20 |
Daily target. Triggers warning notifications when exceeded. |
cigarette-status.timerInterval |
20 |
Minutes of inactivity before an idle reminder fires. 0 disables. |
cigarette-status.costPerCigarette |
1.5 |
Price per cigarette used for money-burned calculation. |
cigarette-status.currencySymbol |
$ |
Currency symbol shown in dashboard and tree. |
cigarette-status.enableMilestoneMessages |
true |
Random funny one-liners after some cigarettes. |
cigarette-status.enableExcessWarnings |
true |
Warnings when daily target is hit / exceeded. |
cigarette-status.messageFrequency |
0.3 |
Probability (0-1) of a milestone message per cigarette. |
cigarette-status.dashboardTheme |
auto |
auto follows VS Code, or pick dark / light. |
All commands are available from the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) under the Cigarette category, and most are also reachable via the status bar or sidebar.
- Cigarette: Add Cigarette (+1)
- Cigarette: Undo Last Cigarette (-1)
- Cigarette: Open Dashboard
- Cigarette: Quick Actions Menu
- Cigarette: Show Count
- Cigarette: Reset Cigarette Counter
- Cigarette: Refresh Cigarette View
- Cigarette: Change Currency
- Cigarette: Set Price per Cigarette
All counts and history live in VS Code's global state (globalState), so they're synced across windows on the same machine and survive restarts. The daily counter resets automatically on a new local day. The dashboard's weekly chart is built from the last 7 days of recorded history.
Open an issue at github.com/lutfizp/Cigarette-Status/issues.
MIT — see LICENSE.md.
