Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Git Profile-Protocol Switcher for Git RepositoriesNew to Visual Studio Code? Get it now.
Git Profile-Protocol Switcher for Git Repositories

Git Profile-Protocol Switcher for Git Repositories

SPAjs

|
4 installs
| (0) | Free
Simple utility to visualize, switch Git user profiles and remote protocols (HTTPS/SSH) from the status bar.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Git Profile-Protocol Switcher

Git Profile-Protocol Switcher

A lightning-fast, fully offline utility to visualize and switch your Git user profiles and remote transport protocols (HTTPS/SSH) directly from the VS Code status bar.

Built on the KISS paradigm, this extension relies entirely on your local .git/config and ~/.ssh/config—zero external API calls, zero authentication friction, and zero background bloat. Perfect for developers, architects, and educators managing multiple organizational identities.

✨ Key Features

  • Instant Visibility: Two unobtrusive status bar icons display your active Git identity (Name/Email) and your current remote transport protocol (HTTPS/SSH) for the active workspace.
  • Frictionless Profile Switching: Click the identity icon to select a saved profile. The extension instantly updates the local repository's user.name and user.email.
  • Integrated Creation Flow: Add new profiles on the fly directly from the Quick Pick menu.
  • Smart Protocol Routing: Click the transport icon to instantly toggle your origin remote between standard HTTPS and your configured SSH aliases. Fully supports GitHub, GitLab, Bitbucket, and custom Git servers.
  • Auto-Parses SSH Config: Automatically reads ~/.ssh/config to provide a unified, flattened list of all your available SSH hosts.
  • Deep Context Awareness: Silently adapts to the currently active editor or workspace folder, checking the native Git tree to ensure complete accuracy.

🚀 Usage

Managing Identity (Profiles)

  1. Look at the bottom-left status bar for the Account Icon (e.g., $(account) Work or $(question) Unknown).
  2. Click the icon to open the Profile Quick Pick menu.
  3. Select an existing profile to apply it locally, or select Create New Profile... to instantly configure and save a new identity.

Managing Transport (HTTPS / SSH)

  1. Look at the bottom-left status bar for the Lock/Key Icon (e.g., $(lock) HTTPS or $(key) SSH).
  2. Click the icon to open the Transport Quick Pick menu.
  3. Select your desired transport. The extension will safely execute git remote set-url origin to seamlessly route your connection.

⚙️ Configuration

Profiles are stored in plain text in your global settings.json, making them easy to manage, sync, and audit.

"gitProfileProtocolSwitcher.profiles": [
  {
    "label": "Personal",
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  {
    "label": "CoreBootcamp",
    "name": "Jane Doe (Instructor)",
    "email": "educator@corebootcamp.com"
  }
]

To edit or remove profiles, simply click Manually manage profiles... from the status bar menu, or manually open your VS Code Settings and search for Git Profile-Protocol Switcher.

🔐 Git SSH Authentication Tips

SSH Keys for multiple identities

Create an .ssh folder in ~ (system home folder) if it does not exist.

In Windows: ~ = C:\Users\YourName

  1. Generate an ssh key file in the ~/.ssh folder, using the ssh-keygen command:
ssh-keygen -t ed25519 -C "github-key-1" -f ~/.ssh/id_ed25519-github-key1

This will generate:

  • Private key: ~/.ssh/id_ed25519-github-key1
  • Public key: ~/.ssh/id_ed25519-github-key1.pub

-t ed25519 → Algorithm: fixed and recommended.

-C "github-key-1" → Comment: human‑readable label (short text/email) for easy identification inside the key file. Ex: "GitHub-key-1", "work", "email-address", etc.

-f ~/.ssh/id_ed25519-github-key1 → File path and name for the key pair. Recommended descriptive filenames. Ex: id_ed25519-github, id_ed25519-work, etc.

  1. Add the key to your repository provider's SSH settings (e.g., GitHub):

Copy the content of your public key ~/.ssh/id_ed25519-github-key1.pub into GitHub (or your repository provider) → Settings → SSH and GPG keys.

Optional Configuration for multiple accounts [Personal, Work]:

Edit ~/.ssh/config:

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519-github-key1

Host bitbucket.company.com
  HostName bitbucket.company.com
  User git
  IdentityFile ~/.ssh/id_ed25519-work

Use standard SSH repo URLs like:

git@github.com:usernameX/repo.git

git@bitbucket.company.com:usernameY/repo.git

Verify SSH setup

Run the following to confirm your key is working:

ssh -T git@github.com

# If successful, GitHub will reply:
# Hi usernameX! You've successfully authenticated, but GitHub does not provide shell access.

ssh -T git@bitbucket.company.com

# If successful, GitHub will reply:
# Hi usernameY! You've successfully authenticated, but GitHub does not provide shell access.

You may get a first-time warning. Continue connecting by typing yes.

The authenticity of host 'github.com (n.n.n.n)' can't be established.
ED25519 key fingerprint is SHA256:+...x...y...z...U.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.

This will create two files (known_hosts, known_hosts.old) in your ~/.ssh folder.

Using Aliases (Multiple accounts on a single domain)

If you have multiple accounts on a single domain (e.g., GitHub), use aliases in your ~/.ssh/config:

Host github-userX
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519-github-key1

Host github-userY
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519-github-key2

Define different Host aliases with respective IdentityFiles for each account.

Then use repo URLs like:

  • git@github-userX:usernameX/repo.git

  • git@github-userY:usernameY/repo.git

Verify SSH setup with aliases

ssh -T git@github-userX
# If successful, GitHub will reply:
# Hi usernameX! You've successfully authenticated...

ssh -T git@github-userY
# If successful, GitHub will reply:
# Hi usernameY! You've successfully authenticated...

🔒 Privacy & Security

This extension is completely offline. It reads your local ~/.ssh/config strictly to parse hostnames for routing and sets local .git/config variables. It does not read, require, or transmit Personal Access Tokens (PATs), passwords, or repository contents.

🚀 Installation

Install from Marketplace / VSX Registry:

  • VS Code Marketplace
  • Open VSX Registry

Install via Command Line:

  • For VS Code:
    code --install-extension spajs.git-profile-protocol-switcher
    
  • For VSCodium:
    codium --install-extension spajs.git-profile-protocol-switcher
    
  • For Google Antigravity:
    antigravity --install-extension spajs.git-profile-protocol-switcher
    
  • For Cursor:
    cursor --install-extension spajs.git-profile-protocol-switcher
    

Install via GUI:

  1. Open your IDE (VS Code, VSCodium, Antigravity, or Cursor)
  2. Go to the Extensions view
  3. Search for Git Profile-Protocol Switcher and select this extension
  4. Click Install

Other Related Extensions

  • Git Snapshots - For Git based snapshots.
  • Git Pull Agent - For pulling changes from remote repo.
  • Backup File - For simple file snapshots without custom tags.
  • Tagged File Snapshots - For simple file snapshots with tags.
  • Tagged Snapshots - For Tagged snapshots of editor files (all/active tab group).
  • Backup Folder - To backup/snapshot a folder.

☑️ Requirements

  • VS Code v1.75.0 or higher
  • Git installed and accessible in your system path

⚖️ License

MIT

🏠 Home

GitHub Repository

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