{"id":14111223,"url":"https://github.com/nonoroazoro/vscode-syncing","last_synced_at":"2026-03-09T11:10:08.469Z","repository":{"id":45135049,"uuid":"70677405","full_name":"nonoroazoro/vscode-syncing","owner":"nonoroazoro","description":":zap: VSCode Extension - Sync all of your VSCode settings across multiple devices.","archived":false,"fork":false,"pushed_at":"2025-10-17T04:57:53.000Z","size":8622,"stargazers_count":503,"open_issues_count":6,"forks_count":32,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-10-17T10:50:04.359Z","etag":null,"topics":["gist","sync","vscode","vscode-extension","vscode-settings","vscode-sync","vscode-syncing"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=nonoroazoro.syncing","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nonoroazoro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-10-12T08:05:07.000Z","updated_at":"2025-10-16T10:03:55.000Z","dependencies_parsed_at":"2023-11-17T08:47:38.365Z","dependency_job_id":"ea4654ac-56fb-4775-938a-c58ebdf6efb7","html_url":"https://github.com/nonoroazoro/vscode-syncing","commit_stats":null,"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/nonoroazoro/vscode-syncing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonoroazoro%2Fvscode-syncing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonoroazoro%2Fvscode-syncing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonoroazoro%2Fvscode-syncing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonoroazoro%2Fvscode-syncing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nonoroazoro","download_url":"https://codeload.github.com/nonoroazoro/vscode-syncing/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonoroazoro%2Fvscode-syncing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279446906,"owners_count":26171842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-17T02:00:07.504Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gist","sync","vscode","vscode-extension","vscode-settings","vscode-sync","vscode-syncing"],"created_at":"2024-08-14T10:03:11.935Z","updated_at":"2026-03-09T11:10:08.444Z","avatar_url":"https://github.com/nonoroazoro.png","language":"TypeScript","readme":"# Syncing\r\n\r\n[![Installs](https://img.shields.io/visual-studio-marketplace/i/nonoroazoro.syncing)](https://marketplace.visualstudio.com/items?itemName=nonoroazoro.syncing)\r\n[![Rating](https://img.shields.io/visual-studio-marketplace/r/nonoroazoro.syncing)](https://marketplace.visualstudio.com/items?itemName=nonoroazoro.syncing)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![License: 996ICU](https://img.shields.io/badge/License-Anti%20996-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)\r\n\r\n[English](README.md) | [中文](README.zh-CN.md)\r\n\r\n**Syncing** _([View Source Code](https://github.com/nonoroazoro/vscode-syncing))_ is a VSCode extension, designed to **synchronize all of your VSCode settings across multiple devices** with your [GitHub Gist](https://gist.github.com).\r\n\r\n[Getting started](#getting-started) or [check out the examples](#examples).\r\n\r\n\u003e _Keep it simple \u0026 reliable!_\r\n\r\n## Features\r\n\r\n\u003e ⚠️ **Breaking Change (v3.5.1)**:\r\n\u003e\r\n\u003e - `Syncing` now supports any VSCode variant, including `VSCodium`, `Cursor`, `Windsurf`, `Trae`, and more.\r\n\u003e - The `http_proxy` setting in `syncing.json` has been removed. Please use VSCode's `http.proxy` setting instead, see [`proxy settings`](#proxy-settings).\r\n\r\n_Syncing_ will `keep the consistency of your VSCode settings between your devices`, it'll let you:\r\n\r\n1. **Upload VSCode Settings**:\r\n\r\n   - Including your `User Settings`, `Keybindings`, `Extensions`, `Locales` and `Snippets`.\r\n   - The `keybindings` of `MacOS` and `non-MacOS` will be synchronized separately, in case you have multiple devices of different operating systems.\r\n   - Automatically create a new Gist to store your settings.\r\n   - Use an incremental algorithm to boost the synchronization.\r\n   - You can `exclude some VSCode User Settings and Extensions` from being uploaded, [check out the VSCode User Settings](#vscode-user-settings) for more details.\r\n\r\n1. **Download VSCode Settings**:\r\n\r\n   - **Always overwrite** local settings.\r\n   - Automatically `install, update` and `remove` extensions.\r\n   - You can download settings from `a public Gist`, such as your friend's VSCode settings, [check out here](#getting-started) for more details.\r\n   - You can `exclude some VSCode User Settings and Extensions` from being downloaded, [check out the VSCode User Settings](#vscode-user-settings) for more details.\r\n\r\nBesides, you can [set up a proxy](#proxy-settings) to accelerate the synchronization. And of course, you can turn on the [auto-sync](#auto-sync-settings) to simplify the synchronization :).\r\n\r\n## Commands\r\n\r\nYou can type `\"upload\"`, `\"download\"` (or `\"syncing\"`) in `VSCode Command Palette` to access these commands:\r\n\r\n1. _**`Syncing: Upload Settings`**_\r\n\r\n   \u003e Upload settings to GitHub Gist.\r\n\r\n1. _**`Syncing: Download Settings`**_\r\n\r\n   \u003e Download settings from GitHub Gist.\r\n\r\n1. _**`Syncing: Open Syncing Settings`**_\r\n\r\n   \u003e Set your `GitHub Personal Access Token`, `Gist ID` or `HTTP Proxy` settings.\r\n\r\n## Keybindings\r\n\r\nThe keybindings **are unassigned by default**, but you can easily turn them on by updating `VSCode Keyboard Shortcuts`:\r\n\r\n![keyboard shortcuts](docs/gif/Keyboard-Shortcuts.gif)\r\n\r\n## VSCode User Settings\r\n\r\nYou can find the following `Syncing Settings` in your `VSCode User Settings`.\r\n\r\n1. _**`syncing.excludedExtensions`**_\r\n\r\n   You can configure [glob patterns](https://github.com/isaacs/minimatch) for excluding some `VSCode Extensions` from being synchronized.\r\n\r\n   \u003e Note that the extensions not listed here will still be synchronized.\r\n\r\n   Take this for example:\r\n\r\n   ```json\r\n   \"syncing.excludedExtensions\" : [\r\n       \"somepublisher.*\",\r\n       \"nonoroazoro.syncing\"\r\n   ]\r\n   ```\r\n\r\n   Note that the excluded `extension name` is actually the `extension id` (you can find it in the `VSCode Extensions View`), such as:\r\n\r\n   ![exclude extensions](docs/png/Exclude-Extensions.png)\r\n\r\n   Now the extension `nonoroazoro.syncing` (i.e., `Syncing`) and all the extensions of the author `somepublisher` will no longer be synchronized.\r\n\r\n1. _**`syncing.excludedSettings`**_\r\n\r\n   You can configure [glob patterns](https://github.com/isaacs/minimatch) for excluding some `VSCode User Settings` from being synchronized.\r\n\r\n   \u003e Note that the settings not listed here will still be synchronized.\r\n\r\n   Take this for example:\r\n\r\n   ```json\r\n   \"syncing.excludedSettings\" : [\r\n       \"editor.*\",\r\n       \"workbench.colorTheme\"\r\n   ]\r\n   ```\r\n\r\n   Now the `workbench.colorTheme` setting and all the settings of `editor` will no longer be synchronized.\r\n\r\n1. _**`syncing.pokaYokeThreshold`**_\r\n\r\n   During the synchronization, `Syncing` will check the changes between your local and remote settings, and display a `confirm dialog` if the changes exceed this threshold.\r\n\r\n   The `default value` of this setting is `10`, and you can `disable this feature` by setting to a number `less than or equal to zero` (`\u003c= 0`).\r\n\r\n   Take this for example:\r\n\r\n   ```json\r\n   \"syncing.pokaYokeThreshold\" : 10\r\n   ```\r\n\r\n1. _**`syncing.separateKeybindings`**_\r\n\r\n   Synchronize the `keybindings` separately for different operating systems.\r\n\r\n   You may disable it since `VSCode` has introduced the [Platform Specific Keybindings](https://code.visualstudio.com/updates/v1_27#_platform-specific-keybindings) from `version 1.27`. But please make sure you've already `merged your keybindings` before disabling this setting.\r\n\r\n   This is `enabled by default` but you can turn it off in your `VSCode User Settings`.\r\n\r\n## Proxy Settings\r\n\r\n`Syncing` will use VSCode's `http.proxy` setting as its proxy settings, for example:\r\n\r\n```json\r\n\"http.proxy\": \"http://127.0.0.1:1080\"\r\n```\r\n\r\nIf VSCode's `http.proxy` is not set, `Syncing` will fall back to the `http_proxy` and `https_proxy` environment variables.\r\n\r\n## Auto-sync Settings\r\n\r\nYou can now let Syncing auto-sync your settings. Here are the steps:\r\n\r\n1. Type `\"Syncing: Open Syncing Settings\"` (or just `\"opensync\"`) in `VSCode Command Palette` to open `Syncing`'s own settings file (i.e. `syncing.json`).\r\n\r\n1. Enable the `\"auto_sync\"` setting, for example:\r\n\r\n   ```json\r\n   \"auto_sync\": true\r\n   ```\r\n\r\n1. Reload or reopen VSCode to take effect.\r\n\r\n## Getting Started\r\n\r\n1. Get your own `GitHub Personal Access Token` (3 steps).\r\n\r\n   1. Login to your **[GitHub Personal Access Tokens page](https://github.com/settings/tokens)** and click **`Generate new token`**.\r\n\r\n      ![generate new token](docs/png/Generate-New-Token.png)\r\n\r\n   1. Give your token a descriptive **`name`**, check **`gist`** and click **`Generate token`**.\r\n\r\n      ![allow gist](docs/png/Allow-Gist.png)\r\n\r\n   1. **`Copy`** and **`backup`** your token.\r\n\r\n      ![copy and backup token](docs/png/Copy-Token.png)\r\n\r\n1. Sync your VSCode settings.\r\n\r\n   _`Syncing`_ will ask for necessary information `for the first time` and `save for later use`.\r\n\r\n   1. **Upload**\r\n\r\n      1. Type `upload` in `VSCode Command Palette`.\r\n\r\n         ![upload settings](docs/png/Upload-Settings.png)\r\n\r\n      1. Enter your `GitHub Personal Access Token`.\r\n\r\n      1. Select or enter your `Gist ID`.\r\n\r\n         \u003e You can `leave it blank` to create a new `Gist` automatically.\r\n\r\n      1. Done!\r\n\r\n      1. _After it's done, you can find the settings and the corresponding `Gist ID` in your [GitHub Gist](https://gist.github.com). Also, you can `Edit` and `make it public` to share your settings with others._\r\n\r\n   1. **Download**\r\n\r\n      1. Type `download` in `VSCode Command Palette`.\r\n\r\n         ![download settings](docs/png/Download-Settings.png)\r\n\r\n      1. Enter your `GitHub Personal Access Token`.\r\n\r\n         \u003e You can `leave it blank` if you want to download from a `public Gist`, such as your friend's VSCode settings.\r\n\r\n      1. Select or enter your `Gist ID` or a `public Gist ID`.\r\n\r\n      1. Done!\r\n\r\n## Examples\r\n\r\n1. Upload:\r\n\r\n   ![upload example](docs/gif/Example-Upload.gif)\r\n\r\n1. Download:\r\n\r\n   ![download example](docs/gif/Example-Download.gif)\r\n\r\n## Frequently Asked Questions\r\n\r\n1. How do I make this work with [code-server](https://github.com/coder/code-server)?\r\n\r\n   Code-server follows the XDG spec to set config \u0026 data directories. When using their [Docker image](https://hub.docker.com/r/codercom/code-server), you can set `XDG_DATA_HOME=\"/home/coder/.config/\"` to store everything files in the same directory. This enables vscode-syncing to easily pickup the right locations. Since it is also a recommended volume path, it ensures persistence of your changes.\r\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnonoroazoro%2Fvscode-syncing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnonoroazoro%2Fvscode-syncing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnonoroazoro%2Fvscode-syncing/lists"}