MCPcopy Index your code
hub / github.com/chaogei/windsurf-account-manager-simple

github.com/chaogei/windsurf-account-manager-simple @v1.8.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.8.1 ↗ · + Follow
877 symbols 1,897 edges 61 files 319 documented · 36% updated 48d agov1.8.1 · 2026-05-21★ 51914 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Windsurf Account Manager - Simple

A Windsurf multi-account management desktop application built with Tauri + Vue 3 + TypeScript, designed to manage multiple Windsurf accounts with features including credit reset, billing query, one-click account switching, subscription payment, and more.

⚠️ Free Software Notice: This software is completely free. If you paid for it, you have been scammed!

📦 Project Information

  • Current Version: 1.7.9
  • License: AGPL-3.0
  • Development Language: Rust + TypeScript
  • Supported Platforms: Windows 10/11
  • Architecture: Tauri 2.x Desktop Application

🌐 中文版本: README.md

📱 Community

WeChat Group QR Code      QQ Group QR Code


🖥️ Software Interface

Main Interface

Account Info

Settings


✨ Features

🔐 Account Management

  • Add/Edit/Delete Accounts - Complete CRUD operations for accounts
  • Account Grouping - Custom groups for managing multiple accounts
  • Tag System - Add custom tags to accounts
  • Real-time Status Display - Show plan type, credit balance, expiration time, etc.
  • Batch Operations - Batch select, reset, delete accounts
  • Encrypted Storage - AES-256-GCM encryption, keys stored in system keychain

💳 Credit Reset

  • One-click Credit Reset - Reset credits via seat update API
  • Smart Seat Rotation - Auto-rotate between 3/4/5 seats
  • Batch Reset - Support multiple accounts simultaneously (max 5 concurrent)
  • Team Batch Reset - One-click reset all team members' credits
  • Auto Reset Schedule - Set scheduled tasks for automatic credit reset

👥 Team Management

  • View Team Members - List all team members
  • Invite Members - Invite new members via email
  • Remove Members - Remove specified members from team
  • Team Credit Management - Unified management of team member credits

🔄 One-click Account Switching

  • Quick Account Switch - Fast switch to other Windsurf accounts
  • Auto Token Refresh - Auto-refresh access_token using refresh_token
  • OAuth Callback - Auto-complete login via windsurf:// protocol
  • Machine ID Reset - Reset device identifier for multi-device use (requires admin privileges)

🔧 Seamless Switching Patch

  • Auto-detect Windsurf Path - Automatically find Windsurf installation
  • One-click Patch - Modify extension.js for seamless switching
  • Remove Timeout Limit - Remove 180-second OAuth timeout
  • Auto Backup - Auto-backup original file before patching (max 3 copies)
  • One-click Restore - Restore original state from backup
  • Auto Restart Windsurf - Auto-restart Windsurf after patch application

🛑 Cunzhi Feature

  • MCP Tool Integration - Provide dialog-helper and confirm tools
  • Dialog Assistant - Help users confirm operations and input information
  • Cross-platform Support - Support Windows, Linux, macOS
  • Binary File Management - Copy platform-specific files during build
  • Smart Packaging - Avoid packaging all platform files, reduce installer size

💰 Payment Related

  • Virtual Card Generation - Generate virtual credit card info for payment testing
  • Custom BIN - Support custom BIN number or BIN range
  • Private Payment Window - Open Stripe payment page in incognito browser window
  • Alipay/WeChat Payment - Support domestic payment methods (donation)

📊 Data Query

  • Billing Query - Query plan, quota, usage, etc.
  • Subscription Status - Show subscription type, expiration, next billing date
  • Usage Statistics - View credit usage and remaining quota
  • Global Refresh - One-click refresh all account info

⚙️ System Settings

  • Proxy Configuration - Support HTTP proxy settings
  • Lightweight API Mode - Use GetPlanStatus instead of GetCurrentUser to reduce requests
  • Detailed Results - Optional display of detailed API response
  • Operation Logs - Record all operation history, support export

🔒 Data Security

  • System Keychain - Use Windows Credential Manager to store encryption keys
  • AES-256-GCM Encryption - All sensitive data encrypted
  • Local Storage - Data stored locally only, no server upload
  • Operation Logs - Complete operation records for auditing

🌐 Multi-client Support

  • Windsurf Standard - Full support for official Windsurf client
  • Windsurf - Next - Support Next version with independent configuration and management
  • Auto-detection - Automatically identify and adapt to different client versions
  • Independent Configuration - Different clients use independent config files and data storage

🤖 Devin Account System

  • auth1_token Authentication - Support Devin's auth1_token authentication mechanism
  • session_token Management - Auto-refresh session_token with 32-day placeholder mechanism
  • Multi-organization Support - Support Devin multi-organization account management
  • Smart Refresh - Force refresh triggered by 401 errors
  • Key Field Backfill - Auto-supplement key fields like product parameter

📜 Version History

v1.7.10 (2026-05-08)

  • Initial UI load performance optimization: Added lazy rendering to heavy el-tab-pane sections in Settings, Team Management, Auto Reset, Account Info, and related dialogs, preventing all tables, forms, and information panels from mounting when the parent dialog first opens
  • On-demand mounting for nested dialogs: Hidden child dialogs in Team Management, Team Settings, Account Info, Settings backups, Auto Reset editing, and related flows now use v-if on-demand mounting to reduce initial DOM size and hidden form initialization cost
  • Deferred chart library loading: ECharts in AnalyticsDialog is now dynamically imported only when the analytics dialog initializes charts, keeping the charting library out of the account page initial loading path
  • Responsive account panel layout optimization: Account card grids now adjust column count and minimum card width based on available space; card footer action buttons now fluidly scale button size, icon size, and gaps based on card width, while the top selected-account batch toolbar stays on a single row and fluidly expands or tightens button size, icon size, search/sort widths, and button gaps based on available space. This fixes right-side button clipping and uneven toolbar spacing in narrow-screen, high-column, or multi-selection layouts
  • Account card max-width fix: Account grid columns now use fixed maximum widths with left alignment, fixing the issue where the only card on the last page or in filtered results could be stretched across the full row by auto-fit + 1fr
  • Default window width optimization: Adjusted the default window width to fit three account-card columns with the sidebar collapsed, reducing the horizontal empty space caused by only showing two columns on first launch
  • Pagination switching performance optimization: Switching to 50/100 items per page or changing pages now renders the first 20 account cards immediately and fills the rest in animation-frame batches, while paginated requests ignore stale responses and skip duplicate requests to reduce long stalls from mounting many complex cards at once
  • Themed blank-card fix: Removed CSS content-visibility lazy-paint placeholders from themed account cards, fixing the issue where lower cards on 100-items-per-page views could show blank shells without their contents being painted promptly
  • Sidebar expansion performance optimization: Sidebar expand/collapse now staggers the container width animation and Element Plus menu collapse state updates, keeps the title text mounted and switches it with opacity/translate transitions, and reduces themed sidebar backdrop blur and large-shadow repaint cost to minimize click-to-expand stutter
  • Default theme adjustment: Fresh installs and missing-theme configurations now default to the native light theme original-light, and the legacy default aurora is migrated to original-light once; frontend theme defaults, settings defaults, and backend configuration defaults stay aligned
  • On-demand Team Management data loading: Team Management now loads only the default members tab on open; invitations, my invitation, pending requests, and other tab data are requested only when their tabs become active, while avoiding duplicate member loading when reopening from a non-default tab
  • Account Info rendering optimization: User details, Firebase, API Keys, Provider Key, and other information tabs now render lazily while preserving the existing logic that loads API Key / Provider Key data only when those tabs are selected
  • Build error fix: Removed an invalid leftover clientDisplayName assignment from SettingsDialog.vue, fixing vue-tsc TS2304 / TS2339 build errors

v1.7.8 (2026-05-04)

  • Windsurf new login protocol adaptation: Windsurf backend updated WindsurfPostAuth endpoint to require X-Devin-Auth1-Token HTTP header. Added the header in devin_auth_service.rs::windsurf_post_auth; all Devin login/registration/multi-org selection flows automatically benefit
  • Cross-page selection batch operation optimization: New get_accounts_by_ids backend API (SQLite WHERE id IN (...) precise query) replaces the old approach of getAllAccounts() loading 100K+ records then filtering on frontend. Export-selected, batch plan change, etc. improve from seconds to milliseconds
  • SQLite 32766 variable limit: get_accounts_by_ids and update_group_by_ids auto-batch queries (500 per batch), supporting arbitrary ID counts
  • Smart full-select export: when selected count ≥ total, falls back to single getAllAccounts() query to avoid unnecessary batching
  • Batch import real-time progress feedback: Full-concurrent import mode now shows per-account completion count (Import progress: 3/10(✓ xxx@email.com)), replacing the previous static message that only updated after all completed; throttled UI refresh (500ms) after each successful account
  • Registration/import email dedup optimization: All write paths (add_account_by_refresh_token / add_account_by_devin_login / add_account_by_devin_with_org / persist_devin_account_from_login_result, 6 locations total) changed email dedup from get_all_accounts() full-load iteration to SQLite email_exists() index query. Memory overhead drops from tens of MB to ~0; 20-concurrent registrations no longer spike memory
  • Pro trial eligibility check fix: check_pro_trial_eligibility command changed from receiving frontend authToken to receiving account_id; backend reads full account from SQLite to construct correct AuthContext (auto-distinguishes Firebase/Devin). Fixes Devin accounts always falsely reporting "eligible". Retains protobuf body token + adds with_auth headers for dual authentication
  • Auto-open payment page auth fix: get_trial_payment_link_enhanced command similarly changed to receive account_id; backend fetches token + constructs correct AuthContext. Fixes Devin account 401 errors when "auto-open payment page" is enabled
  • Seamless account switch patch synced with main project: switch_account_commands.rs adds OperationLog import, already_patched check (avoids misleading re-application logs), operation log recording after successful switch; patch_commands.rs apply/revert messages now use dynamic config.process_name instead of hardcoded strings, check_seamless_status variable names aligned
  • Backup system overhaul: Upgraded from single-file accounts_*.json to directory-based backup_YYYYMMDD_HHMMSS/ containing accounts.db + all JSON files (6 total); list_backups / restore_from_backup / delete_backup / cleanup all switched to directory operations; added calculate_dir_size helper; Settings gains auto_backup_enabled / backup_interval / backup_max_count fields; lib.rs adds auto-backup task (1-minute startup delay, configurable interval loop)
  • Statistics page upgrade: Backend get_stats adds 13 new fields (plan distribution, active/inactive subscription counts, team owners, disabled accounts, quota stats, tag/group/operation-type distributions, Token/RefreshToken counts); frontend StatsDialog.vue upgraded from 3 simple number cards to full 9-section panel (account overview, subscriptions & auth, special accounts, quota, plan/group/tag/operation-type distributions, system settings)
  • Silent account add mode: addAccount / appendLocalAccount no longer trigger fetchPage() full-page refresh or loading state; only async aggregate stats refresh (sidebar counts). New accounts appear on the correct SQLite-sorted page when user navigates
  • TS build error fix: Removed unused isMasterAccount function from AutoResetDialog.vue, fixing vue-tsc TS6133 strict check build failure
  • Theme-aware visual detail refinement: Pagination no longer uses a fixed light-blue palette and now derives low-saturation colors from --theme-primary, covering the pagination container, page buttons, active-page highlight, and jump input; subscription/plan badges gain stronger contrast and visual hierarchy across themes while preserving semantic Free / Pro / Teams / Enterprise colors
  • Batch account export refactored into a standalone component: Added BatchExportDialog.vue to replace the hardcoded ElMessageBox + dangerouslyUseHTMLString export dialog in MainLayout.vue, removing inline styles and aligning the dialog with the current theme system. The export entry now

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 462
Method 266
Class 87
Interface 51
Enum 11

Languages

Rust71%
TypeScript29%

Modules by API surface

src/api/index.ts80 symbols
src-tauri/src/services/windsurf_service.rs62 symbols
src-tauri/src/repository/data_store.rs58 symbols
src-tauri/src/services/devin_auth_service.rs52 symbols
src-tauri/src/commands/api_commands.rs47 symbols
src-tauri/src/repository/sqlite_account_store.rs35 symbols
src/store/modules/accounts.ts34 symbols
src-tauri/src/commands/devin_commands.rs30 symbols
src/types/index.ts28 symbols
src-tauri/src/services/proto_parser.rs28 symbols
src-tauri/src/commands/settings_commands.rs26 symbols
src-tauri/src/commands/auto_reset_commands.rs26 symbols

For agents

$ claude mcp add windsurf-account-manager-simple \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page