This document summarizes the research findings from winfunc/opcode GitHub issues, PRs, and community forks regarding:
- Windows build availability
- Claude installation detection on Windows
- WSL integration for Claude Code execution
- No official Windows builds in releases - Major pain point for users
- Multiple issues requesting Windows builds: #301, #332, #370, #219, #369
- Fixed compilation and installation failure
- Fixed local Claude code recognition
- Provided both
.exeand setup installer - Status: Open (community contribution, not merged)
Gist: https://gist.github.com/Kirchlive/184cdd96a56bfd7a6c67997836495f3c
Files included:
2-claude_binary_patch.rs- Patched main.rs accepting any Claude version3-setup-windows.bat- Creates WSL bridge script4-start-claudia.bat- Launcher with pre-flight checks5-apply-patches.bat- Build script patches
Key features:
- WSL bridge via
claude.batin%APPDATA%\npm - Automatic Claude CLI version detection from WSL
- Filters unsupported parameters (
--system-prompt,--no-color) - Supports multiple WSL distributions
Run the Linux AppImage release directly in WSL2:
apt install libgles2
# Extract and run AppImage
./AppImage --appimage-extractStatus: MERGED into main
Added Windows support via conditional compilation:
#[cfg(windows)]fortry_which_command()usingwhereinstead ofwhich#[cfg(windows)]forfind_nvm_installations()checkingNVM_HOME#[cfg(windows)]forfind_standard_installations()with Windows paths
Windows paths checked:
%USERPROFILE%\.claude\local\claude.exe%USERPROFILE%\.local\bin\claude.exe%APPDATA%\Roaming\npm\claude.cmd%USERPROFILE%\.yarn\bin\claude.cmd%USERPROFILE%\.bun\bin\claude.exe
Additional improvements:
- Replace Unix
whichwith Windowswhere - Support Windows environment variables (
USERPROFILEvsHOME) - Handle
.cmd,.exeextensions - Detect Program Files directories
Focus on better detection logic for Windows
Missing installation_type field in ClaudeInstallation struct
Fixed by PR #374 (merged)
"Claude code can only be installed on Windows via WSL... how can I run Claude code successfully in the Claudia desktop?"
The claude.bat bridge script:
@echo off
setlocal enabledelayedexpansion
REM Configuration - set your WSL distro
SET "WSL_DISTRO="
REM Version check - get real version from WSL claude
if /I "%~1" == "--version" (
for /f "delims=" %%i in ('wsl bash -lc "~/.npm-global/bin/claude --version"') do set "CLAUDE_VERSION=%%i"
echo !CLAUDE_VERSION!
exit /b 0
)
REM Filter unsupported arguments
REM Skip: --system-prompt, --no-color
REM Execute via WSL
if defined WSL_DISTRO (
wsl -d "%WSL_DISTRO%" bash -lc "~/.npm-global/bin/claude !CMD!"
) else (
wsl bash -lc "~/.npm-global/bin/claude !CMD!"
)"Currently there is a community fix... but we just can't get it to work because of the number of steps involved. Is there a plan for official WSL support?"
Status: Open, no official response
Key improvements proposed:
- New
shell_environment.rsmodule for Windows shell detection - Automatic detection of Git Bash, WSL, PowerShell
- Proper environment setup for Claude Code on Windows
- Better error messages with instructions
Use case: Integration with claude-code-router
Proposed solutions:
Settings → General → Claude Code Command
[ccr code] (default: claude)
Settings → Advanced → Custom Environment Variables
ANTHROPIC_BASE_URL=https://my-proxy.com/
CLAUDE_CODE_MAX_OUTPUT_TOKENS=20000
Allow users to extend the environment variable whitelist via config file.
| Fork | Last Updated | Notable Changes |
|---|---|---|
| namastexlabs/opcode | Dec 4, 2025 | Tauri event listener fixes |
| Rixmerz/nova | Dec 5, 2025 | Rebranded, purple theme, haiku model, unified ClaudeOptions API |
| tbarstow-tw/opcode-pm | Dec 4, 2025 | BMAD framework documentation |
| DigitalNomad-Chat/opcode | Dec 4, 2025 | Active development |
| zhu976/opcode-i18n | Dec 2, 2025 | Chinese i18n support |
- Add GitHub Actions workflow for Windows builds (requested in #194, #226)
- Include the merged Windows detection code from PR #367
- Fix icon format issues (#75, #276, #262)
- Implement shell environment detection (from PR #186)
- Add settings UI for:
- Shell preference (PowerShell / Git Bash / WSL)
- WSL distribution selection
- Custom Claude command path
- Create WSL bridge in Rust (not batch file) for better integration
- Already implemented:
list_claude_installations()API endpoint - Add UI dropdown in settings to select preferred installation
- Store preference in
app_settingstable
src-tauri/src/claude_binary.rs- Windows detection already mergedsrc-tauri/src/commands/claude.rs- Command execution (needs WSL support)
- #186 - Shell environment detection
- #360 - Additional Windows compatibility
- #400 - Custom command/env vars
- #407 - Tauri event listener fixes (namastexlabs)