Advanced Session & Data Manager for Development Tools
SurfManager is a modern solution for managing session data of development tools like VS Code, Cursor, Windsurf, and similar applications. Built with Go + Wails + Svelte for blazing fast performance and a beautiful native UI.
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
| 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 (optional) |
| π 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 |
| π¨ Theme System | Dark, Solarized Dark, and Solarized Light themes |
| βοΈ Customizable Settings | Persistent settings for personalized experience |
| π Custom App Config | VSCode preset or fully custom backup items |
| βοΈ Edit App Config | Edit existing app configurations via UI |
- Complete Rewrite - Go + Wails + Svelte (from Python + PyQt6)
- 3x Smaller Binary - ~15MB (from 40+MB)
- 2x Faster Startup - <0.5s (from ~1s)
- Modern UI - JetBrains Mono font, realtime clock, custom modals
- Theme System - 3 beautiful themes with persistence
- Skip Close App - Perform operations without closing target app
- Customizable Backups - Choose exactly what to backup
- Additional Folders - Backup extra directories (e.g., ~/.aws, ~/.ssh)
- Custom App Type - Create apps with only addon folders (no AppData backup)
- Edit App Config - Edit existing app configurations via UI dialog
SurfManager manages app data stored in platform-specific locations:
| Platform | App Data (Config) | App Data (Local) | Example Apps |
|---|---|---|---|
| Windows | %APPDATA% (C:\Users\{user}\AppData\Roaming) |
%LOCALAPPDATA% (C:\Users\{user}\AppData\Local) |
Roaming\Code, Roaming\Cursor |
| macOS | ~/Library/Application Support |
~/Library/Application Support |
Application Support/Code |
| Linux | ~/.config |
~/.local/share |
~/.config/Code, ~/.config/Cursor |
| Data | Windows | macOS | Linux |
|---|---|---|---|
| Backups | Documents\SurfManager\backup |
~/Documents/SurfManager/backup |
~/Documents/SurfManager/backup |
| Auto-Backups | Documents\SurfManager\auto-backups |
~/Documents/SurfManager/auto-backups |
~/Documents/SurfManager/auto-backups |
| Notes | Documents\SurfManager\notes |
~/Documents/SurfManager/notes |
~/Documents/SurfManager/notes |
| App Configs | ~\.surfmanager\AppConfigs |
~/.surfmanager/AppConfigs |
~/.surfmanager/AppConfigs |
Step 1: Setup First Account
- Login to your IDE (VS Code/Cursor/Windsurf)
- Configure your workspace, install extensions
- Open SurfManager β Sessions β New Backup
- Enter session name (e.g., "work-account")
Step 2: Add More Accounts
- Go to Reset tab β Click Reset on your app
- Login with different credentials in your IDE
- Create another backup (e.g., "personal-account")
Step 3: Switch Between Accounts
- Go to Sessions tab
- Right-click session β Restore
- Launch your IDE - you're logged in! π
- Right-click anywhere for context menus
- CTRL+Click rows to select multiple items
- Enable "Skip Close App" if you want to backup while app is running
- Use descriptive names like "work-main", "personal-dev"
Windows User Isolation Sessions are tied to the Windows user account. You cannot transfer backups between different Windows users due to encryption.
- β Switch accounts on the same Windows user
- β Copy backups to another Windows user
- β Each Windows user creates their own backups
- Visit Releases Page
- Download for your platform:
- Windows:
SurfManager-windows-amd64.exe - macOS:
SurfManager-darwin-amd64.ziporSurfManager-darwin-arm64.zip(extract and run.app) - Linux:
SurfManager-linux-amd64
- Windows:
- Run directly - no installation required!
- Go 1.22+ - Download
- Node.js 18+ - Download
- Wails CLI - Install with:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# Install prerequisites # 1. Install Go from https://golang.org/dl/ # 2. Install Node.js from https://nodejs.org/ # 3. Install Wails CLI go install github.com/wailsapp/wails/v2/cmd/wails@latest # Clone and build git clone https://github.com/risunCode/SurfManager.git cd SurfManager cd frontend && npm install && cd .. # Development mode wails dev # Build for production wails build # Output: build/bin/SurfManager.exe
# Install prerequisites # Using Homebrew: brew install go node # Install Wails CLI go install github.com/wailsapp/wails/v2/cmd/wails@latest # Install Xcode Command Line Tools (required for CGO) xcode-select --install # Clone and build git clone https://github.com/risunCode/SurfManager.git cd SurfManager cd frontend && npm install && cd .. # Development mode wails dev # Build for production wails build # Output: build/bin/SurfManager.app
# Install prerequisites sudo apt update sudo apt install -y golang nodejs npm build-essential libgtk-3-dev libwebkit2gtk-4.0-dev # Install Wails CLI go install github.com/wailsapp/wails/v2/cmd/wails@latest # Add Go bin to PATH (add to ~/.bashrc for persistence) export PATH=$PATH:$(go env GOPATH)/bin # Clone and build git clone https://github.com/risunCode/SurfManager.git cd SurfManager cd frontend && npm install && cd .. # Development mode wails dev # Build for production wails build # Output: build/bin/SurfManager
# Install prerequisites sudo dnf install -y golang nodejs npm gcc gtk3-devel webkit2gtk3-devel # Install Wails CLI go install github.com/wailsapp/wails/v2/cmd/wails@latest # Add Go bin to PATH export PATH=$PATH:$(go env GOPATH)/bin # Clone and build (same as Ubuntu) git clone https://github.com/risunCode/SurfManager.git cd SurfManager cd frontend && npm install && cd .. wails build
# Install prerequisites sudo pacman -S go nodejs npm base-devel gtk3 webkit2gtk # Install Wails CLI go install github.com/wailsapp/wails/v2/cmd/wails@latest # Add Go bin to PATH export PATH=$PATH:$(go env GOPATH)/bin # Clone and build git clone https://github.com/risunCode/SurfManager.git cd SurfManager cd frontend && npm install && cd .. wails build
wails doctor
This will check if all dependencies are installed correctly.
The easiest way to build for all platforms is using GitHub Actions. No need to install anything locally!
-
Fork the repository
- Go to github.com/risunCode/SurfManager
- Click "Fork" button (top right)
-
Enable GitHub Actions
- Go to your forked repo β "Actions" tab
- Click "I understand my workflows, go ahead and enable them"
-
Run the build
- Go to "Actions" β "Build SurfManager"
- Click "Run workflow" dropdown
- Select platform:
all- Build for Windows, Linux, macOS (Intel & Apple Silicon)windows-amd64- Windows 64-bit onlylinux-amd64- Linux 64-bit onlymacos-amd64- macOS Intel onlymacos-arm64- macOS Apple Silicon only
- Click "Run workflow"
-
Download artifacts
- Wait for build to complete (~5-10 minutes)
- Click on the completed workflow run
- Download artifacts from the bottom of the page
To automatically create a GitHub Release with all binaries:
# Tag your version
git tag v2.0.0
git push origin v2.0.0This will:
- Build for all 4 platforms automatically
- Create a GitHub Release
- Attach all binaries to the release
| Platform | Output File | Architecture |
|---|---|---|
| Windows | SurfManager-windows-amd64.exe |
64-bit Intel/AMD |
| Linux | SurfManager-linux-amd64 |
64-bit Intel/AMD |
| macOS | SurfManager-darwin-amd64.zip (.app inside) |
Intel Mac |
| macOS | SurfManager-darwin-arm64.zip (.app inside) |
Apple Silicon (M1/M2/M3) |
We need your help! SurfManager is primarily developed and tested on Windows. We need contributors to help with:
- Test app data path detection (
~/.config,~/.local/share) - Test VSCode/Cursor data locations
- Verify file dialogs work correctly
- Test process detection and termination
- Package for different distributions (AppImage, Flatpak, Snap)
- Test app data path detection (
~/Library/Application Support) - Test VSCode/Cursor data locations
- Verify
.appbundle selection works - Test process detection and termination
- Code signing and notarization
- Fork the repository
- Test on your Linux/macOS machine
- Report issues with detailed logs
- Submit PRs for fixes
Even just testing and reporting issues helps a lot! π
We welcome contributions! Whether it's bug reports, feature suggestions, or code contributions.
git checkout -b feature/awesome-feature git commit -m 'Add awesome feature' git push origin feature/awesome-feature # Open a Pull Request
SurfManager is open-source under the MIT License.
Built with β€οΈ by risunCode
Technologies: Go, Wails v2, Svelte, TailwindCSS, Lucide Icons
SurfManager v2.0
Making development workflows smoother, one session at a time
β Star on GitHub | π Report Issues | π‘ Suggest Features