Skip to content
| Marketplace
Sign in
Visual Studio Code>Themes>Calm Eye CareNew to Visual Studio Code? Get it now.
Calm Eye Care

Calm Eye Care

Sushant Singh

|
2 installs
| (0) | Free
Low-strain 'Calm Dark' and 'Calm Paper' color themes plus a customizable, activity-aware break reminder.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Calm Eye Care

Low-strain color themes plus a customizable, activity-aware break reminder — two tools for more comfortable, longer coding sessions in VS Code and Kiro.

Features

Themes

Two themes designed to reduce eye strain: no pure black or white, warm desaturated colors, and syntax distinguished by hue rather than harsh contrast.

  • Calm Dark — a warm, muted dark theme.
  • Calm Paper (Light) — an easy, paper-like light theme.

Pick one with Ctrl/Cmd+K Ctrl/Cmd+T, then choose "Calm Dark" or "Calm Paper (Light)".

Break reminder

Tracks how long you've been actively typing and navigating (not just how long the editor has been open) and nudges you to look away and stretch.

  • Live countdown in the status bar (bottom right).
  • Idle detection: short pauses stop the timer, and a longer absence counts as a real break and resets the timer, so reminders reflect actual screen time.
  • Choose how you're nudged: a standard or prominent notification, a quiet status bar flash, or a translucent editor flash — no sound.
  • Snooze, quiet hours, and a master on/off switch.
  • Synced across windows: one shared timer across every window of the app, so splitting work between windows still counts as continuous time and the reminder fires once. Can be turned off for independent per-window timers.

Settings

Search "Calm Eye Care" in the Settings UI, or edit settings.json.

Setting Default What it does
calmEyeCare.enabled true Master on/off switch for break reminders.
calmEyeCare.intervalMinutes 60 Continuous active minutes before a reminder fires (minimum 30).
calmEyeCare.idleThresholdMinutes 3 No-activity minutes after which the timer pauses.
calmEyeCare.resetAfterBreakMinutes 5 Idle minutes that count as a real break and reset the timer to zero.
calmEyeCare.snoozeMinutes 10 Snooze length when you click "Snooze".
calmEyeCare.quietHoursStart "" e.g. 22:00 — suppress reminders from this time.
calmEyeCare.quietHoursEnd "" e.g. 07:00 — end of quiet hours (wraps past midnight).
calmEyeCare.notificationStyle "information" How the reminder appears: information, warning, statusBarFlash, or editorFlash.
calmEyeCare.statusBarFlashCount 4 Flashes for the statusBarFlash style.
calmEyeCare.editorFlashColor "rgba(212, 167, 106, 0.22)" Overlay color for the editorFlash style (use a translucent color).
calmEyeCare.editorFlashCount 3 Flashes for the editorFlash style.
calmEyeCare.editorFlashUntilDismissed false Keep the editorFlash pulsing until you return to typing, click the status bar, or dismiss it.
calmEyeCare.syncAcrossWindows true Share one break timer across all windows of the app.
calmEyeCare.showReminderInAllWindows true When synced, show the reminder in every window (else only the timer-owning window).

Commands

Open the Command Palette (Ctrl/Cmd+Shift+P) and search for:

  • Calm Eye Care: Pause Break Reminders
  • Calm Eye Care: Resume Break Reminders
  • Calm Eye Care: Take a Break Now
  • Calm Eye Care: Dismiss Break Flash — stop a persistent editorFlash reminder

With syncAcrossWindows on, pause, resume, snooze, and "take a break" apply to every window at once. A $(link) icon in the status bar countdown indicates the timer is shared.

How window sync works

The timer state is kept in a small JSON file in the extension's global storage. One window "leads" (advances the timer and decides when to fire); the others report activity and mirror the shared countdown. If the leading window closes, another takes over automatically. Sync is per-app, so VS Code and Kiro keep separate timers.

Install

  • From a marketplace: search for "Calm Eye Care" in the Extensions view (VS Code Marketplace) or Kiro's Open VSX gallery.
  • From a .vsix: Extensions view → ... menu → "Install from VSIX..." → pick the file.

Development

Requires Node.js. The extension is written in TypeScript under src/ and compiled to out/.

npm install      # install dependencies
npm run compile  # build once (tsc)
npm run watch    # rebuild on change
npm test         # run the unit tests (node --test)
npm run package  # produce calm-eye-care-<version>.vsix

To try it live, open this folder in VS Code or Kiro and press F5 to launch an Extension Development Host with the extension loaded.

The timer logic is split into small, testable pieces:

  • src/configTypes.ts — settings types and the quiet-hours helper (no vscode).
  • src/timerCore.ts — pure timer advance/fire logic.
  • src/timerStore.ts — local and shared (cross-window) state stores.
  • src/breakReminder.ts — the UI layer (status bar, notifications, flashes).

Unit tests for the timer core and the shared store live in src/test/.

Publishing

Releases are automated by GitHub Actions: pushing a v* tag builds the .vsix, publishes to Open VSX (for Kiro and other VS Code forks) and the VS Code Marketplace, and attaches the .vsix to a GitHub Release. Publishing steps run only when the OVSX_PAT and VSCE_PAT repository secrets are configured.

To publish manually:

npm run package
npm run publish:ovsx     # Open VSX (requires OVSX_PAT)
npm run publish:vscode   # VS Code Marketplace (requires VSCE_PAT)

Customizing

  • Colors: edit the files in themes/. Each key follows VS Code's theme color reference. Use "Developer: Inspect Editor Tokens and Scopes" to find the scope for any token you want to recolor.
  • Reminder behavior: the logic lives in src/breakReminder.ts and src/config.ts.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft