Cursor Lacks Access to Virtual Filesystem

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Summary

Cursor AI features (chat, tab completion, codebase indexing) currently don’t work with VSCode virtual filesystems, limiting integration with notebook extensions, remote filesystems, and other FileSystemProvider-based tools. This issue proposes adding opt-in virtual filesystem support to enable AI assistance across the full VSCode extension ecosystem.

Cursor’s AI features fail when working with files from custom VSCode FileSystemProviders (virtual filesystems). This was previously reported in AI features broken/unreliable over virtual filesystem (vscode.FileSystemProvider) and remains unresolved.

Specific failures:

  • :cross_mark: Cursor Tab doesn’t activate in virtual filesystem files
  • :cross_mark: @ references don’t work with virtual URIs (e.g., databricks-notebook://…)
  • :cross_mark: Codebase indexing skips virtual files entirely
  • :cross_mark: Chat context missing for virtual filesystem content

Steps to Reproduce

The Databricks Notebook - Visual Studio Marketplace enables editing Databricks .py notebooks in
VSCode’s native Jupyter notebook editor. It uses a FileSystemProvider to virtualize .py files as .ipynb notebooks in memory.

Workflow:

  1. User opens notebook.py (Databricks format) as Jupyter notebook via databricks-notebook:// scheme
  2. VSCode renders it using built-in Jupyter support
  3. User executes cells connecting to Databricks clusters
  4. User wants AI assistance to:
  • Analyze query results and suggest optimizations
  • Debug errors in cell outputs
  • Generate new cells based on previous results

Current state: Cursor cannot see the notebook content, cell outputs, or provide any assistance because it doesn’t support the virtual filesystem.

Expected Behavior

Users can’t combine:

  • AI-assisted coding (Cursor’s strength)
  • Native notebook experience (VSCode’s strength)
  • Databricks integration (custom extension’s strength)

Broader Impact

This limitation affects ANY extension using FileSystemProviders:

  • Remote filesystems: SSH FS, FTP, S3, Azure Blob Storage
  • Specialized formats: Jupyter notebooks, Docker containers, database schemas
  • Development tools: Git virtual files, memory buffers, custom DSLs
  • Productivity tools: Archive viewers (ZIP, TAR), encrypted filesystems

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.2.44
VSCode Version: 1.105.1
Commit: 20adc1003928b0f1b99305dbaf845656ff81f5d0
Date: 2025-12-24T21:41:47.598Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 23.6.0

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @Lucas_Froguel

Thanks for raising this.

The bug ticket from the other thread was recently closed for inactivity. I’ll reopen it and add your thread.

With Cursor’s architecture today, this is not an easy lift. That said, we’ll continue to track traction!

Thanks for the reply! To give you some numbers, everyone in my org would benefit from this (~50 engineers, maybe ~300 analysts). Moreover, this is mainly to support our Databricks work and we’re demoing this to a lot of folks in there. The better this is, the better the sell and so the chance that they’ll promote it is higher.

1 Like

+1 to this issue. I work with Lucas and I am the author of the extension that allows you to open a Databricks .py file as a notebook. The issue seems to be that Cursor won’t render the suggestions when the file schema does not match. In the logging, I can see that API requests and suggestions for Tab are coming back, but they are not displayed.

If I replicate the experiment in a regular .ipynb notebook, tab suggestions work (not surprisingly). If I use the extension in VSCode with CoPilot, I can see the suggestions when using a .py opened as a notebook. It has something to do with how Cursor has modified the completions code where it does not want to show its suggestions/ghost text, despite having them on hand. If there was some way to have my extension register or flag itself to Cursor to show the text, that would be great.

An extra wrinkle for this problem. When I developing the extension and run a local build, I am able to use the completions. Its only when the extension is running as a normally installed extension that the completions don’t display (though are still fetched from the API).

NOTE: All of these tests are persistent across Cursor 2.2/2.3