Inspiration
AI coding assistants are powerful, but managing several personal Windsurf accounts and keeping track of their usage limits is repetitive and disruptive. We wanted to turn account switching from a manual, error-prone interruption into a smooth background workflow, so developers can stay focused on building.
What it does
Windsurf Switch is a VS Code/Windsurf extension for managing multiple Windsurf accounts in one place.
It provides:
- A visual sidebar for adding, viewing, and managing accounts
- One-click account switching and a keyboard shortcut for switching to the next account
- Batch account import in several common formats
- Real-time daily and weekly quota visibility, including reset and expiration information
- Configurable quota-aware auto-switching: when the current account reaches a chosen weekly-usage threshold, the extension finds the next available account
- Manual “check and switch now” controls, diagnostics export, and localized UI support
How we built it
We built Windsurf Switch as a VS Code-compatible extension using JavaScript and the VS Code Extension API.
The extension is organized around focused services for account management, quota retrieval, account switching, automatic switching, diagnostics, and the sidebar webview. Account data is managed locally, while the interface provides a simple card-based workflow for checking usage and changing accounts.
We also used:
- Webpack for bundling
- sql.js for local data handling
- UUID for stable account identifiers
- VS Code commands, settings, status bar actions, and webview views for a native IDE experience
Challenges we ran into
The hardest challenge was making account switching reliable across IDE reloads. Switching an account can restart or reload the extension host, so we designed a two-phase switching flow that preserves pending state and completes the process once the IDE is ready again.
Another challenge was quota polling. We needed to keep quota data fresh without creating noisy notifications or unnecessary requests. We addressed this with configurable polling intervals, thresholds, cooldown logic, and a fallback behavior when no eligible account is available.
Finally, the project needed to support different user workflows—from quick keyboard-driven switching to visual account management and batch onboarding.
Accomplishments that we're proud of
- Built a complete multi-account workflow directly inside the developer’s IDE
- Created a practical automatic switching mechanism based on configurable quota thresholds
- Made onboarding faster through flexible batch-import formats
- Added reliable state handling around reloads and background operations
- Packaged the project as a distributable
.vsixextension
What we learned
This project taught us that developer tools succeed when they remove friction without demanding attention. Small details—such as preserving state across reloads, avoiding repeated alerts, and exposing useful controls exactly where developers work—make a major difference.
We also learned how to structure a VS Code extension around independent services, how to build responsive webview-based interfaces, and how to balance automation with clear user control.
What's next for Windsurf Switch
Next, we plan to improve quota analytics, add richer account-health indicators, support more configurable switching strategies, and make the onboarding experience even smoother.
Our long-term goal is to make Windsurf Switch a polished productivity companion that helps developers spend less time managing their AI coding workflow and more time creating.
Log in or sign up for Devpost to join the conversation.