In the era of agentic coding, running IntelliJ IDEA alongside an AI-powered coding platform has become everyday practice.
IDEswitcher provides seamless bidirectional jumping between IntelliJ IDEA and AI editors (Qoder, CodeFuse, Cursor, Windsurf, Trae), precisely preserving file path and cursor position (line + column).
- Bidirectional Jump: IDEA <-> AI Editor with
Option+Shift+O(Mac) /Ctrl+Alt+O(Windows/Linux) - Precise Positioning: Cursor lands on the exact same line and column after jumping
- 5 Editor Targets: Qoder, CodeFuse, Cursor, Windsurf, Trae -- extensible via plugin API
- Smart Path Detection: Auto-discovers editors via
$PATH,/Applications,Program Files, Snap, JetBrains Toolbox - Custom Path Override: Configure non-standard installations via Settings UI
- Status Bar Widget: Shows current jump target -- click to cycle through installed editors
- Balloon Notifications: Jump failures show actionable error messages with [Open Settings] button
- Cross-Platform: macOS, Windows, and Linux
Option A: From JetBrains Marketplace (coming soon)
Search "IDEswitcher" in Settings -> Plugins -> Marketplace.
Option B: Build from Source
git clone https://github.com/MeloMei/IDEswitcher.git
cd IDEswitcher
./gradlew buildPlugin
# Output: build/distributions/IDEswitcher-2.0.0.zipInstall via: Settings -> Plugins -> gear icon -> Install Plugin from Disk...
cd agentic-ide-extension
npm install && npm run compileCopy the agentic-ide-extension/ directory to:
| Editor | Install Path | Directory Name |
|---|---|---|
| Qoder | ~/.qoder/extensions/ |
ide-switcher |
| CodeFuse | ~/.codefuse/extensions/ |
melomei.ide-switcher-2.0.0 |
| Cursor | Via Extensions panel | Search "IDEswitcher" |
| Windsurf | Via Extensions panel | Search "IDEswitcher" |
| Trae | Via Extensions panel | Search "IDEswitcher" |
Note: CodeFuse requires the
publisher.name-versiondirectory naming format.
Press the shortcut in either IDE:
| Platform | Shortcut |
|---|---|
| macOS | Option+Shift+O |
| Windows/Linux | Ctrl+Alt+O |
You can also use the context menu: Jump to Editor / Jump to IntelliJ IDEA.
IDEA -> AI Editor: shortcut -> EditorProfile.resolvePath() -> code --goto file:line:col
AI Editor -> IDEA: shortcut -> detectIntelliJ() [$PATH | /Applications | Toolbox] -> idea --line L --column C file
IDEswitcher/
+-- src/main/kotlin/.../ideswitcher/
| +-- action/JumpAction.kt # Main jump action
| +-- platform/Platform.kt # OS detection (MACOS/WINDOWS/LINUX)
| +-- target/
| | +-- Target.kt # Editor enum
| | +-- EditorProfile.kt # Cross-platform path resolution
| | +-- Jumper.kt # Jump interface
| | +-- QoderJumper.kt ... TraeJumper.kt
| +-- settings/
| | +-- IdeSwitcherSettings.kt # Persistent state
| | +-- IdeSwitcherConfigurable.kt # Settings UI (table + radio)
| +-- widget/TargetWidget.kt # Status bar widget
| +-- startup/WelcomeActivity.kt # First-run notification
| +-- extension/JumperProvider.kt # Third-party extension point
+-- agentic-ide-extension/ # VS Code extension
| +-- src/extension.ts # Core logic
| +-- src/detect.ts # Cross-platform IntelliJ detection
+-- .github/workflows/build.yml # CI
+-- CONTRIBUTING.md # How to add new editors
Third-party plugins can register custom editor jumpers via the JumperProvider extension point. See CONTRIBUTING.md for full instructions.
class MyEditorProvider : JumperProvider {
override val id = "my-editor"
override val displayName = "My Editor"
override fun createJumper(): Jumper = MyEditorJumper
}Register in your plugin.xml:
<extensions defaultExtensionNs="io.github.melomei.ideswitcher">
<jumper implementation="com.example.MyEditorProvider"/>
</extensions># Launch sandbox IDE
./gradlew runIde
# Kotlin tests (17 tests)
./gradlew test
# TypeScript tests (8 tests)
cd agentic-ide-extension && npm test- IDEA Plugin: Kotlin 1.9 + IntelliJ Platform SDK 2024.1
- Editor Extension: TypeScript + VS Code Extension API
- Build: Gradle (IDEA) / npm + vitest (extension)
- CI: GitHub Actions (macOS + Windows + Linux matrix)
- No runtime external dependencies
"Editor not found" notification:
- Make sure the target editor is installed
- If in a non-standard location, set a custom path in Settings -> Tools -> IDEswitcher
- JetBrains Toolbox users: the plugin auto-detects Toolbox installations
Jump fails with CLI error:
- CLI binary missing: install the CLI (e.g., VS Code -> "Install 'code' command in PATH")
- Permission denied (macOS/Linux):
chmod +x <path-to-cli> - Permission denied (Windows): try running as Administrator
Extension side (jumping back to IntelliJ):
- "CLI not found" (macOS): IntelliJ -> Tools -> Create Command-line Launcher
- "CLI not found" (Windows): ensure
idea64.exeis on your PATH - "CLI not found" (Linux):
sudo snap install intellij-idea-ultimate --classicor addbin/to PATH
Bug reports and pull requests are welcome! See CONTRIBUTING.md for details on adding new editors, reporting bugs, and submitting PRs.