From 4c964f35c890562d83af322b50c119194411ffed Mon Sep 17 00:00:00 2001 From: Dozie <125983150+doziedotdev@users.noreply.github.com> Date: Thu, 16 Apr 2026 19:32:07 -0400 Subject: [PATCH] fix(auth): use platform-aware default Chrome profile path The hardcoded `~/Library/Application Support/Google/Chrome` default assumed macOS and caused `node src/auth-interactive.mjs` to fail with "Chrome profile not found" for every Linux and Windows user whose `GEMINI_WEB_CHROME_USER_DATA` was not set. Select the default based on `process.platform`: - darwin -> `~/Library/Application Support/Google/Chrome` - linux -> `~/.config/google-chrome` - win32 -> `%LOCALAPPDATA%/Google/Chrome/User Data` - other -> linux default (safe fallback) The `GEMINI_WEB_CHROME_USER_DATA` env var still overrides everything, so existing setups are unaffected. --- src/auth-interactive.mjs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/auth-interactive.mjs b/src/auth-interactive.mjs index 4eabe52..d04ca83 100644 --- a/src/auth-interactive.mjs +++ b/src/auth-interactive.mjs @@ -3,12 +3,28 @@ import { resolve, dirname } from 'node:path'; import { writeFileSync, mkdtempSync, cpSync, rmSync, existsSync, mkdirSync } from 'node:fs'; import { tmpdir } from 'node:os'; +function defaultChromeUserData() { + const home = process.env.HOME || ''; + switch (process.platform) { + case 'darwin': + return resolve(home, 'Library/Application Support/Google/Chrome'); + case 'linux': + return resolve(home, '.config/google-chrome'); + case 'win32': + return resolve( + process.env.LOCALAPPDATA || resolve(home, 'AppData/Local'), + 'Google/Chrome/User Data', + ); + default: + return resolve(home, '.config/google-chrome'); + } +} + const AUTH_PATH = process.env.GEMINI_WEB_AUTH_PATH || resolve(process.env.HOME, '.gemini-cli-web', 'auth.json'); const CHROME_USER_DATA = - process.env.GEMINI_WEB_CHROME_USER_DATA || - resolve(process.env.HOME, 'Library/Application Support/Google/Chrome'); + process.env.GEMINI_WEB_CHROME_USER_DATA || defaultChromeUserData(); function save(psid, psidts) { mkdirSync(dirname(AUTH_PATH), { recursive: true });