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 buildwails doctorThis 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 RequestSurfManager 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





