[BUG] Claude Code does not detect Jetbrains IDE on Windows WSL

Resolved 💬 113 comments Opened May 22, 2025 by masda70 Closed Aug 23, 2025
💡 Likely answer: A maintainer (hackyon-anthropic, collaborator) responded on this thread — see the highlighted reply below.

Environment

  • Platform (select one):
  • [X] Anthropic API
  • [ ] AWS Bedrock
  • [ ] Google Vertex AI
  • [ ] Other: <!-- specify -->
  • Claude CLI version: 1.0.0
  • Operating System: Windows 10 - WSL 2.2.4.0 with Ubuntu 22.04
  • Terminal: bash over WSL launched from Powershell 7

Bug Description

Jetbrains / PyCharm integration with Claude using the new Claude Code 0.1.3-beta plugin does not work

Steps to Reproduce

  1. Install claude on WSL
  2. Isntall Claude Code plugin on Jetbrains
  3. run Claude Code from Jetbrains
  4. run /config , and /ide commands within Claude Code
  5. let Claude Code edit files
  6. Restart multiple times IntelliJ as per the docs https://docs.anthropic.com/en/docs/claude-code/ide-integrations
  7. Repeat tests

Expected Behavior

/config -> Set the diff tool to auto for automatic IDE detection
/ide -> should command show integration with Jetbrains

Claude should show "Opened changes in IntelliJ..." when editing files and IntelliJ should display the diff

Actual Behavior

/config -> there are no "diff tool" settings

/ide command returns "No available IDEs detected. Make sure your IDE has the Claude Code extension or plugin installed and is running."

Let Claude Code edit files -> Changes are shown on the Claude Code's terminal

Additional Context

N/A

View original on GitHub ↗

113 Comments

hackyon-anthropic collaborator · 1 year ago

Thanks for the report, will take a look!

michabbb · 1 year ago

even jetbrains with their own ai agent "junie" do not support WSL2, I mean.. who cares that most developers on this planet use windows... crazy.... 🤷

lexura-saas · 1 year ago

Same problem here.
Is there any version of this plugin that actually works with Windows WSL?

markrmiller · 1 year ago
even jetbrains with their own ai agent "junie" do not support WSL2, I mean.. who cares that most developers on this planet use windows... crazy.... 🤷

A little bigger miss here - junie runs in Windows so you could still use it - claude code on windows means WSL - so this a strange miss to not at least note...

michabbb · 1 year ago

It's Irrelevant, fact is: both have not (well, or not at all) tested an environment, that most windows web developers are using, and that is extremely hard to understand, at least for me. It's more important to spin up the marketing Maschine, release first, fix later... With that attitude, of course, nobody cares about these pseudo apple users using a strange Virtualization. Let's be honest, it's our fault, we should have switched to Linux/Mac a long time ago 😏 now we have to live with the consequences constantly being ignored whenever someone releases something (cool) for jetbrains, nobody wants to deal with that stupid WSL2 thing. 😁

hackyon-anthropic collaborator · 1 year ago

Thanks for the report and patience. We're actively working on fixing this!

CoderF3ff · 1 year ago

@hackyon-anthropic thanks a lot for your work

Could you take on the VSCode issue as well?
https://github.com/anthropics/claude-code/issues/1276

leocape · 1 year ago

Same issue on Mac - /ide shows none, typing "claude" into the integrated terminal in VSCode or Cursor doesn't connect to the ide.

<img width="708" alt="Image" src="https://github.com/user-attachments/assets/a0d6def3-f7fd-4835-9577-e0d06043fc90" />

hackyon-anthropic collaborator · 1 year ago

We've released an updated plugin (v0.1.6-beta) that should address some of the issues with WSL! It should work with the latest Claude Code release v1.0.6

Steps:

  1. Open up your IDE project (current setup assumes the IDE is launched from Windows rather than within the WSL env, but let me know if your setup has it installed within the WSL env as well and we can look into adding support)
  2. Open up a terminal/Power Shell
  3. Start your WSL env (wsl -d Ubuntu) or equivalent
  4. Switch to the same dir as your project root
  5. Start Claude Code with claude
  6. Use the /ide command to select the running IDE to use

Please let me know if you're running into any issuee! Thanks!

poppabear8883 · 1 year ago

Is this issue also addressing the fact that you can not give claude code images while served in WSL ?

poppabear8883 · 1 year ago

Sill not working for me

!Image

!Image

michabbb · 1 year ago

@poppabear8883 don´t start CC in a regular windows WSL2, click the icon inside phpstorm (top right) so phpstorm opens a terminal inside phpstorm - and there CC will be started automatically.

!Image

poppabear8883 · 1 year ago
@poppabear8883 don´t start CC in a regular windows WSL2, click the icon inside phpstorm (top right) so phpstorm opens a terminal inside phpstorm - and there CC will be started automatically. !Image

Yes I have tried it that way as well, the /ide still is not connecting ... and the reason i don't use that method typically is because you can not use esc when in the embedded JB terminal, it simple just switches focus to the editor and doesn't send the esc signal to the terminal.

!Image

hackyon-anthropic collaborator · 1 year ago

Thanks @poppabear8883.

From within your WSL environment, can you check if the /mnt/c/Users/[YourWindowsUser]/.claude directory exists? This is where we save the plugin metadata for the plugin connection.

poppabear8883 · 1 year ago
Thanks @poppabear8883. From within your WSL environment, can you check if the /mnt/c/Users/[YourWindowsUser]/.claude directory exists? This is where we save the plugin metadata for the plugin connection.
poppabear@MSI:/mnt/c/Users/servn/.claude$ ls -la
total 0
drwxrwxrwx 1 poppabear poppabear 512 May 25 09:39 .
drwxrwxrwx 1 poppabear poppabear 512 May 25 09:52 ..
drwxrwxrwx 1 poppabear poppabear 512 May 31 09:34 ide

poppabear@MSI:/mnt/c/Users/servn/.claude$ ls -la ./ide
total 0
drwxrwxrwx 1 poppabear poppabear 512 May 31 09:34 .
drwxrwxrwx 1 poppabear poppabear 512 May 25 09:39 ..
hackyon-anthropic collaborator · 1 year ago

Cool, thanks for the info. This is super useful, and we're looking into it now!

msokolnickiitt · 1 year ago

I have both catalogues :
/mnt/c/Users/[user_name]/.claude$ ls
ide
_always empty_

and in wsl:

~/.claude/ide$ ls
55399.lock
_visible when Cursor is open._

JetBrains doesn't work.
Cursors works and configuration is under wsl.

modelD-svg · 1 year ago

Same here. In the logs I can see claude starting from the plugin with diff_envs={CLAUDE_CODE_SSE_PORT=50101, ENABLE_IDE_INTEGRATION=true, ...}, but the ide directory is empty and nothing shows in claude. Let me know if you need anymore info. Same for 1.0.6 and 1.0.7

enricoros · 1 year ago

Same: plugin 1.0.6, claude code 1.0.6, terminal on wsl.exe -d Ubuntu, shell as zsh, claude launched with the asterisk button:
the .claude/ide folder is empty both when read from ubuntu or windows.

enricoros · 1 year ago

Note, for people trying to at least make something work, this is how you can get Esc to work to stop the current gen/exit menus:

Uncheck this option:
!Image

tmackowski · 1 year ago

I finally made it work on Windows by installing WSL Extension in Visual Studia Code.
Previously I just ran code . from WSL but Claude didn't recognize IDE. Now after installing WSL extension VSC opens "in Linux mode" (all paths are /mnt/c/... and CC finally can find IDE:

!Image

markrmiller · 1 year ago

Just a note: I actually tried launching PyCharm from WSL when it didn't working launching from Windows originally, and I didn't really test anything out thoroughly, but the IDE was detected. I doubt many run that way, but just to note, that may already work.

modelD-svg · 1 year ago
Note, for people trying to at least make something work, this is how you can get Esc to work to stop the current gen/exit menus: Uncheck this option:

For older versions of jetbrains or as an alternative way, this also achieves this and additionally allows rebinding if you still want to be able to switch to the editor with your keyboard (from the plugin reviews):

Here's how to make the ESC key work: Go to settings → Keymap. Look for "Switch Focus To Editor". It should be bound to ESC. Unbind or rebind it. Next (still in Keybinds), expand Plugins → Terminal → Escape. It should say "inherited". Remove or rebind this one too

---

Just a note: I actually tried launching PyCharm from WSL when it didn't working launching from Windows originally, and I didn't really test anything out thoroughly, but the IDE was detected. I doubt many run that way, but just to note, that may already work.

Sadly this does not work for me in goland 2025.1.1. or pycharm 2025.1.1.1. Must be some subtle difference between our machines. Sounds like a nightmare to debug. Maybe can you specify what you mean by "running from wsl"? Just starting it from the wsl console, so just pycharm?

modelD-svg · 1 year ago

I got it to work. At least in my case, I had to have claude already opened in a terminal BEFORE opening the ide. Then starting the IDE, then doing /ide in claude.

I can also see a file in the .ide directory now:

/mnt/c/Users/usr/.claude$ ls -ll ./ide/
total 0
-rwxrwxrwx 1 usr usr 137 Jun  2 13:05 55607.lock

I think the IDE extension is correctly creating the lock file but claude deletes it on startup. Having claude already running when the file is created seems to work around this.

Edit: Well at least the initial connection from Claude Code works, it is still very unstable during usage however.

Edit2: Funnily enough I can get claude code to connect from the IDEs terminal by starting the ide, waiting for the lockfile to be created, setting the ide directory to readonly, then starting claude via the extension-button. Doesn't stay connected though.

Edit3:
<details>

<summary>Stacktrace</summary>

java.lang.Throwable: Bus is already disposed
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:375)
	at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverImmediately(MessageBusConnectionImpl.kt:47)
	at com.intellij.execution.console.ConsoleExecutionEditor.dispose(ConsoleExecutionEditor.java:200)
	at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:132)
	at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:164)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:205)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:193)
	at com.intellij.serviceContainer.ComponentManagerImpl.dispose(ComponentManagerImpl.kt:1174)
	at com.intellij.openapi.project.impl.ProjectImpl.dispose(ProjectImpl.kt:336)
	at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:132)
	at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:164)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:205)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:193)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject$lambda$17(ProjectManagerImpl.kt:418)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction$lambda$13(AnyThreadWriteThreadingSupport.kt:613)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction$lambda$15(AnyThreadWriteThreadingSupport.kt:623)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction(AnyThreadWriteThreadingSupport.kt:623)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction(AnyThreadWriteThreadingSupport.kt:613)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:988)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.kt:398)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject$default(ProjectManagerImpl.kt:323)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDisposeAllProjects(ProjectManagerImpl.kt:316)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$destructApplication$6(ApplicationImpl.java:706)
	at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:28)
	at com.intellij.openapi.application.impl.ApplicationImpl.destructApplication(ApplicationImpl.java:705)
	at com.intellij.openapi.application.impl.ApplicationImpl.doExit(ApplicationImpl.java:646)
	at com.intellij.openapi.application.impl.ApplicationImpl.exit(ApplicationImpl.java:631)
	at com.intellij.openapi.application.impl.ApplicationImpl.exit(ApplicationImpl.java:620)
	at com.intellij.openapi.application.ex.ApplicationEx.exit(ApplicationEx.java:56)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.quitApp(CloseProjectWindowHelper.kt:102)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.windowClosing$lambda$2(CloseProjectWindowHelper.kt:81)
	at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction$lambda$6(AnyThreadWriteThreadingSupport.kt:274)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:274)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:222)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:1009)
	at com.intellij.openapi.application.WriteIntentReadAction.compute(WriteIntentReadAction.java:55)
	at com.intellij.openapi.application.WriteIntentReadAction.run(WriteIntentReadAction.java:23)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.windowClosing(CloseProjectWindowHelper.kt:64)
	at com.intellij.openapi.wm.impl.ProjectFrameHelper.windowClosing(ProjectFrameHelper.kt:551)
	at com.intellij.openapi.wm.impl.WindowCloseListener.windowClosing(ProjectFrameHelper.kt:591)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)
	at java.desktop/java.awt.Window.processWindowEvent(Window.java:2115)
	at java.desktop/javax.swing.JFrame.processWindowEvent(JFrame.java:298)
	at java.desktop/java.awt.Window.processEvent(Window.java:2074)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5043)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2810)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:783)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:755)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:753)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:752)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:585)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:482)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10$lambda$9(IdeEventQueue.kt:307)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:864)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10(IdeEventQueue.kt:306)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:958)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:117)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:958)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12(IdeEventQueue.kt:301)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:341)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
2025-06-02 13:24:58,134 [ 200126] SEVERE - #c.i.u.m.i.MessageBusImpl - GoLand 2025.1.1  Build #GO-251.25410.140
2025-06-02 13:24:58,134 [ 200126] SEVERE - #c.i.u.m.i.MessageBusImpl - JDK: 21.0.6; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2025-06-02 13:24:58,134 [ 200126] SEVERE - #c.i.u.m.i.MessageBusImpl - OS: Windows 10
2025-06-02 13:24:58,134 [ 200126] SEVERE - #c.i.u.m.i.MessageBusImpl - Last Action: com.anthropic.code.plugin.actions.SendToClaudeAction

</details>

michabbb · 1 year ago

jetbrains plugins + WSL2 = always a FAIL

jetbrains junie: FAILED
claude code: FAILED
continuedev/continue: FAILED

while one single developer was able to solve such problems in less than a month... 🤷

Fixed spelling: i´m not a kotlin/java developer, but I have a hard time understanding why a simple mapping takes ages to fix 😞

@YetiCGN Thanks for pointing out my lack of English skills 🙏

YetiCGN · 1 year ago

You're coming across pretty arrogant and demanding, Micha. By the way, "ich tu mich schwer mit..." is not "I do myself hard" ...

hackyon-anthropic collaborator · 1 year ago

Thanks for the feedback. We're doing our best on this and hope to have it fixed asap!

We understand it can be frustrating at times, and we appreciate your patience while we iron out the issues!

Cobryis · 1 year ago

I can only get Rider to show up in /ide if I run claude code before i open Rider. Then I can select Rider from /ide, but it simply says IDE disconnected.

!Image

nakdeyes · 1 year ago

Just want to plus 1 and say I am getting the same experience with using Rider on windows and Claude Code via WSL2 terminal. I believe WSL is the only supported way to use Claude Code on windows right?

I have tried some of the solutions proposed here re: making a .wslconfig and setting registry keys and did not have any luck with them. As some other users have mentioned, I have been able to momentarily get claude code to find an ide via /ide, assuming I have launch claude code before launching my IDE - but I also find that it immediately says it is disconnected and doesn't seem to work, so I am not sure if I ever truly get connected with it.

Thanks so much as it seems like you are prioritizing a fix. I am curious if there is any way to run Claude Code outside WSL on windows since this does kinda seem like a WSL sandboxing thing.

Ausoj · 1 year ago

Plus 1'ing here too, having the same experience with PHPStorm and wsl on claude code 1.0.9

drewdotpro · 1 year ago

I see this issue also with IntelliJ Ultimate on Windows 11. Claude Code cannot connect to the IDE according to a balloon notification in IntelliJ and the IDE is not listed when running /ide inside Claude.
Plugin Version: 0.1.7-beta
Claude Code Version: 1.0.10

Recreation Steps:
1) Open IntelliJ
2) In my home folder's .claude folder an ide folder is created containing a lock file.
3) Click the Claude icon
4) The WSL terminal opens and launches Claude
5) The lock file is deleted from the ide folder.

lelandg · 1 year ago

_Solved_ 😄

After installing WSL ubuntu (or your favorite flavor), go into JetBrains IDE -> Settings -> Tools -> Terminal. Under "Application Settings", there's a dropdown with all terminals installed on your system. I selected "wsl.exe -d Ubuntu". Restart IDE and _poof_, clicking Cluade icon now opens WSL in the terminal window.

Note: the "/ide" command doesn't seem to work, but I don't know it's needed, since it's obviously working with the IDE.

Maybe just update your documentation? 😎

osulli · 1 year ago
Note: the "/ide" command doesn't seem to work, but I don't know it's needed, since it's obviously working with the IDE.

When you (@lelandg) say it is obviously working with the IDE what do you mean? What features should be working because when I see IDE Disconnected I assume the plugin is not working.

bgmulinari · 1 year ago
_Solved_ 😄 After installing WSL ubuntu (or your favorite flavor), go into JetBrains IDE -> Settings -> Tools -> Terminal. Under "Application Settings", there's a dropdown with all terminals installed on your system. I selected "wsl.exe -d Ubuntu". Restart IDE and _poof_, clicking Cluade icon now opens WSL in the terminal window. Note: the "/ide" command doesn't seem to work, but I don't know it's needed, since it's obviously working with the IDE. Maybe just update your documentation? 😎

That's what I wrote in my review, but without IDE integration all you have is a shortcut to invoke Claude Code, which is pointless.

So until this is fixed I wouldn't say it's _solved_.

If I can help in any way troubleshooting this issue, just let me know how.

lelandg · 1 year ago
> Note: the "/ide" command doesn't seem to work, but I don't know it's needed, since it's obviously working with the IDE. When you (@lelandg) say it is obviously working with the IDE what do you mean? What features should be working because when I see IDE Disconnected I assume the plugin is not working.

Oh, I see. I guess you're right. I stand corrected. However, it will run stuff. I mean, when I run "/init", it is working. And I think "claude doctor" is (not tested yet, but after init, it has worked before).

In retrospect, I don't know what features we should have in the IDE. So I don't know it's working. Therefore, my apologies for that.

poppabear8883 · 1 year ago
> > Note: the "/ide" command doesn't seem to work, but I don't know it's needed, since it's obviously working with the IDE. > > > When you (@lelandg) say it is obviously working with the IDE what do you mean? What features should be working because when I see IDE Disconnected I assume the plugin is not working. Oh, I see. I guess you're right. I stand corrected. However, it will run stuff. I mean, when I run "/init", it is working. And I think "claude doctor" is (not tested yet, but after init, it has worked before). In retrospect, I don't know what features we should have in the IDE. So I don't know it's working. Therefore, my apologies for that.

When the ide is connected, Claude is able to see which files are currently opened in the editor to use as context, its also able to see any selected text in the editor to use as context. This is just a few of the additional features we get with a properly connected IDE!

My hope is additionally, When the claude team is able to understand the disconnect between Windows and WSL in regards to Claude that it will also come with a fix for being able to paste/drag images into the WSL CLI for claude (as this does not work either)

edwh · 1 year ago

I love Claude Code, but use of WSL feels like a horrific kludge which is never going to work smoothly. I'm hoping it's a stopgap that will very soon disappear entirely, in favour of fully native Windows support.

On 4 June 2025 16:29:27 BST, "Everett (Mike) Wiley" @.***> wrote:

poppabear8883 left a comment (anthropics/claude-code#1232) > > > Note: the "/ide" command doesn't seem to work, but I don't know it's needed, since it's obviously working with the IDE. > > > > > > When you @.(https://github.com/lelandg)) say it is obviously working with the IDE what do you mean? What features should be working because when I see IDE Disconnected I assume the plugin is not working. > > Oh, I see. I guess you're right. I stand corrected. However, it will run stuff. I mean, when I run "/init", it is working. And I think "claude doctor" is (not tested yet, but after init, it has worked before). > > In retrospect, I don't know what features we should have in the IDE. So I don't know it's working. Therefore, my apologies for that. When the ide is connected, Claude is able to see which files are currently opened in the editor to use as context, its also able to see any selected text in the editor to use as context. This is just a few of the additional features we get with a properly connected IDE! My hope is additionally, When the claude team is able to understand the disconnect between Windows and WSL in regards to Claude that it will also come with a fix for being able to paste/drag images into the WSL CLI for claude (as this does not work either) -- Reply to this email directly or view it on GitHub: https://github.com/anthropics/claude-code/issues/1232#issuecomment-2940469505 You are receiving this because you are subscribed to this thread. Message ID: @.>
michabbb · 1 year ago

And I wish people would spend their time more wisely instead of trying to build some half-working hack at all costs, something that probably won’t even work anymore by the time this is finally fixed. Claude Code doesn’t need an IDE; it’s just a nice add-on. So really, it shouldn’t be a big deal to go without something you never had in the first place. Patience is a virtue 🧘

Cobryis · 1 year ago
And I wish people would spend their time more wisely instead of trying to build some half-working hack at all costs, something that probably won’t even work anymore by the time this is finally fixed. Claude Code doesn’t need an IDE; it’s just a nice add-on. So really, it shouldn’t be a big deal to go without something you never had in the first place. Patience is a virtue 🧘

Why are you spending your time on this thread then 😅

modelD-svg · 1 year ago
jetbrains plugins + WSL2 = always a FAIL jetbrains junie: FAILED claude code: FAILED continuedev/continue: FAILED while one single developer was able to solve such problems in less than a month... 🤷
Patience is a virtue 🧘

Patience is a virtue... right after I finish venting about how everything FAILED and why this isn't fixed already! 🧘➡️😤➡️🧘

nakdeyes · 1 year ago

Agreed that we should have patience and I appreciate the response that Anthropic devs have had on this thread.

Re: WSL isn't a great choice for windows.. I almost agree, but I think of it as a minor headache more than a full nonstarter. I already used WSL for my windows dev terminal environment due to the superiority of linux tools w/ ZSH and related terminal stuff. Since it has access to full windows file system and calling windows functions - its just some 1 time plumbing and then minor inconvenience in exchange for IMHO a better dev environment than what powershell can provide. ( I tried to use powershell as my main environment for years as well! )

If agentic tools ever get to the point where they can view or manipulate GUIs, I would guess we would feel more pain with Claude Code in windows due to WSL.. Since it is all terminal based at the moment, I'm fine with it as long as it works as advertised.

I think this particular issue of a Riders windows app, talking to WSL Claude Code, seems like one of the main considerations they would need to figure out due to the WSL choice. So it does seem a bit odd that the plugin was released without seemingly testing this? ( Or maybe there is some other work around floating out there, but I haven't found one that works in this thread ).

edwh · 1 year ago

I wonder whether it would be possible for Claude to use WSL under the covers, eg by creating shells to do its work.

As an example, I'd like Claude to be able to create, run and fix Playwright tests, including looking at the test debug outputs. It's good enough to have a go. But I don't want to have to maintain an identical working Playwright environment on both Windows native (for me) and WSL (for Claude), and it becomes a faff for me to dive into WSL to view Playwright debug trace from failed Claude attempts.

I can't see that ever working nicely via WSL. I might be missing something, of course.

modelD-svg · 1 year ago
I wonder whether it would be possible for Claude to use WSL under the covers, eg by creating shells to do its work. As an example, I'd like Claude to be able to create, run and fix Playwright tests, including looking at the test debug outputs. It's good enough to have a go. But I don't want to have to maintain an identical working Playwright environment on both Windows native (for me) and WSL (for Claude), and it becomes a faff for me to dive into WSL to view Playwright debug trace from failed Claude attempts. I can't see that ever working nicely via WSL. I might be missing something, of course.

I had a similar issue (assuming I understand correctly), where I wanted claude to be able to compile a program that would only compile on windows.

I solved this by creating a bridge between WSL and Windows: On the Windows side, I set up a local rest server that receives toolchain commands, verifies them, runs them, and streams the results back. On the WSL side, I put a small executable that just acts as a proxy - it takes whatever arguments it receives, sends them to the host server via http request, and prints the output it receives to stdout. I then put into claudes memory to use this executable as a drop-in replacement for the toolchain.

This has mostly worked well for me. Maybe this would also be feasible for your playwright scripts.

edwh · 1 year ago
I had a similar issue (assuming I understand correctly), where I wanted claude to be able I solved this by creating a bridge between WSL and Windows: On the Windows side, I set up a local rest server that receives toolchain commands, verifies them, runs them, and streams the results back. On the WSL side, I put a small executable that just acts as a proxy - it takes whatever arguments it receives, sends them to the host server via http request, and prints the output it receives to stdout. I then put into claudes memory to use this executable as a drop-in replacement for the toolchain. This has mostly worked well for me. Maybe this would also be feasible for your playwright scripts.

It's probably feasible, but it's insane 😊.

Kudos for getting that up and running, but in terms of UX for Windows developers using Claude it nicely illustrates the absurdity. If plumbing like that is needed, then it would be better to build it in so that wheels can sleep peacefully unreinvented.

Cobryis · 1 year ago
> I had a similar issue (assuming I understand correctly), where I wanted claude to be able > I solved this by creating a bridge between WSL and Windows: On the Windows side, I set up a local rest server that receives toolchain commands, verifies them, runs them, and streams the results back. On the WSL side, I put a small executable that just acts as a proxy - it takes whatever arguments it receives, sends them to the host server via http request, and prints the output it receives to stdout. I then put into claudes memory to use this executable as a drop-in replacement for the toolchain. > This has mostly worked well for me. Maybe this would also be feasible for your playwright scripts. It's probably feasible, but it's insane 😊. Kudos for getting that up and running, but in terms of UX for Windows developers using Claude it nicely illustrates the absurdity. If plumbing like that is needed, then it would be better to build it in so that wheels can sleep peacefully unreinvented.

Maybe I'm not understanding but I have Claude Code building and running things that are outside of WSL without issue using cmd.exe. I also have it using stdio MCP tools that are using commands running on windows instead of WSL. WSL isn't really an issue other than needing to inform it in CLAUDE.md how to properly do things on windows and in MCP providing the full path for the command executable instead of using the default which would typically select from the WSL env.

modelD-svg · 1 year ago
> > I had a similar issue (assuming I understand correctly), where I wanted claude to be able > > I solved this by creating a bridge between WSL and Windows: On the Windows side, I set up a local rest server that receives toolchain commands, verifies them, runs them, and streams the results back. On the WSL side, I put a small executable that just acts as a proxy - it takes whatever arguments it receives, sends them to the host server via http request, and prints the output it receives to stdout. I then put into claudes memory to use this executable as a drop-in replacement for the toolchain. > > This has mostly worked well for me. Maybe this would also be feasible for your playwright scripts. > > > It's probably feasible, but it's insane 😊. > Kudos for getting that up and running, but in terms of UX for Windows developers using Claude it nicely illustrates the absurdity. If plumbing like that is needed, then it would be better to build it in so that wheels can sleep peacefully unreinvented. Maybe I'm not understanding but I have Claude Code building and running things that are outside of WSL without issue using cmd.exe. I also have it using stdio MCP tools that are using commands running on windows instead of WSL. WSL isn't really an issue other than needing to inform it in CLAUDE.md how to properly do things on windows and in MCP providing the full path for the command executable instead of using the default which would typically select from the WSL env.

Youre right lol. I had a weeks long brainfart. No telling how many wheels would have been reinvented without you. :D

nakdeyes · 1 year ago
Maybe I'm not understanding but I have Claude Code building and running things that are outside of WSL without issue using cmd.exe. I also have it using stdio MCP tools that are using commands running on windows instead of WSL. WSL isn't really an issue other than needing to inform it in CLAUDE.md how to properly do things on windows and in MCP providing the full path for the command executable instead of using the default which would typically select from the WSL env.

Yup! I am same as you. Just use cmd.exe and Claude Code in WSL can kick off Windows build commands and then read the output. I am doing this for an Unreal Engine project where I want it to just build with the windows toolchain for a variety of reasons.

Cobryis · 1 year ago
> Maybe I'm not understanding but I have Claude Code building and running things that are outside of WSL without issue using cmd.exe. I also have it using stdio MCP tools that are using commands running on windows instead of WSL. WSL isn't really an issue other than needing to inform it in CLAUDE.md how to properly do things on windows and in MCP providing the full path for the command executable instead of using the default which would typically select from the WSL env. Yup! I am same as you. Just use cmd.exe and Claude Code in WSL can kick off Windows build commands and then read the output. I am doing this for an Unreal Engine project where I want it to just build with the windows toolchain for a variety of reasons.

I'm using it for UE as well :) I've almost closed the loop on Claude Code building tools for UE and testing them itself with MCP. Too bad CC doesn't support notifications/tools/list_changed yet though so I have to reboot CC to give it access to its new MCP tools.

nakdeyes · 1 year ago

New version of the plugin out ( 0.1.7-beta ) .. release notes:

What’s New
[Plugin Versions](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-/versions)
Bug fixes:
Diffs opening up in a different project when multiple IDE instances are opened
Add settings option to skip 'Claude Not Found' notification
**Issues with connecting WSL2 VMs to the plugin server**

.. updated and.. Nothing for me! Curious if anyone else has had any luck with this new update, or if these are some other tier of WSL issue?

Cobryis · 1 year ago
New version of the plugin out ( 0.1.7-beta ) .. release notes: `` What’s New [Plugin Versions](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-/versions) Bug fixes: Diffs opening up in a different project when multiple IDE instances are opened Add settings option to skip 'Claude Not Found' notification **Issues with connecting WSL2 VMs to the plugin server** `` .. updated and.. Nothing for me! Curious if anyone else has had any luck with this new update, or if these are some other tier of WSL issue?

same. updated the cli as well (auto update doesn't work for me)

Saracen74 · 1 year ago

!Image
There is some progress, but the IDE remains disconnected. And there are no visible IDEs inside the Pycharm terminal.
Managed to "connect" when I started Pycharm after Claude Code.

anose001 · 1 year ago

plugin v 0.1.7-beta does not fix the above issues for me. IDE is not being detected via /ide command on windows vis wsl nor can i use any diff-views. It seems like we have to wait a bit longer

enricoros · 1 year ago

Is there anything we can do to help with this issue? Happy to provide a remote desktop to my machine or something. I really like to use Claude Code on mac, but it's not working on my main dev machine (win 11 / wsl).

lucasfarina · 1 year ago

Hey everyone! Found a way to get it working with windows! Not sure if it is ideal but...

  1. After you setup your wsl claude code installation
  2. Make sure the Claude Code plugin is installed on your Jetbrains IDE
  3. Open WSL settings -> Networking -> and change the Networking mode to Mirrored, and turn on Host Address Loopback
  4. Open rider settings -> Claude Code [Beta] -> Put the following Claude command wsl -d Ubuntu -- bash -i -c "claude", and turn on "Skip the Claude Command not found check"
  5. Use /ide to find your IDE and connect! It should work now!

EDIT: Maybe you don't need the Host Address Loopback actually, just the networking mode to mirrored seems to already help you find the windows-running IDE

nakdeyes · 1 year ago
Hey guys! Found a way to get it working with windows! Not sure if it is ideal but... 1. After you setup your wsl claude code installation 2. Make sure the Claude Code plugin is installed on your Jetbrains IDE 3. Open WSL settings -> Networking -> and change the Networking mode to Mirrored, and turn on Host Address Loopback 4. Open rider settings -> Claude Code [Beta] -> Put the following Claude command wsl -d Ubuntu -- bash -i -c "claude", and turn on "Skip the Claude Command not found check" 5. Use /ide to find your IDE and connect! It should work now!

You absolute legend. This worked for me as well, but I'll note the 2 slight tweaks to these instructions I had for my setup:

  1. My Rider terminal settings already are to launch "wsl -d Ubuntu" as my terminal, so for my claude command, I just use "bash -i -c "claude" - I think this step would vary based on local terminal settings.
  2. After all that, none of it was working for me still, but before complaining I rebooted my machine and now it all works - I think a full restart of WSL on some level is required, but this may have just been due to already running it before making these changes - I find I am unsure when windows is spinning up WSL instances in relation to when I am using WSL terminals.

Anywho. Thanks so much for sharing! I am connected and it seems to be working but I'm excited to try it out more. Will report back if any issues, but thanks so much for sharing 🍻

nakdeyes · 1 year ago

Generally all working, I am not sure how required the " bash -i -c " part of launching Claude is.

Then I'll note as well, for every query I do, I am now getting this error, but then it ends up totally just working after that - so seems benign? So many moving parts to the auth and such, it might just be my environment. I will just deal with it for now since it is generally working

This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
McpError: MCP error -32603: Tool not found: closeAllDiffTabs
at Mc1._onresponse (file:///home/tim/.nvm/versions/node/v22.16.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1358:20090)

lucasfarina · 1 year ago
Generally all working, I am not sure how required the " bash -i -c " part of launching Claude is. Then I'll note as well, for every query I do, I am now getting this error, but then it ends up totally just working after that - so seems benign? So many moving parts to the auth and such, it might just be my environment. I will just deal with it for now since it is generally working This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: McpError: MCP error -32603: Tool not found: closeAllDiffTabs at Mc1._onresponse (file:///home/tim/.nvm/versions/node/v22.16.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1358:20090)

Since you're already opening your terminal with wsl -d Ubuntu, you are probably just waiting for it load and then opening claude, which you can just type "claude" and enter. But the command I put is for keeping the terminal a regular windows terminal, and then when you click the "Claude" icon up there, it opens both the wsl -d Ubuntu, and once the ubuntu is open it opens the claude and that bash -i -c is for that (wait for the interactive terminal then run "claude" etc.)

I'm also receiving that error, but just sometimes, don't know why... Maybe something to do with closing the rider diff tool

Saracen74 · 1 year ago
Hey everyone! Found a way to get it working with windows! Not sure if it is ideal but... 1. After you setup your wsl claude code installation 2. Make sure the Claude Code plugin is installed on your Jetbrains IDE 3. Open WSL settings -> Networking -> and change the Networking mode to Mirrored, and turn on Host Address Loopback 4. Open rider settings -> Claude Code [Beta] -> Put the following Claude command wsl -d Ubuntu -- bash -i -c "claude", and turn on "Skip the Claude Command not found check" 5. Use /ide to find your IDE and connect! It should work now! EDIT: Maybe you don't need the Host Address Loopback actually, just the networking mode to mirrored seems to already help you find the windows-running IDE

Finally! Worked for me in PyCharm, thanks!
Also you can setup wsl settings by creating C:\Users\[your_user_profile]\.wslconfig with following config:

[wsl2]
networkingMode=mirrored
xdrew · 1 year ago

Do you guys use stadard windows paths with this workaround? Cause after setting networking mode I get:
Found 1 other running IDE(s). However, their workspace/project directories do not match the current cwd.

!Image

Like here: https://github.com/anthropics/claude-code/issues/1411

modelD-svg · 1 year ago
Hey everyone! Found a way to get it working with windows! Not sure if it is ideal but... 1. After you setup your wsl claude code installation 2. Make sure the Claude Code plugin is installed on your Jetbrains IDE 3. Open WSL settings -> Networking -> and change the Networking mode to Mirrored, and turn on Host Address Loopback 4. Open rider settings -> Claude Code [Beta] -> Put the following Claude command wsl -d Ubuntu -- bash -i -c "claude", and turn on "Skip the Claude Command not found check" 5. Use /ide to find your IDE and connect! It should work now! EDIT: Maybe you don't need the Host Address Loopback actually, just the networking mode to mirrored seems to already help you find the windows-running IDE

One small limitation is that mirrored networking is seemingly only supported on windows11.

It is strange to me that this seems to be a networking issue. Not what I would have thought.

modelD-svg · 1 year ago
Do you guys use stadard windows paths with this workaround? Cause after setting networking mode I get: Found 1 other running IDE(s). However, their workspace/project directories do not match the current cwd. !Image Like here: #1411

Yes, I prefer using windows paths. It looks like you have your project files in the wsl storage. When you have them in the windows filesystem, it gets mounted at /mnt/c/ and then just the windows path. Probably an unrelated bug suitable for its own issue.

poppabear8883 · 1 year ago
Do you guys use stadard windows paths with this workaround? Cause after setting networking mode I get: Found 1 other running IDE(s). However, their workspace/project directories do not match the current cwd. !Image Like here: #1411

I'm also getting this.

I also notice that while in Mirrored networking mode my projects within a docker container run significantly slower and is almost unusable.

I may try storing on the windows storage as some of the others suggested, if I do I will report back with those results.

DerekLJ · 1 year ago

Me three. Using Mirrored networking on wsl2.

Claude runs in wsl with a cwd: "/home/name/projects/myproject"
Claude complains that the project workspace is: "//wsl$/Ubuntu/home/name/projects/myproject/"

│ No available IDEs detected. Make sure your IDE has the Claude Code extension or plugin installed and is running. │ │ │ │ Found 1 other running IDE(s). However, their workspace/project directories do not match the current cwd.
dave-solo · 1 year ago

Here's some info on how I just got this working in IntelliJ (without mirrored networking). Hint: disable the firewall and create a port forward. Caveat: It's preliminary, fragile, and might not be feasible for you. 🫣

  1. If not already, configure IntelliJ to open Powershell (File | Settings | Tools | Terminal | Shell path).
  2. Close any terminals you have open in IntelliJ.
  3. (Uh oh!) Disable your Windows Defender firewall (press the Windows key, type "Check firewall status", click "Turn Windows Defender Firewall on or off").
  4. Restart IntelliJ (with firewall off).
  5. Start a new Powershell terminal window in IntelliJ (Alt-F12).
  6. Open the IntelliJ log, idea.log (Help | Show Log in Explorer).
  7. Find the last occurrence of the text CLAUDE_CODE_SSE_PORT=. The timestamp should be from the last minute (when the terminal was opened)--if it isn't, try restarting the terminal, or all of IntelliJ. Your port number will vary. Let's assume it's 61805.
  8. Open a new elevated Powershell (ie as administrator) outside IntelliJ.
  9. Create a port forward (replace with your port):

netsh interface portproxy add v4tov4 listenport=61805 listenaddress=0.0.0.0 connectaddress=127.0.0.1

  1. As usual (can be outside IntelliJ): wsl -d Ubuntu; cd /mnt/c/my-project-path; claude; /ide
  2. Vibe.
  3. Turn your firewall back on. (The integration won't work anymore.)

Notes:

  • IntelliJ v2025.1.1.1, plugin: 0.1.7-beta
  • It seems I have to restart IntelliJ if I forget to disable the firewall.
  • I had to close other IntelliJ instances so it matched the right project folder.
  • Homework: Have Claude create a script to find the port, create the forward, and add a targeted firewall rule.
  • To view and cleanup your port forwards:
  • netsh interface portproxy show all
  • netsh interface portproxy delete v4tov4 listenport=[your-port] listenaddress=0.0.0.0
sundayz-hunter · 1 year ago

I succeeded with WSL in mirrored but it doesn't keep the ide in the configuration.
I must redo /ide and register Pycharm each time, is this normal behavior?

modelD-svg · 1 year ago
Here's some info on how I just got this working in IntelliJ (without mirrored networking). Hint: disable the firewall and create a port forward. Caveat: It's preliminary, fragile, and might not be feasible for you. 🫣 1. If not already, configure IntelliJ to open Powershell (File | Settings | Tools | Terminal | Shell path). 2. Close any terminals you have open in IntelliJ. 3. (Uh oh!) Disable your Windows Defender firewall (press the Windows key, type "Check firewall status", click "Turn Windows Defender Firewall on or off"). 4. Restart IntelliJ (with firewall off). 5. Start a new Powershell terminal window in IntelliJ (Alt-F12). 6. Open the IntelliJ log, idea.log (Help | Show Log in Explorer). 7. Find the last occurrence of the text CLAUDE_CODE_SSE_PORT=. The timestamp should be from the last minute (when the terminal was opened)--if it isn't, try restarting the terminal, or all of IntelliJ. Your port number will vary. Let's assume it's 61805. 8. Open a new elevated Powershell (ie as administrator) outside IntelliJ. 9. Create a port forward (replace with your port): netsh interface portproxy add v4tov4 listenport=61805 listenaddress=0.0.0.0 connectaddress=127.0.0.1 10. As usual (can be outside IntelliJ): wsl -d Ubuntu; cd /mnt/c/my-project-path; claude; /ide 11. Vibe. 12. Turn your firewall back on. (The integration won't work anymore.) Notes: IntelliJ v2025.1.1.1, plugin: 0.1.7-beta It seems I have to restart IntelliJ if I forget to disable the firewall. I had to close other IntelliJ instances so it matched the right project folder. Homework: Have Claude create a script to find the port, create the forward, and add a targeted firewall rule. To view and cleanup your port forwards: netsh interface portproxy show all * netsh interface portproxy delete v4tov4 listenport=[your-port] listenaddress=0.0.0.0

Good research! Here's my attempt at some improvements.

Firewall: Leave it active. Run once in powershell as admin:

New-NetFirewallRule -DisplayName "Allow WSL Internal Traffic" -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress 172.23.0.0/16 -LocalAddress 172.23.0.0/16

Note: Not sure if these IPs are identical for everyone

Claude Code Port: Instead of looking for the port in the log, use the lock-file:

Get-ChildItem -Path "$env:USERPROFILE\.claude\ide" -Filter "*.lock" | ForEach-Object { $port = [System.IO.Path]::GetFileNameWithoutExtension($_.Name); netsh interface portproxy add v4tov4 listenport=$port listenaddress=0.0.0.0 connectaddress=127.0.0.1 }
hackyon-anthropic collaborator · 1 year ago

Loving how much hacking is going on in this thread 💯 . Everyone here is a total rockstar for helping debug and resolve some of the issues here! ❤

Just a headers up that we are still actively working on this, and should have a solution soon to 1) not require mirror networking mode, and 2) fix some of the file path mapping issues between WSL and Claude Code (for C:\ or //wsl$/Ubuntu/ paths).

We really appreciate your patience as we work through this, and we're really excited that everyone in the community has been so helpful in debugging and tracking down the issues with us!

bgmulinari · 1 year ago

@hackyon-anthropic that's great news. The mirror mode got the IDE integration working, but I started having port binding issues with it that I wasn't having before:

System.IO.IOException: Failed to bind to address https://127.0.0.1:44320: address already in use.
 ---> Microsoft.AspNetCore.Connections.AddressInUseException: Only one usage of each socket address (protocol/network address/port) is normally permitted.
 ---> System.Net.Sockets.SocketException (10048): Only one usage of each socket address (protocol/network address/port) is normally permitted.

This only goes away if I kill the wsl.exe processes and restart Claude Code.

cwilso03 · 1 year ago

I can confirm that this bug seems resolved with the 0.1.8-beta version of the Intellij IDEA Claude Code [Beta] plugin, coupled with the 1.0.18 version of Claude Code itself. This works without needing to set up network mirroring in WSL or any of the other workarounds mentioned already in this thread.

Thanks, Anthropic team, for the quick response on this!

DerekLJ · 1 year ago

The latest versions (0.1.8-beta and 1.0.18) only make it work for me with networkingMode=mirrored on. Progress. However this breaks my git, so its not an option.

Without mirrored networking: "No available IDEs detected."

Windows 11
PhpStorm

modelD-svg · 1 year ago
I can confirm that this bug seems resolved with the 0.1.8-beta version of the Intellij IDEA Claude Code [Beta] plugin, coupled with the 1.0.18 version of Claude Code itself. This works without needing to set up network mirroring in WSL or any of the other workaround mentioned already in this thread. Thanks, Anthropic team, for the quick response on this!

I was ready to dismiss this as it didn't work initially for me, but after some testing it started working. It may be necessary to restart the IDE a couple of times for whatever reason. I think the troubleshooting docs also mention this.

I can also see a new incoming connection from 172.23.160.1 to the IDE that wasn't there previously.

bgmulinari · 1 year ago

I can confirm that version 0.1.8-beta fixes the IDE detection, and mirrored network mode in WSL is no longer needed! 🚀

The only issue that persists is that I have to manually connect the IDE every time Claude Code is opened with the /ide command. According to the documentation this should be automatic when Claude Code is invoked through the built-in terminal in the IDE, but that doesn't happen.

cwilso03 · 1 year ago
The only issue that persists is that I have to manually connect the IDE every time Claude Code is opened with the /ide command. According to the documentation this should be automatic when Claude Code is invoked through the built-in terminal in the IDE, but that doesn't happen.

I just tried exiting Claude Code and restarting it, and I see that behavior, too. The IDE is listed in the /ide settings, but "None" is selected by default.

hackyon-anthropic collaborator · 1 year ago

Hey everyone - thank you so much for your patience! ❤

We've just pushed out a new Claude Code version and and JetBrains plugin update this morning, and it should now support more WSL configurations!

Specifically, it should now work without mirrored networking mode, and there should be automatic path translations between WSL and Claude Code (ie. it will try to map between \\wsl$\Ubuntu\home\ and /home/, as well as between /mnt/c/ and C:\, configurable in the settings)

For now, you will still need/ide to connect, but we're actively looking into options to auto-connect!

hackyon-anthropic collaborator · 1 year ago

Please continue to let us know if you encounter issues. We'll do our best to fix any other issues that come up!

DerekLJ · 1 year ago
Please continue to let us know if you encounter issues. We'll do our best to fix any other issues that come up!

https://github.com/anthropics/claude-code/issues/1232#issuecomment-2963331331
I cannot get it to work without mirrored networking mode. Now on versions 1.0.21 and 0.1.8-beta.

I can provide logs or do screen share -- claude code is amazing so I want it to get it fully working!

dylanh724 · 1 year ago

On 1.0.21 (Claude Code) via Windows 11 WSL2, /ide !detects on JB Rider 2025.1.2; Claude Code plugin 0.1.8-beta

!Image

claude --version
1.0.21 (Claude Code)

/ide

No available IDEs detected

NOT using mirrored networking unless that's default - I didn't touch those settings (or know what they do).

vvhustle · 1 year ago

/

!Image

!Image

Finally, I connect WSL <-> Claude

!Image

Thanks to sudo ln -s "my global npm path" /usr/local/bin/claude

hackyon-anthropic collaborator · 1 year ago

Nice!

@dylanh724 @DerekLJ - would you be able to try these steps?

  1. Close all instances of the IDE
  2. Start Claude Code in an external powershell
  3. Launch the IDE
  4. Now try to connect using the /ide command

Let me know what shows up in the /ide command. Thanks!

Also, do you know if you're running WSL2 or WSL1 (it's normally WSL2 by default)

if-of · 1 year ago

@hackyon-anthropic

Let me know what shows up in the /ide command. Thanks!

For me it helped. Claude Code now sees IntelliJ IDEA.
But when i select IntelliJ IDEA I immidiately see "IDE disconnected"

!Image

hackyon-anthropic collaborator · 1 year ago

@if-of thanks for checking! Looks like there's a connection issue.

Are you running on WSL2? When you are run the command ip route show | grep -i default, does it print out anything? (don't need to post what the output is, but just to see if there is a correct network interface installed in your WSL2 env)

if-of · 1 year ago

@hackyon-anthropic

when running inside my wsl2 ubuntu image i get
default via 172.24.0.1 dev eth0 proto kernel

A few additional points:

  • with mirrored network mode everything works like a charm
  • without mirrored network mode, when run claude from the IDE's terminal - no IDE is available. So I need to run claude first in a separate terminal window and only then the IDE. And then anyway I see "IDE disconnected"
DerekLJ · 1 year ago

Mine never works without mirrored networking.

Powershell as admin:

PS C:\WINDOWS\system32> wsl
root@DESKTOP-URQOB9O:/mnt/c/WINDOWS/system32# cd /home/derek/projects/laravel2
root@DESKTOP-URQOB9O:/home/derek/projects/laravel2# claude
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code!                         │

Then leaving that running I open PhpStorm and run this (and I tried clicking the Anthropic logo with the same results):

root@DESKTOP-URQOB9O:/home/derek/projects/laravel2# claude
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code!    

/ide returns no ides.

Networking debug:

root@DESKTOP-URQOB9O:/home/derek/projects/laravel2# ip route show | grep -i default
default via 172.23.176.1 dev eth0 proto kernel

WSL version. It shows Windows version 10 but I'm using Windows 11; this is expected according to Claude.

PS C:\WINDOWS\system32> wsl --version
WSL version: 2.3.26.0
Kernel version: 5.15.167.4-1
WSLg version: 1.0.65
MSRDC version: 1.2.5620
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26100.4349

Claude Code Status v1.0.22
and plugin Version 0.1.8-beta

lelandg · 1 year ago

It runs Claude Code, now (if I set WSL as terminal), but my IDE list is empty. (I'm currently in WebStorm. Haven't tried others.)

It can be helpful as-is.

modelD-svg · 1 year ago

I also ran into some issues with the ide showing disconnected immediately, but it started working again after some IDE restarts and me adding back the network rule as powershell-admin:

New-NetFirewallRule -DisplayName "Allow WSL Internal Traffic" -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress 172.23.0.0/16 -LocalAddress 172.23.0.0/16

It can be removed again by doing

 Remove-NetFirewallRule -DisplayName "Allow WSL Internal Traffic"

Not entirely sure if this was the reason it started working again

dylanh724 · 1 year ago

I noticed a new icon at the top-right for Claude Code in Rider. When I click it, it opens PowerShell and errors out since it should be opening wsl2. This bug could be related to !detection with /ide

!Image

Yes, you can customize the command, but I can't simply wsl -e claude; I tried. It's a rabbit hole to hell. This needs to open in wsl before the command hits or it won't work without tremendous effort.

If this is running in the background to be detected via /ide, this could be why it's !detected?

vuhoanglam · 1 year ago

Here are a couple of scenarios to help developers reproduce the bug:

Scenario 1

  1. Ensure no JetBrains IDEs are currently open.
  2. Open your terminal, then WSL.
  3. Launch the IDE.
  4. cd into your project and type claude.
  5. The IDE is detected, but attempting to connect results in an immediate disconnection.

Scenario 2

  1. Ensure no JetBrains IDEs or Claude sessions are active.
  2. Open the IDE. (At this point, the plugin should automatically create a lock file in .../claude/ide/63535.lock – note that the port number may vary.)
  3. Open a terminal (either within or outside the IDE, the result is the same) and start Claude. The lock file then disappears.

---

Potential Firewall Issue

The problem might be related to the firewall. If I check the IP address like this:

wsl hostname -I
>172.21.xyz.xyz

And then set a firewall rule as follows (run as administrator):

New-NetFirewallRule -DisplayName "Allow WSL Internal Traffic" -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress 172.21.0.0/16 -LocalAddress 172.21.0.0/16

With this rule in place, everything works. The immediate disconnection issue is resolved, and the IDE can be detected regardless of the order in which the IDE or Claude is opened.

Prakkkmak · 1 year ago

Can't make it work, what the solution now ?

eefan000 · 1 year ago

I still can't use it. I can use the claude code plugin to call claude normally, but I still can't find the rider for '/ide'

wywwzjj · 1 year ago
Nice! @dylanh724 @DerekLJ - would you be able to try these steps? 1. Close all instances of the IDE 2. Start Claude Code in an external powershell 3. Launch the IDE 4. Now try to connect using the /ide command Let me know what shows up in the /ide command. Thanks! Also, do you know if you're running WSL2 or WSL1 (it's normally WSL2 by default)

It works! But why does it need an external powershell, rather than using claude button in the IDE?

DerekLJ · 1 year ago

I'm glad others have gotten it working, which gives me hope, but nothing I've tried makes it appear in /ide EXCEPT turning on mirrored networking.

zeroarst · 1 year ago

Start claude code first then WebStorm, I can see WebStorm in /ide, but after click it, it is just shown "IDE disconnected".
No diff view in /config, so I assume the issue is still there.
!Image
!Image
!Image

modelD-svg · 1 year ago
Yes, you can customize the command, but I can't simply wsl -e claude; I tried. It's a rabbit hole to hell. This _needs_ to open in wsl before the command hits or it won't work without tremendous effort.

Not sure what the rabbit hole you are speaking about is.

There are 2 simple options I am aware of:

<details>
<summary>aliasing</summary>

Open powershell profile in notepad:

 notepad $env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

In the following code, replace the path /home/user... with the output from which claude (run in wsl), then put it in the file

function Invoke-Claude {
    wsl -d ubuntu -e bash -l -c /home/user/.npm-global/bin/claude
}
Set-Alias -Name claude -Value Invoke-Claude

Restart IDE/powershell. Obviously for this to work, your default editor in the IDE needs to be powershell, which it was for my by default.
</details>

<details>
<summary>changing ide terminal defaults</summary>

  • Go to Settings > Tools > Terminal
  • Shell Path: C:\Windows\System32\wsl.exe -d ubuntu (replace ubuntu with your wsl instance – I found that specifying it is necessary for colors to work in the terminal).

Downside being that by default, the terminal now opens in wsl. You can still click the v icon though.
</details>

Now try clicking on the claude icon. It should work.

---

However, you will notice, that the ESCAPE key doesn't work in the IDEs terminal. You again have two options to fix this:

<details>
<summary>Rebinding</summary>

Go to settings → Keymap. Look for "Switch Focus To Editor". It should be bound to ESC. Unbind or rebind it. Next (still in Keybinds), expand Plugins → Terminal → Escape. It should say "inherited". Remove or rebind this one too.

</details>

<details>
<summary>Terminal Option (as mentioned by @enricoros), may not be available on older ide version (android studio for example does not seem to have that option yet, but rebinding works)</summary>

Note, for people trying to at least make something work, this is how you can get Esc to work to stop the current gen/exit menus: Uncheck this option: !Image

</details>

---

Obviously, both of these should be handled by the plugin natively, but it is not clear if jetbrains' api offers these capabilities.

Also, I don't personally like using jetbrains IDE terminal for running claude (neither the old one nor the reworked beta). I find using the normal microsoft terminal to be a better experience currently. Maybe if the beta gets better. So this may not even be worth it :D

---

If you have connection issues (immediate disconnection), try in PowerShell as admin

$ip = ((wsl -d Ubuntu -e hostname -I).Trim().Split('.')[0..1] -join '.') + '.0.0'; New-NetFirewallRule -DisplayName "Allow WSL Internal Traffic" -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress "$ip/16" -LocalAddress "$ip/16"

Edit: Got some feedback from a colleague. On many installations, wsl hostname -I will not work for our purposes. As such, I changed the command to include the wsl instance specifically. I also made the rule broader to use /16 as they may change.

Note: If you do not use ubuntu, replace -d Ubuntu with your wsl instance. check if hostname -I is available on your machine first.

This has been working for me for 5 days straight now on windows10.

EansonLee · 1 year ago

!Image
My system is Windows, and I’ve already installed the Claude plugin on Cursor (version 1.0.29). However, I’m still getting the above error when running the /ide command.
Could you please advise how I should resolve this?

Unravl · 1 year ago

just throwing some input in here. My install worked fine with root user on arch linux. however after I made a non root user, it didn't detect the IDE anymore.

hackyon-anthropic collaborator · 1 year ago

Thanks everyone again for their input and support!

We are working on a bigger change that will hopefully alleviate Windows issues even more. In the meantime, we now have a setting in /config that allows you to auto-connect to an IDE (the setting only shows up when you are already connected to an IDE).

@DerekLJ - just to verify, it works fine with mirrored networking, but doesn't work without? If so, it sounds like there's still a networking/firewall issue with WSL that's blocking the connection. If you 1) close all IDEs, 2) start Claude in a separate terminal (Powershell+WSL) instance [edited from before], 3) open up your IDE, and 4) run /ide, can you verify that something does show up? It might show disconnected if you choose one of those items, but wanted to check if something actually shows up with these steps

@zeroarst - can you please try to add the networking rule here? https://github.com/anthropics/claude-code/issues/1232#issuecomment-2983198969

cwilso03 · 1 year ago
2) start Claude in a separate Powershell instance

Does Claude now work in Powershell?

hackyon-anthropic collaborator · 1 year ago

Sorry for the confusion, I meant starting Claude in from a separate terminal (Powershell+WSL) instance!

DerekLJ · 1 year ago
@DerekLJ - just to verify, it works fine with mirrored networking, but doesn't work without? If so, it sounds like there's still a networking/firewall issue with WSL that's blocking the connection. If you 1) close all IDEs, 2) start Claude in a separate terminal (Powershell+WSL) instance [edited from before], 3) open up your IDE, and 4) run /ide, can you verify that something does show up? It might show disconnected if you choose one of those items, but wanted to check if something actually shows up with these steps
  1. I open Powershell as admin, switch to my project directory, and run wsl. Then I run claude. (see top of screenshot)
  2. I then open PHPstorm, either click the Anthrophic logo from the plugin or just run claude in the terminal, then type /ide. (see bottom of screenshot)
  3. I become disappointed.

!Image

lelandg · 1 year ago
Thanks everyone again for their input and support! We are working on a bigger change that will hopefully alleviate Windows issues even more. In the meantime, we now have a setting in /config that allows you to auto-connect to an IDE (the setting only shows up when you are already connected to an IDE). @DerekLJ - just to verify, it works fine with mirrored networking, but doesn't work without? If so, it sounds like there's still a networking/firewall issue with WSL that's blocking the connection. If you 1) close all IDEs, 2) start Claude in a separate terminal (Powershell+WSL) instance [edited from before], 3) open up your IDE, and 4) run /ide, can you verify that something does show up? It might show disconnected if you choose one of those items, but wanted to check if something actually shows up with these steps @zeroarst - can you please try to add the networking rule here? #1232 (comment)

I followed your steps, and it works! Note the Claude plugin does not work, but I can now select Rider in the IDE. Thank you!
Edit: The plugin only does not open Claude when I click it. But that's okay. (See below.)

However, I don't see WebStorm in the list of IDEs, even though I have the plugin installed, and it's open. Does it only find the first IDE that's open? Or is this a bug?

For clarity, "your steps" that I followed are:

1) close all IDEs,
2) start Claude in a separate terminal (Powershell+WSL) instance [edited from before],
3) open up your IDE, and
4) run /ide

4 is in the original Claude session.

This is fine, and good enough for me to keep my Claude subscription. I mean, I _always_ have a shell open, anyway.

ZvikaZ · 1 year ago

There are few steps that need to be done as temporary bypass until Claude team will fix the plugin for Windows:

  • the default shortcut to open the plugin, ctrl+esc, is catched by Windows. I recommend changing the shortcut: Settings/Keymap, search for 'claude code', and add another keymap (I used ctrl+f1. which is close to the original. It's already used for something else, but I never used it until now, so it seems OK to remove it from the other command)
  • to fix launching: go to plugin's settings (shift+shift, Claude command:) and modify the command to wsl -d Ubuntu -- bash -lic "claude" (assuming Claude Code is installed on Wsl + Ubuntu)
  • when pressing escape from inside the terminal, by default it's not passed to the terminal, but to the IDE. to fix this: go to settings/Tools/Terminal, and uncheck Move focus to the editor with Escape
  • inside Claude Code, run /ide, and make sure that it's OK. Strangely, it used to be OK for me, but now it's not...
AustEcon · 1 year ago

If I use an external terminal (non-Rider integrated terminal) I can get it to work but I still need to close Rider and re-open it after entering a claude code session.

So it seems like there is some necessary event happening when Rider IDE initially loads the project to allow claude code to reach it... But claude code needs to be already in an active session and listening / scanning to capture this event.

PS: To confirm it's not the rider terminal environment causing issues, I opened 2 Rider IDE instances (target project + some other project). In the other project, I used the integrated terminal to enter a claude code session and for the target project I closed and re-opened the Rider IDE. Before closing and re-opening, it could not find rider. After re-opening, it could. So whatever event is happening on re-opening... Maybe it could be triggered again somehow when the claude code /ide command fires?

Seems to be reliably re-producible so I have full confidence it will be eventually fixed in a later release.

In the meantime, using an external terminal is a fine workaround 😃

MRIIOT · 12 months ago

Is there any reason to stay in WSL given CC has been released for native Windows and seems to work with JB IDEs?

cwilso03 · 12 months ago
Is there any reason to stay in WSL given CC has been released for native Windows and seems to work with JB IDEs?

CC for native windows? Hadn't see that info anywhere. Unless you mean perhaps through git bash on Windows?

MRIIOT · 11 months ago
> Is there any reason to stay in WSL given CC has been released for native Windows and seems to work with JB IDEs? CC for native windows? Hadn't see that info anywhere. Unless you mean perhaps through git bash on Windows?

That is probably what I mean....

Prakkkmak · 11 months ago

Not fixed yet ? What the current solution ?

pluberd · 11 months ago

Wasted an hour to uninstall / reinstall just to find out it is still not fixed. works fine under linux.

edwh · 11 months ago

The use of git bash on Windows is working fine for me.

pluberd · 11 months ago
The use of git bash on Windows is working fine for me.

even if I start claude with git bash, the plugin is not working.

msokolnickiitt · 11 months ago

Everything works on WSL in Windows if you switch the WSL networking from NAT to Mirroring (with NAT, the IDE is detected but stays in a 'IDE disconnected' state). I don't want to do that, so I'm hoping for a proper solution.

jafin · 11 months ago

Thank you I followed @ZvikaZ steps and @msokolnickiitt by creating file %userdir%\.wslconfig config to enable mirroring:

[wsl2]
networkingMode = mirrored

and finally Claude Code detects the IDE for me..

hackyon-anthropic collaborator · 10 months ago

Thanks everyone for their comments and working through this issue with! The origin cause of the WSL2 detection should have been resolved, so I will closing this.

For those who are still having issues connecting to your JetBrains IDE on Windows with WSL2, we have documented some troubleshooting tips here: https://docs.anthropic.com/en/docs/claude-code/troubleshooting#jetbrains-ide-not-detected-on-wsl2

Also, we recommend using the Windows Powershell (git bash) version of Claude Code with your IDE as it is more reliable.

If you continue to encounter any issues after trying out the troubleshooting tips, feel free to open up another issue and we can take a look. Thanks!

github-actions[bot] · 10 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.