v0.2.0 — Linux and Windows
Pre-releaseneocursor now runs on Linux and Windows. Previously the sidecar only looked for Cursor's session in the macOS app-support path, so that was the only place it could ever find a login. Thanks @Aktyn for the report (#2) — and for confirming that ~/.config/Cursor was the missing piece.
Nothing to configure. Update and it finds your session:
| Cursor data dir | |
|---|---|
| macOS | ~/Library/Application Support/Cursor |
| Linux | $XDG_CONFIG_HOME/Cursor → ~/.config/Cursor |
| Windows | %APPDATA%\Cursor |
Insiders builds, the lowercase cursor directory some community Linux packages create, and Flatpak/Snap sandbox roots are detected too.
Unusual installs
Portable copies, or Windows-side Cursor seen from WSL:
export CURSOR_CONFIG_DIR="/mnt/c/Users/me/AppData/Roaming/Cursor"
# or point straight at the SQLite file:
export CURSOR_STATE_DB_PATH="/path/to/User/globalStorage/state.vscdb"Better failures
"Cursor isn't where we looked" used to be a Python traceback in a log nobody opens. Now it's one line naming every path checked plus the overrides, surfaced through vim.notify when the sidecar dies during startup — so a broken setup tells you what's wrong instead of the plugin going silently inert. uv run cursor_paths.py prints the full resolution for bug reports.
Windows fixes beyond the path
Three things a path swap alone would have hit:
- SQLite URI was built by hand, which breaks on
C:\…backslashes and a bare drive letter. NowPath.as_uri()— which also fixed the unescaped space in "Application Support". - stdio inherited the platform default: Windows text mode rewrote the
\nrecord separator to\r\n, and a POSIXClocale downgraded to ASCII, mangling non-ASCII buffers. Now pinned to UTF-8 + LF. - The macOS DNS workaround shelled out to
dig/hosteverywhere — missing binaries and flashing console windows on Windows. Gated to macOS.
Also: the lazy.nvim build snippet used 'httpx[http2]', and single quotes aren't quotes in cmd.exe. The README now uses double quotes, valid in both sh and cmd. (The vim.pack recipe was already safe — it uses list form.)
Testing
CI now runs on ubuntu + windows + macos. Since no runner has anyone signed into Cursor, the specs synthesize a credential-free install and drive the real sidecar through it, covering path resolution, the SQLite URI, LF framing, and the full 20-assertion tab-flow spec on real Neovim.
Linux was additionally verified end-to-end against the live Cursor backend with a real session at ~/.config/Cursor; test/docker_linux.sh reproduces that from any checkout.
Honest caveat: Windows is proven by CI mechanics, not by a human in a Windows GUI Neovim with a real Cursor login. If you're on Windows, a confirmation (or a bug report) is very welcome.
Full changelog: v0.1.0...v0.2.0