Skip to content

fix: use platform-aware URL opener on Windows#6

Open
fuxialexander wants to merge 1 commit intomainfrom
fix/windows-openurl-compat
Open

fix: use platform-aware URL opener on Windows#6
fuxialexander wants to merge 1 commit intomainfrom
fix/windows-openurl-compat

Conversation

@fuxialexander
Copy link
Contributor

Summary

  • Fixes openUrl() in auth.ts to use cmd /c start on Windows instead of xdg-open
  • xdg-open is a Linux-only utility and silently fails on Windows, preventing browser auto-open during device auth flow
  • Keeps open for macOS and xdg-open for Linux

Root cause

The original code assumed non-macOS == Linux:

const cmd = platform() === 'darwin' ? 'open' : 'xdg-open'

xdg-open does not exist on Windows, so the browser never opens during login.

Fix

if (plt === 'darwin') {
  cmd = `open ${JSON.stringify(url)}`
} else if (plt === 'win32') {
  cmd = `cmd /c start "" ${JSON.stringify(url)}`
} else {
  cmd = `xdg-open ${JSON.stringify(url)}`
}

Test plan

  • macOS: astro login still opens browser correctly
  • Linux: astro login still opens browser correctly
  • Windows: astro login now opens browser via cmd /c start

Closes astro-anywhere/astro-agent#130 (partial — the agent-runner has its own identical bug in setup.ts's tryOpenUrl() and start.ts's background spawn)

🤖 Generated with Claude Code

On Windows, `xdg-open` does not exist. Replace with `cmd /c start`
for Windows, keeping `open` for macOS and `xdg-open` for Linux.

Addresses astro-anywhere/astro-agent#130

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows Setup Error

1 participant