Adaptive Studio
One extension. Infinite experiences.
A living VS Code theme engine that blends time, weather, git branch, language, coding activity, focus mode, seasons, and more into one coherent, readable theme — in real time.

Install · Features · Getting Started · Settings · FAQ
Overview
Adaptive Studio is not "just another theme pack." Instead of picking one static color theme, you turn on any combination of independent modules — time of day, weather, git branch, active language, coding activity, ambient hue breathing, focus mode, error stress, seasons, a per-project Workspace DNA palette, a code heatmap, music mood, and AI project detection — and the engine blends all of their contributions into a single, legible theme.
37 handcrafted base themes ship in the box across three collections — Marketplace, Planet, and Biome — any of which can serve as the canvas every module layers on top of.
The Adaptive Studio dashboard — theme gallery, module toggles, and a live intensity slider.
Why this isn't "just another theme pack"
Every module is optional, and every module is subtle by design. The Theme Engine (src/core/themeEngine.ts) merges module contributions by weight, blending colors rather than overwriting them, so five modules enabled at once still produce a legible, intentional-looking result instead of a flashing mess.
Nothing polls. The engine recomputes only in response to real events — a keystroke, a save, a branch switch, a diagnostics change, or a once-a-minute clock tick for time-of-day scheduling — and every recomputation is debounced so rapid input never causes UI lag.
✨ Feature modules
| Module |
What it does |
| Time Adaptive Theme |
Smoothly blends warm mornings → neutral afternoons → golden evenings → dark-blue nights → OLED-black midnights, on a fully customizable schedule. |
| Weather Adaptive Theme |
Optional. Tints accents to sunny/cloudy/rain/thunderstorm/snow/fog. Requires an API key; silently does nothing without one. |
| Git Branch Theme |
Gives main, develop, feature/*, hotfix/*, release/* (and any custom pattern) a distinct accent. |
| Programming Language Theme |
Shifts only accent colors to match the active file's language — never touches background/foreground readability. |
| Coding Activity Theme |
Very gradually intensifies accents as a session becomes more productive (lines written, files touched, commits, session length). |
| Ambient Mode |
Slow sine-wave hue "breathing" over minutes, not seconds. No flashing; speed and intensity are configurable. |
| Focus Mode |
After sustained continuous typing, fades the activity bar / sidebar; restores instantly on pause. |
| Error Stress Detection |
Calms (desaturates) the palette as diagnostics pile up, instead of intensifying reds. |
| Seasonal Themes |
Light seasonal accent plus a few optional holiday windows. |
| Workspace DNA |
Deterministically derives a unique, stable palette from the project's identity — the same repo always looks the same. |
| Code Heatmap |
Warms the active tab's accent for frequently-edited files, cools it for rarely-touched ones. |
| Music Adaptive Theme |
Manual mood selector (lo-fi / rock / jazz / electronic) tints accents; structured so a future Spotify/local-media integration can drive it automatically. |
| AI Project Detection |
Lightweight, cached workspace scan detects React/Next.js/Vue/Angular/Python/Node/Rust/Go/Flutter/Unity/ML and biases the palette. |
Also included:
- 🔥 Coding Streak — daily/weekly activity tracked locally, with Bronze → Silver → Gold → Diamond → Cosmic reward tiers.
- 🎮 RPG-style XP/Level system — XP for saves, lines written, files edited, commits, and completed focus sessions.
Both systems are fully local — no accounts, no network calls.
🚀 Getting started
- Install Adaptive Studio from the Marketplace and open the Adaptive Studio icon in the Activity Bar.
- Toggle whichever modules sound interesting in the Modules view, or run
Adaptive Studio: Open Dashboard for the full experience with a theme gallery and live intensity slider.
- Pick a base theme from the Theme Gallery view or the dashboard — this is the canvas every enabled module layers on top of.
- Everything else happens automatically.
Useful commands
Open the Command Palette (Ctrl/Cmd+Shift+P) and run:
| Command |
Description |
Adaptive Studio: Open Dashboard |
Opens the full dashboard webview. |
Adaptive Studio: Toggle Module... |
Quickly enable/disable a single module. |
Adaptive Studio: Apply Theme... |
Switch the active base theme. |
Adaptive Studio: Regenerate Workspace DNA Palette |
Re-derives the current project's DNA palette. |
Adaptive Studio: Export Theme Profile... |
Saves your current module/theme configuration to a file. |
Adaptive Studio: Import Theme Profile... |
Loads a previously exported configuration. |
Adaptive Studio: Set Weather Location... |
Configures the optional Weather module. |
Adaptive Studio: Recompute Theme Now |
Forces an immediate recalculation of the blended theme. |
Adaptive Studio: Show Coding Stats & XP |
Opens your streak and XP progress. |
⚙️ Requirements
- Visual Studio Code
1.XX.0 or later. (Update this to match your engines.vscode value in package.json.)
- No external dependencies required for core functionality.
- An internet connection is only needed if you enable the optional Weather module and supply an API key — every other module runs entirely offline.
🛠️ Settings
All settings live under adaptiveStudio.*. See package.json's contributes.configuration for the complete, documented list. Highlights:
| Setting |
Description |
adaptiveStudio.modules.<id>.enabled |
Per-module on/off switch. |
adaptiveStudio.theme.baseTheme |
Which of the 37 base themes to use. |
adaptiveStudio.theme.intensity |
Global strength of every adaptive layer relative to the base theme (0 = base theme only, 1 = full effect). |
adaptiveStudio.modules.time.schedule / transitionMinutes |
Customize the time-of-day boundaries and how smoothly they blend. |
adaptiveStudio.modules.weather.apiKey / city |
Optional weather integration (OpenWeatherMap-compatible). |
adaptiveStudio.modules.git.branchColors |
Customize or extend branch identity colors. |
adaptiveStudio.scheduler.schedules |
Define Smart Scheduler entries (work hours, night coding, weekends, ...) that switch the base theme automatically at set times. |
adaptiveStudio.xp.multiplier |
Tune how quickly XP accrues. |
adaptiveStudio.streak.resetHour |
Set the local hour at which the daily streak resets. |
🔒 Privacy
Telemetry is off, structurally — there is no analytics or telemetry client anywhere in the codebase, only a local OutputChannel logger. All progression data (XP, streaks, heatmap, Workspace DNA cache, favorites) is stored in VS Code's local ExtensionContext.globalState and never leaves your machine.
The only external network call anywhere in the extension is the optional Weather module's HTTPS request, and it only fires once you've supplied your own API key.
❓ FAQ
Does this replace my current color theme?
Not exactly — pick any of the 37 included base themes as your canvas, and enabled modules adjust it in real time. You can also set adaptiveStudio.theme.intensity to 0 to use a base theme with zero adaptive effect.
Will enabling several modules at once make my editor flash or feel chaotic?
No. The Theme Engine blends every enabled module's contribution by weight rather than overwriting the previous one, and recomputation is debounced and event-driven (not polling), so multiple modules stay coherent and calm.
Does Adaptive Studio phone home?
No. See Privacy above — the only optional network call is the Weather module, and only if you configure it.
Can I write my own module?
Yes — see Extending Adaptive Studio below.
🐛 Known issues
No known issues at this time. If you run into one, please open an issue with your VS Code version, OS, and the modules you had enabled.
📝 Release notes
See CHANGELOG.md for the full version history.
🤝 Contributing
Issues and pull requests are welcome. Please see CONTRIBUTING.md for guidelines before submitting a PR.
Building from source
npm install
npm run compile # or: npm run watch
Then press F5 in VS Code (with this folder open) to launch an Extension Development Host with Adaptive Studio loaded, or package it yourself:
npm install -g @vscode/vsce
vsce package
This produces an adaptive-studio-<version>.vsix you can install via Extensions → ... → Install from VSIX.
Architecture
src/
core/ Theme Engine, Config Manager, State Manager, shared types
services/ Git, Weather, Music, Workspace Analyzer, XP, Diagnostics, Scheduler
modules/ One file per feature module (implements ThemeModule)
themes/ 37 handcrafted base theme definitions (Marketplace/Planet/Biome)
ui/ Dashboard webview, status bar, activity-bar tree views
utils/ Dependency-free color math, debounce, logger
extension.ts Wires everything together; the only file that "knows" about all of it
Theme Engine flow: Base Theme → each enabled module's computeLayer() → weighted color blend → merged token rules → written to workbench.colorCustomizations / editor.tokenColorCustomizations (workspace-scoped when a folder is open, so Workspace DNA can make each project genuinely distinct).
No unnecessary dependencies: the runtime has zero npm dependencies — color math, hashing, and blending are all hand-rolled in utils/color.ts rather than pulled in from a library, keeping install size and attack surface minimal.
Extending Adaptive Studio
Adding a new module is three steps:
- Add its id to the
ModuleId union in src/core/types.ts and an adaptiveStudio.modules.<id>.enabled setting in package.json.
- Implement
ThemeModule in src/modules/yourModule.ts — return a ThemeLayer (colors/token rules + a weight) from computeLayer().
- Register it in
src/extension.ts via engine.registerModule(...).
The engine, dashboard, and Modules tree view all pick it up automatically.
📄 License
Released under the MIT License.
If Adaptive Studio makes your editor feel more alive, consider leaving a ⭐ review on the Marketplace — it helps a lot.
Made with ❤️ by Anand Shah for the developer community