ide-switcher
v0.1.1
Published
Instantly switch your default IDE for all file extensions
Downloads
17
Maintainers
Readme
ide-switcher
Instantly switch your default IDE for all file extensions. Stop opening .md in the old IDE while .ts opens in the one before that.
Install
Via bunx (recommended — no install required):
bunx ide-switcherVia Homebrew (macOS / Linux):
brew tap jelias/tap
brew install ide-switcherNote: To completely uninstall including preferences, run ide-switcher --reset before brew uninstall ide-switcher.
Via npm:
npm install -g ide-switcherUsage
ide-switcherInteractive flow — detects installed IDEs, lets you pick one, select file extensions, and applies changes.
ide-switcher cursor # Skip IDE selection
ide-switcher --list # See detected IDEs
ide-switcher --dry-run # Preview without applying
ide-switcher --reset # Clear saved preferences
ide-switcher --help # Full usageHow it works
macOS: Uses duti to set file associations via bundle IDs. Installed automatically via Homebrew if missing.
Linux: Uses xdg-mime (part of xdg-utils) to set MIME type defaults via .desktop files.
Supported IDEs
Auto-detected: Cursor, VS Code, Zed, Windsurf, WebStorm, IntelliJ IDEA, PyCharm, GoLand, RubyMine, Rider, CLion, Sublime Text, Nova, BBEdit, Xcode, Fleet, Emacs
Terminal editors (sets $EDITOR / $VISUAL instead): Neovim, Vim, Helix, Nano
Saved preferences
After your first run, preferences are saved to ~/.ide-switcher.json. Your extension selection is pre-checked on subsequent runs. Delete with ide-switcher --reset.
You can also add custom IDEs to the config manually:
{
"preferredExtensions": [".ts", ".tsx", ".md", ".json"],
"customIDEs": [
{
"name": "My Custom Editor",
"bundleId": "com.example.editor",
"cliPath": "/usr/local/bin/myeditor"
}
]
}Requirements
- macOS or Linux
- Bun (for
bunxusage) dution macOS (auto-installed)xdg-utilson Linux (sudo apt install xdg-utils)
License
MIT
