Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Align - Editor SyncNew to Visual Studio Code? Get it now.
Align - Editor Sync

Align - Editor Sync

minagishl

| (0) | Free
Sync and share your editor configuration across VS Code-based editors.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Align Logo

Align

Sync and share your editor configuration across VS Code-based editors.

Introduction · Tech Stack · Installation · Contributing

Introduction

Sync and share your editor configuration across VS Code-based editors.

Align stores your settings, keybindings, and installed extensions as a private GitHub Gist, letting you restore your exact setup on any machine in seconds.

Features

  • Profile management — create multiple named profiles and switch between them freely
  • Settings sync — backs up and restores your settings.json
  • Keybindings sync — backs up and restores your keybindings.json
  • Extension sync — installs and removes extensions to match the saved profile
  • Private by default — profiles are stored in a private GitHub Gist under your account
  • Cross-editor — works with VS Code and compatible editors

Tech Stack

  • TypeScript — language
  • Bun — package manager and script runner
  • esbuild — bundler
  • oxlint — linter
  • oxfmt — formatter
  • GitHub Gist API — cloud storage for profiles

Installation

Requirements

  • Visual Studio Code ^1.90.0 or a compatible editor
  • A GitHub account

Supported Editors

Editor macOS Windows Linux
VS Code ✓ ✓ ✓
VS Code Insiders ✓ ✓ ✓
Cursor ✓ ✓ ✓
Windsurf ✓ ✓ ✓
Antigravity ✓ ✓ ✓

From the Marketplace

Search for Align in the Extensions view (Ctrl+Shift+X / Cmd+Shift+X) and click Install.

Getting Started

  1. After installing, sign in to GitHub when prompted and grant Gist access
  2. Open the command palette (Ctrl+Shift+P / Cmd+Shift+P) and run Align: Show Menu
  3. Select Create Profile to save your current configuration

Commands

All commands are available via the command palette under the Align category, or through the status bar button.

Command Description
Align: Show Menu Open the Align action menu
Align: Create Profile Save current settings, keybindings, and extensions as a new profile
Align: Pull Profile Download a profile from GitHub and apply it locally
Align: Update Profile Overwrite an existing profile with your current configuration
Align: Delete Profile Remove a profile from GitHub
Align: Show Logs Open the Align output channel
Align: Manually Set Paths Override the auto-detected paths for settings.json or keybindings.json

Configuration

Setting Type Default Description
align.excludeExtensions string[] [] Extension IDs to exclude from sync
align.confirmBeforeSync boolean true Show a confirmation dialog before installing or removing extensions
align.ignoreSettingsKeys string[] [] Settings key prefixes to exclude from sync in both directions. E.g. "python" excludes all keys starting with "python"
align.protectedExtensions string[] [] Extension IDs that will never be uninstalled during a pull, even if absent from the profile
align.ignoreKeybindings string[] [] Keybinding commands to exclude from sync in both directions
align.editorSpecificExtensions string[] ["anysphere.*"] Extension ID patterns to skip during cross-editor sync. Supports exact IDs and publisher wildcards. Preserved in the profile when updating from a different editor

How It Works

Align creates a single private GitHub Gist called Align that acts as the central store for all your profiles. Each profile is stored as a JSON file within that Gist and contains your settings, keybindings, and a list of extension IDs.

When you pull a profile, Align writes the saved settings.json and keybindings.json to disk and reconciles your installed extensions — installing any that are missing and removing any that are not in the profile (with your confirmation).

Contributing

  1. Clone the repository and install dependencies:
    bun install
    
  2. Open the project in your editor and press F5 to launch the Extension Development Host
  3. Make your changes in src/
  4. Before submitting, ensure all checks pass:
    bun run check-types
    bun run lint
    bun run fmt:check
    

License

This project is licensed under the MIT License - see the LICENSE file for details.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft