Confirm that this is a Bug for the editor extension, not the CLI
- [1] This bug does not happen in the Oxlint/Oxfmt CLI
- [0] After restarting the editor, the bug still appears
Versions used
VS Code extension: 1.50.0
oxlint: v1.56.0
oxfmt: v0.0.0
VS Code version: v1.109.5
Operating System and Version: windows
Node Version: v0.0.0
Node Manager: <!-- can be nvm, mise, asdf, vite-plus, etc, or you could have installed node directly -->
What happened?
When opening a project that has oxlint listed in package.json but node_modules hasn't been installed yet (e.g., freshly cloned repository), the Oxc VS Code extension fails to activate because it cannot locate the oxlint binary. The extension shows the message:
No valid oxlint binary found. Linter will not be activated.
Even after running npm install (or pnpm install, yarn), the extension remains inactive. The user must manually reload the VS Code window to trigger a re‑detection of the installed binary. This disrupts the development flow, especially for newcomers who clone a project and immediately open it in VS Code.
Steps to Reproduce:
Clone a project that depends on oxlint (listed in package.json or as a devDependency).
Open the project folder in VS Code without running npm install first.
Observe that the Oxc extension reports that no binary was found (see the notification or output panel).
Run npm install in the terminal (or use the built‑in npm script execution).
Notice that the extension still shows the same error and does not start linting until the window is reloaded.
Expected Behavior:
The extension should automatically detect when oxlint becomes available after node_modules is created or updated, and activate the linter without requiring a manual reload.
Actual Behavior:
The extension only checks for the binary at startup and does not watch for changes in node_modules. Consequently, it never activates unless the window is reloaded.
Suggested Improvement:
Add a file watcher that listens for changes in the project’s node_modules directory (or specifically for the oxlint binary). When the binary appears (e.g., after a successful npm install), the extension can automatically reload its internal state and activate the linter. This would provide a smoother out‑of‑box experience for developers.
Reproduction repo
Output channel log
2026-03-28 15:23:21.922 [info] Searching for oxlint binary.
2026-03-28 15:23:24.000 [info] No valid oxlint binary found. Linter will not be activated.
Confirm that this is a Bug for the editor extension, not the CLI
Versions used
What happened?
When opening a project that has oxlint listed in package.json but node_modules hasn't been installed yet (e.g., freshly cloned repository), the Oxc VS Code extension fails to activate because it cannot locate the oxlint binary. The extension shows the message:
No valid oxlint binary found. Linter will not be activated.
Even after running npm install (or pnpm install, yarn), the extension remains inactive. The user must manually reload the VS Code window to trigger a re‑detection of the installed binary. This disrupts the development flow, especially for newcomers who clone a project and immediately open it in VS Code.
Steps to Reproduce:
Clone a project that depends on oxlint (listed in package.json or as a devDependency).
Open the project folder in VS Code without running npm install first.
Observe that the Oxc extension reports that no binary was found (see the notification or output panel).
Run npm install in the terminal (or use the built‑in npm script execution).
Notice that the extension still shows the same error and does not start linting until the window is reloaded.
Expected Behavior:
The extension should automatically detect when oxlint becomes available after node_modules is created or updated, and activate the linter without requiring a manual reload.
Actual Behavior:
The extension only checks for the binary at startup and does not watch for changes in node_modules. Consequently, it never activates unless the window is reloaded.
Suggested Improvement:
Add a file watcher that listens for changes in the project’s node_modules directory (or specifically for the oxlint binary). When the binary appears (e.g., after a successful npm install), the extension can automatically reload its internal state and activate the linter. This would provide a smoother out‑of‑box experience for developers.
Reproduction repo
Output channel log