🔐 The Privacy Promise
Everything stays on your machine. Always.
No servers. No cloud sync. No analytics. No keychain access. Just clean, local file management — done right.
✨ Features
|
Feature |
Description |
| 🚀 |
Fast Account Switching |
Swap accounts instantly via the Cursor: Switch Account command |
| ➕ |
Add Accounts |
Securely save your active Cursor session as a named profile |
| 🗑️ |
Remove Accounts |
Permanently delete local profiles you no longer need |
| 🛡️ |
Automated Backups |
Your session is backed up automatically before every switch |
| 👀 |
Active Account HUD |
Always see which account is active right in your Status Bar |
| 🔒 |
Zero Network Requests |
The extension never talks to any external server — ever |
| 🧩 |
Open Source |
Every line of code is transparent and open for inspection |
| 🐳 |
Docker Support |
Build and package the extension in a clean, reproducible container |
📦 Installation
Choose the method that best fits your workflow — local setup or Docker.
Method 1 — Local Setup
Prerequisites: Node.js v16+ and Cursor IDE installed on your system.
1. Clone the repository
git clone https://github.com/your-username/cursor-account-switcher.git
cd cursor-account-switcher
2. Install dependencies
npm install
3. Open the project in Cursor IDE
cursor .
4. Run or package the extension
| Option |
Command |
Use case |
| 🧪 Debug / Dev |
Press F5 |
Launches an Extension Host for local testing |
| 📦 Package |
npm run package |
Builds a .vsix file for global installation |
5. Install the .vsix globally (if packaged)
code --install-extension cursor-account-switcher-*.vsix
💡 Tip: The vsce CLI tool is required to run npm run package. Install it with npm install -g @vscode/vsce.
Method 2 — 🐳 Docker (Clean & Reproducible)
No need to install Node.js, vsce, or any dependencies on your host machine. The included Dockerfile sets up a complete, isolated build environment based on Node.js 20 LTS Alpine — lightweight and secure.
What the Dockerfile does:
| Step |
Action |
| 🏗️ Base image |
node:20-alpine — minimal, secure Linux environment |
| 🔧 System deps |
Installs git for any source-based operations |
| 📦 Global tools |
Installs @vscode/vsce for .vsix packaging |
| 📋 Layer caching |
Copies package.json first to maximise Docker cache efficiency |
| 🔨 Build |
Runs npm install then npm run compile to produce the extension |
| 🖥️ Shell |
Drops you into an interactive sh shell, ready to package |
Build the Docker image
docker build -t cursor-account-switcher .
Run the container
docker run -it --rm -v "$(pwd)/dist:/app/dist" cursor-account-switcher
Package the .vsix from inside the container
# You're now inside the container shell
vsce package
# The .vsix file will be generated in /app/
💡 Tip: Mount a local dist/ volume (as shown above) so your packaged .vsix file is automatically available on your host machine after the container exits.
💡 Usage
Setting up your first two profiles
1. Log in to your primary Cursor account as you normally would.
2. Open the Command Palette:
| macOS |
Windows / Linux |
Cmd + Shift + P |
Ctrl + Shift + P |
3. Type and run Cursor: Add Account — name this profile (e.g., Personal).
4. Log out of Cursor, then log in with your secondary account (e.g., Work).
5. Open the Command Palette again, run Cursor: Add Account, and name it Work.
6. 🎉 You're all set! From now on, use Cursor: Switch Account to hot-swap between sessions anytime.
Available Commands
| Command |
Description |
Cursor: Add Account |
Save the current session as a named local profile |
Cursor: Switch Account |
Switch to any saved profile instantly |
Cursor: Remove Account |
Delete a saved local profile permanently |
💡 UX Tip — Reload After Switching
After running Cursor: Switch Account, open the Command Palette and run:
Developer: Reload Window
This fully applies the new session state and refreshes the entire UI. One reload, and you're in.
🔒 Security & Privacy Guarantee
This extension was designed from the ground up with your safety and privacy as the absolute highest priorities.
| Guarantee |
Details |
| ✅ 100% Local & Open Source |
All code is fully transparent, open to inspection, and runs strictly on your local machine — zero exceptions |
| ✅ Zero Telemetry |
The codebase contains absolutely no tracking, analytics, or usage reporting of any kind |
| ✅ No Network Requests |
The extension NEVER makes external API or network calls — it only manipulates local files |
| ✅ No OS Keychain Access |
We do not read passwords, emails, or system keychains — the extension only manages the SQLite state.vscdb files natively generated by Cursor |
| ✅ Automated Backups |
Before every session swap, your current database is automatically backed up to prevent any accidental data loss |
📂 Storage Locations
All profiles and backups are stored locally on your machine in these directories:
~/.cursor-account-switcher/
├── accounts/ ← Your saved named profiles
└── backups/ ← Automatic pre-switch backups
| Path |
Purpose |
~/.cursor-account-switcher/accounts/ |
Named profile snapshots |
~/.cursor-account-switcher/backups/ |
Automatic session backups created before each switch |
💡 Tip: You can manually inspect or back up these folders at any time — they're plain local directories, fully under your control.
🤝 Contributing
Contributions are highly encouraged and always welcome! Whether it's a bug fix, a new feature, or a docs improvement — all PRs are appreciated.
# 1. Fork the repo and clone your fork
git clone https://github.com/your-username/cursor-account-switcher.git
# 2. Create a feature branch
git checkout -b feat/your-feature-name
# 3. Make your changes, then run the tests
npm test
# 4. Push and open a Pull Request
git push origin feat/your-feature-name
✅ Please ensure all tests pass locally before submitting your PR to help keep things running smoothly for everyone.
📄 License
This project is licensed under the MIT License — free to use, modify, and distribute.
Built with ❤️ for the open-source community.
If this project saves you time, consider giving it a ⭐ on GitHub — it means the world.
