Create checkpoints in your code projects just like save points in video games!
Perfect for experiments, tutorials, learning, and quick prototypes where full version control feels like overkill
Remember playing Zelda and hitting that checkpoint right before Ganondorf? Or Dark Souls where you desperately needed that bonfire before the boss? Save-Sync brings that same peace of mind to coding!
| ๐ฏ Game Situation | ๐ป Code Equivalent |
|---|---|
| ๐ฐ Save before boss fight | Save before major refactoring |
| ๐งช Try different strategies | Experiment with new approaches |
| ๐ Chapter checkpoints | Milestone completion in tutorials |
| ๐จ Creative experimentation | Art projects, creative coding |
| โก Speed runs | Rapid prototyping cycles |
| ๐ Multiple playthroughs | Different implementation attempts |
- ๐งช Experiments: Try wild ideas without fear - restore if they don't work
- ๐ Learning: Checkpoint your progress while following tutorials
- ๐ Prototyping: Quick saves for rapid iteration cycles
- ๐ง Refactoring: Save before major changes, restore if things break
- ๐จ Creative Coding: Art projects, game jams, creative experiments
- ๐ Documentation: Save states while writing examples or demos
- Large production codebases
- Team collaboration projects
- Code that needs detailed history tracking
- Professional development workflows
| ๐ฏ Game Feature | ๐ป Save-Sync | ๐ฅ Why It's Awesome |
|---|---|---|
| ๐พ Quick Save | Ctrl+Shift+S |
One keystroke, one snapshot |
| ๐ Quick Load | Ctrl+Alt+R |
Pick a save point, it writes |
| ๐ Named Saves | "Before AI Integration" | Descriptive checkpoint names |
| ๐ฏ Save Slots | 50 by default | Oldest is dropped past that |
| ๐ Overwrite on Load | Saved files rewritten | Files added since stay put |
| ๐ช Multiple Campaigns | Multi-root workspaces | Independent save systems |
- ๐พ Create Named Save Points: Capture the text of every non-excluded file under a custom name
- ๐ Restore Over Your Files: Rewrite the files a save point captured back into the folder
- ๐ Multi-Root Support: Each workspace folder maintains its own save points independently
- โ๏ธ Flexible Exclusions: Configure exclusion patterns per folder via
.vscode/settings.json - โก Duplicate Detection: A save point identical to the one before it is stored empty, and restoring it does nothing
- ๐ฏ Not a VCS: Lightweight alternative to version control for quick state management
The Marketplace listing is still titled Global Save State โ the rename to Save-Sync lands on the next publish โ so install it by id rather than by searching:
code --install-extension VKrishna04.global-save-stateOr open the Marketplace page and click Install.
- Download the
.vsixfile from releases - Open VS Code
- Run
Extensions: Install from VSIX...from Command Palette - Select the downloaded
.vsixfile
Step 1: Set the Scene ๐ฌ
# Open any project in VS Code
# Make some changes to your files
# Now you're ready for your first checkpoint!Step 2: Create Your First Save Point ๐พ
- Press
Ctrl+Shift+S(your "Save Game" button) - Name it: "Tutorial Checkpoint 1"
- Watch the magic happen! โจ
Step 3: Make Some Changes ๐จ
// Add some experimental code
function experimentalFeature() {
// This might break everything...
return 'risky code here';
}Step 4: Create Another Checkpoint ๐
- Press
Ctrl+Shift+Sagain - Name it: "Added Experimental Feature"
Step 5: Oh No! Something Broke! ๐ฅ
- Press
Ctrl+Alt+R(your "Load Game" button) - Select "Tutorial Checkpoint 1"
- BOOM! ๐ You're back to safety!
๐ก Pro Gamer Tip: Use descriptive save names like "Before Adding Database", "Working Login System", or "Pre-Boss-Fight-Refactor"
- ๐ฎ Keyboard:
Ctrl+Shift+S(orCmd+Shift+Son Mac) - ๐ Command Palette:
Save-Sync: Create Save Point
Multi-Workspace Projects:
- If multiple workspace folders are open, select which folder to save
- Enter a descriptive name for your save point (think epic checkpoint names!)
- The extension captures all files (excluding configured patterns)
- ๐ฎ Keyboard:
Ctrl+Alt+R(orCmd+Alt+Ron Mac) - ๐ Command Palette:
Save-Sync: Restore Save Point
Restore Process:
- If multiple workspace folders are open, select which folder to restore
- Choose from your list of save points (sorted by newest first)
- Every file the save point captured is written back over whatever is there now
โ ๏ธ Boss Fight Warning: Loading a save point overwrites your current work with no confirmation prompt and no backup. Create a save point first if you want to keep it. Read the "What a Restore Actually Does" section below before you rely on this.
A restore is an overlay, not a rollback. Read this before you trust it with work you cannot lose. Every point below is the behaviour of the current code, not an aspiration.
What is captured. When you create a save point the extension walks every file the
**/* glob matches in the chosen workspace folder, minus your exclusion patterns, decodes
each one as UTF-8 text and stores the string. Binary files (images, fonts, .vsix, .pdf)
go through the same text decode and come back corrupted โ exclude them.
Where it is stored. A plain JSON file on disk at .vscode/globalSaveState.json inside
each workspace folder, holding an array of { name, timestamp, files }. Nothing is kept in
VS Codeโs workspace or global storage, so the save points travel with the folder and are
readable and editable by hand.
Your ignore files are edited. The first time you create a save point in a folder, the
extension appends .vscode/globalSaveState.json to that folderโs .gitignore and
.vscodeignore, creating either file if it does not exist.
What a restore writes. For every file recorded in the save point, the parent directory is created if missing and the file is overwritten with the stored text. That is the whole operation. Specifically:
- Nothing is ever deleted. A file you created after the save point is still there afterwards. To get back to a genuinely clean state you have to delete those yourself.
- A file you deleted since the save point is recreated.
- There is no conflict detection. Unsaved editor buffers, newer edits, generated output โ if the path was in the save point, it is overwritten. No diff, no prompt, no merge.
- There is no backup. The overwritten content is gone unless it is in another save point or in git.
- Write failures are silent. If a file cannot be written (locked, read-only, permissions) the restore skips it and still reports success, so a restore can be partial without saying so.
Save points are evicted silently. Once the count passes globalSaveState.maxSavePoints
(default 50), the oldest are dropped without warning as new ones are created. Setting it
to 0 does not mean unlimited: the new save point is appended and then the list is
trimmed while it is longer than the limit, so 0 discards every save point including the
one just created.
Identical snapshots are stored empty. If nothing changed since the previous save point, the new one records no files; restoring it warns that it is empty and writes nothing.
Exclusion patterns are read as strict JSON. The per-folder .vscode/settings.json is
parsed with JSON.parse, so the // comments VS Code normally allows in that file will make
the parse fail โ silently falling back to your global globalSaveState.excludePatterns.
Create .vscode/settings.json in any workspace folder:
{
"globalSaveState.excludePatterns": [
"**/node_modules/**",
"**/.git/**",
"**/dist/**",
"**/build/**",
"**/.vscode/**",
"**/out/**",
"**/*.log"
]
}- Max Save Points: Configure maximum save points to keep (default: 50)
- Default Exclusions: Set global exclusion patterns
- VS Code 1.74.0 or higher
- Node.js 16.0.0 or higher
# Clone the repository
git clone https://github.com/Life-Experimentalist/Save-Sync
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Run tests
npm test
# Build extension package
npm run build- Architecture: System design and diagrams
- Roadmap: Milestones and future plans
- TODO: Tasks and bugs
- Changelog: Release notes
- License: License information
- Code of Conduct: Community guidelines
See Contributing Guide for details on:
- Code style guidelines
- How to submit pull requests
- Bug reporting process
Licensed under the Apache 2.0 License.
- Report bugs: GitHub Issues
- Feature requests: GitHub Issues
- Email: krishnagsvv@gmail.com
๐ฎ Happy Coding with Save Points! ๐
Made with โค๏ธ for developers who miss game checkpoints in their code