Skip to content

risunCode/SurfManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SurfManager

Issue udah ditemukan semua, nanti aku fix whahwhawhawhhawwah.

  • Lag issues terutama, UI perlu upgrade dikit, sisanya fine, sabar yah!

Advanced Session & Data Manager for Development Tools

Version Platform Python License


πŸ‘‹ Welcome to SurfManager!

SurfManager is a modern solution for managing session data of development tools like VS Code, Cursor, Windsurf, and similar applications. With a clean interface and powerful features, SurfManager makes it easy for developers to backup, restore, and switch between multiple accounts seamlessly.

Perfect for developers who need to:

  • πŸ”„ Switch between multiple accounts/profiles effortlessly
  • πŸ’Ύ Backup workspace settings before experimenting
  • πŸš€ Maintain organized development workflows
  • πŸ›‘οΈ Have a safety net for important configurations

Screenshots (Windows)

Reset Data Backup
App Config About

✨ Features

🎯 Core Features

Feature Description
πŸ“± Session Management Backup, restore, and manage multiple app sessions
πŸ”„ Account Switching Switch between different accounts in seconds
πŸ›‘οΈ Smart App Close Auto-close running apps before operations to avoid conflicts
πŸ“Š Progress Tracking Real-time progress bars for all operations
πŸ” Search & Filter Quick search through sessions and auto-backups
πŸ’Ύ Auto-Backup Automatic backup before reset operations
πŸ“ Dual View Mode Separate views for manual sessions and auto-backups
⚑ Process Management Advanced process management with graceful termination

πŸš€ Advanced Features

🎯 Smart Operations

  • Real-time Process Detection - Accurately detect running applications
  • Graceful App Termination - Safely close apps before operations
  • Retry Mechanisms - Auto-retry for failed operations
  • File Lock Protection - Handle file conflicts with intelligent retry logic
  • Progress Persistence - Progress bars don't reset after completion

πŸ“‹ Session Management

  • Filesystem-based Storage - No more JSON conflicts, direct folder scanning
  • Active Session Tracking - Mark and track active sessions with marker files
  • Batch Delete Operations - Delete multiple sessions at once
  • Session Size Display - Real-time folder size calculation
  • Contextual Actions - Right-click menus for quick actions

πŸ”§ Developer Experience

  • Dynamic App Loading - Auto-detect installed applications
  • Dark Theme UI - Beautiful dark interface that's easy on the eyes
  • Keyboard Shortcuts - Quick access via hotkeys
  • Local Logging - Per-tab logging for better debugging
  • Configuration Management - Easy app configuration via GUI

πŸ’‘ The Story Behind SurfManager

The Problem Modern developers often work with multiple accounts, different projects, and various configurations. But managing session data for apps like VS Code, Cursor, or Windsurf can be tedious:

  • Manual backup-restore is time-consuming and error-prone
  • Switching between accounts requires repeated logout-login cycles
  • Experimenting with settings risks breaking perfectly tuned configurations
  • Authentication data often conflicts when not handled properly

The Solution SurfManager was born from personal developer frustration needing an elegant solution to this problem. What started as a simple script for backing up VS Code settings evolved into a comprehensive session manager that:

  • Automates repetitive tasks - No more manual backup-restore
  • Prevents data loss - Smart app close and auto-backup protection
  • Streamlines workflow - Switch profiles in seconds, not minutes
  • Handles edge cases - File locks, process conflicts, permission issues

The Evolution From a simple CLI script to a full-featured GUI application with:

  • Advanced process management (ProcessKiller)
  • Real-time progress tracking
  • Filesystem-based storage (reliable)
  • Cross-platform compatibility
  • Developer-friendly UX

⚠️ Disclaimer: SurfManager is a tool for development workflow management. Users are responsible for complying with software licenses and Terms of Service. Developers are not liable for how this tool is used.


πŸ“– How to Use SurfManager

🎯 Getting Started

Main Use Case: Multiple Account Management

Step 1: Setup First Account

  1. Login to your IDE - Use your first account in VS Code/Cursor/etc.
  2. Configure your workspace - Install extensions, set preferences, login to services
  3. Create backup - In SurfManager, click an app β†’ enter session name (e.g., "work-account")
  4. Done! Your complete session is saved

Step 2: Add More Accounts

  1. Reset the app - Use SurfManager's Reset Data tab to clear current session
  2. Login with new account - Use different credentials in your IDE
  3. Configure new environment - Set up workspace for this account
  4. Save new session - Create another backup (e.g., "personal-account")

Step 3: Switch Between Accounts

  1. Browse sessions - View all saved sessions in the Sessions tab
  2. Double-click to restore - Or right-click β†’ "Load"
  3. Launch your IDE - You're logged in with that account! πŸŽ‰

πŸ–±οΈ Interface Guide

Sessions Tab:

  • App buttons - Click to create new backup
  • Sessions table - View all saved sessions
  • Right-click menu - Quick actions (Load, Update, Set Active, Rename, Browse, Delete)
  • Auto-Backups toggle - Switch between manual sessions and auto-backups
  • Search bar - Filter sessions by name

Reset Data Tab:

  • Reset button - Clear app data (with auto-backup option)
  • AutoBackup toggle - Enable/disable automatic backup before reset
  • Launch button - Open app folder or executable

πŸ’‘ Tips & Tricks

  • Right-click sessions for quick actions menu
  • Double-click sessions to restore instantly
  • Toggle Auto-Backups to view automatic backups separately
  • Use descriptive names like "work-main", "personal-dev", etc.
  • Enable AutoBackup before reset operations for safety

⚠️ Limitations

πŸ”’ Platform-Specific Restrictions

Windows User Isolation Sessions are tied to the Windows user account that created them. You cannot transfer backups between different Windows users.

Why this exists:

  • Windows encrypts app credentials with user-specific keys
  • Authentication tokens (like DIPS files) are encrypted per Windows user
  • Cross-user session restoration would fail authentication

What this means:

  • βœ… Switch between accounts on the same Windows user
  • ❌ Copy backups to another Windows user account
  • βœ… Each Windows user must create their own session backups

πŸ†• What's New

πŸ”₯ v1.0.1 - Bug Fixes & Website Redesign

πŸ› Fixed Issues

  • Backup Path Structure - Fixed incorrect backup directory naming (SurfManagerBackups β†’ Documents/SurfManager)
  • Auto-Backup Display - Fixed auto-backup toggle button not showing backups
  • Reset Tab Sync - Fixed app list not syncing with App Configuration changes
  • Session Scanning - Skip internal folders when listing backups

🎨 Website Improvements

  • New Hacker Theme - Cleaner, simpler dark interface
  • Grid Layout - No more monotonous scrolling, responsive grid design
  • FontAwesome Icons - Professional icons instead of emojis
  • TailwindCSS - Fully responsive on all devices
  • Gallery - Added actual screenshots of the application

πŸ“Š Updated Stats

  • Launch Time: ~1s
  • Binary Size: 40+MB
  • Build Status: Stable (not Beta)

πŸ”₯ v1.0.0 - New Redesign, User Friendly, and Fast!

πŸš€ No More Freezing!

  • Background Threading - Backup and restore run in background threads
  • Responsive UI - Interface stays smooth during all operations
  • Real-time Progress - Live updates via signal-based communication

🌐 Cross-Platform Ready

  • Platform Adapter - Automatic path detection for Windows, Linux, macOS
  • Unified API - Same code works across all platforms

⚑ Optimized Performance

  • Smaller Backups - Reduced from 16+ items to 9 essential files/folders
  • Faster Operations - Only backup what matters
  • Duplicate Protection - Prevents overwriting existing sessions

πŸ› οΈ Quality Improvements

  • Fixed build system with proper PyInstaller configuration
  • Removed emojis from code for cleaner codebase
  • Fixed session active status display
  • Session table maintains creation order

πŸ”„ Previous Updates (v0.0.2-beta)

  • GUI Foundation - Modern PyQt6 interface
  • Multi-tab Architecture - Sessions, Reset Data, App Configuration, About
  • Dynamic App Loading - Auto-detection of installed applications
  • Dark Theme UI - Professional dark interface
  • Cross-platform Base - Framework for Windows/macOS/Linux support

πŸš€ Installation & Build

πŸ“¦ Option 1: Download Pre-built Release (Recommended)

Windows:

  1. Visit the Releases Page
  2. Download SurfManager-Windows.exe
  3. Run directly - no installation required!

πŸ”§ Option 2: Build from Source

Prerequisites:

  • Python 3.8+
  • Git

Instructions:

# Clone repository
git clone https://github.com/risunCode/SurfManager.git
cd SurfManager

# Install dependencies
pip install -r requirements.txt

# Run application
python main.py

Platform Notes:

  • Windows - Full support, can build executables
  • macOS - Framework support (untested)
  • Linux - Framework support (untested)

🀝 Contributing

We welcome contributions! Whether it's bug reports, feature suggestions, or code contributions.

How to Contribute

# Fork the repository on GitHub
# Create a feature branch
git checkout -b feature/awesome-feature

# Make your changes
git commit -m 'Add awesome feature'

# Push to your fork
git push origin feature/awesome-feature

# Open a Pull Request

Areas for Contribution

Area Description
Platform Support Improve macOS and Linux compatibility
App Support Add support for more development tools
Documentation Enhance guides and documentation
Bug Fixes Help identify and fix issues
UI/UX Design improvements and user experience
Testing Cross-platform testing and validation

πŸ“„ License

SurfManager is open-source under the MIT License. See LICENSE for details.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

πŸ™ Credits

Built with ❀️ by:

  • risunCode - Project Creator & Lead Developer
  • Community Contributors - Feature suggestions, bug reports, and code contributions

Special Thanks:

  • PyQt6 team for the amazing GUI framework
  • psutil developers for process management capabilities
  • All beta testers and early adopters

Technologies Used:

  • PyQt6 - Modern GUI framework
  • Python 3.8+ - Core application language
  • psutil - Process management and system monitoring
  • qtawesome - Beautiful icons for the interface

SurfManager v1.0.0

Making development workflows smoother, one session at a time

⭐ Star us on GitHub | πŸ› Report Issues | πŸ’‘ Suggest Features