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 });