Skip to content

Windows support for @claude (binary discovery, sessions, spawning) #21

Description

@sam-powers

Releases are macOS-only today (README rationale): the editor itself builds and runs on Windows, but the @claude integration doesn't, so we don't ship installers that can't deliver the full experience. This issue tracks what it would take to lift that.

What's Unix-specific

All in src-tauri/src/lib.rs:

  1. Binary discovery — resolve_claude_binary()

    • Step 1 shells out to which claude; Windows needs where.exe (or Command::new("claude.cmd") probing).
    • Step 2's candidate list is built from $HOME (%USERPROFILE% on Windows) with Unix paths (~/.claude/local/claude, ~/.local/bin/claude, /opt/homebrew/bin, ~/.nvm/versions/node/*/bin). Windows equivalents: %USERPROFILE%\.local\bin\claude.exe, npm global prefix (%APPDATA%\npm\claude.cmd), nvm-windows dirs.
    • Step 3 falls back to $SHELL -lic 'command -v claude' — no Windows analog; would be skipped or replaced with a where.exe pass.
    • On Windows the npm-installed CLI is a claude.cmd shim, which Command::new won't execute directly — it needs cmd /C or resolution to the underlying node script.
  2. Session discovery — claude_projects_dir() and the list_claude_sessions / find_session_for_markdown / check_session_compacted family — these use dirs::home_dir().join(".claude/projects"), which should resolve on Windows, but the session-path encoding (project dirs derived from absolute paths) needs verification against how Claude Code encodes C:\... paths on Windows.

  3. Process spawning — spawn_claude_resume — spawned children should set CREATE_NO_WINDOW (creation_flags(0x08000000)) so a console window doesn't flash; cancellation in ChildRegistry uses kill(), which is fine cross-platform via std.

  4. The Claude Code plugin (plugin/quill-integration) uses open "quill://…" — Windows would use start "" "quill://…" (and Quill's deep-link registration via tauri-plugin-deep-link should already handle the registry side).

Acceptance

  • @claude replies and AI tracked-changes work on a Windows machine with Claude Code installed via the native installer and via npm.
  • Release workflow re-adds the windows-latest target.
  • README/USER_GUIDE install matrix updated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions