Electron 기반 멀티 AI 브라우저. 본인 계정으로 ChatGPT/Claude/Perplexity 등을 한 화면에 분할 표시하고, 터미널 탭에서 Claude Code/Cursor 같은 AI CLI를 띄우는 사용자 본인용 도구.
이 앱은 본인 계정 세션 컨테이너입니다. 자동 입력·스크래핑·자동 폴링·동시 자동 송신 같은 자동화 기능은 일절 포함하지 않으며 추가하지도 않습니다.
- 사이트별 로그인은 사용자가 직접 키보드로 진행합니다.
- 한 화면에 여러 AI를 띄우지만, 각 webview는 독립된 세션이며 서로 데이터를 주고받지 않습니다.
- 외부 배포 보류. 사내 사용자 도구로만 운영합니다.
| 사이트 | 처리 방식 | 이유 |
|---|---|---|
| ChatGPT | webview 임베드 | 자체 이메일/비번 인증이 embedded webview에서 동작 |
| Claude | webview 임베드 | 자체 매직링크 인증이 embedded webview에서 동작 |
| Perplexity | webview 임베드 | 자체 인증 |
| Gemini | 외부 시스템 브라우저로 위임 | Google OAuth가 RFC 8252상 embedded webview를 차단 |
Gemini는 사이드바 "+" 메뉴의 "외부 서비스" 섹션 버튼으로 시스템 기본 브라우저(또는 Chrome.app)에서 열립니다.
기본 빌드는 SSL 인증서 검증이 정상 동작합니다. 사내 자체서명 사이트(예: GitLab 172.21.6.10)에 접속해야 하는 경우 사이드바 "+" 메뉴 하단의 "사내망 모드 (SSL 검증 끄기)" 체크박스를 켜고 앱을 재시작하세요.
- ON 상태일 때 메인 창 상단에 빨간 INSECURE 배지가 표시되어 모드를 명시합니다.
- 망 외 환경에서는 반드시 OFF로 두세요. 켜둔 채 외부망 사용 시 MITM(중간자 공격)에 노출될 수 있습니다.
사이드바 "+" → "PowerShell" 항목으로 터미널 탭을 추가할 수 있습니다. 초기 명령어를 지정해 claude(Claude Code), cursor, npx ... 같은 AI CLI를 즉시 띄울 수 있습니다.
PTY는 보안상 메인 윈도우 frame에서만 IPC 호출이 허용되며, webview frame에서의 호출은 자동 거부됩니다.
npm install # 의존성 설치
npm run dev # Vite + Electron 동시 실행
npm test # 단위 테스트 (vitest)
npm run build # 프로덕션 빌드
npm run package # electron-builder로 데스크톱 앱 패키징PR 또는 빌드 후 다음을 직접 확인하세요. 자동 E2E는 도입하지 않음(over-engineering).
- 빌드/테스트:
npm run build,npm test통과 - SSL 게이트 OFF: 자체서명 사이트 접속 시 인증서 차단 확인
- SSL 게이트 ON 후 재시작: 사내망 사이트 접속 + 빨간 INSECURE 배지 표시
- 외부 위임: 사이드바 외부 서비스 Gemini 버튼 → 시스템 브라우저에서 열림 (앱 내부에 새 탭 추가 안 됨)
- DevTools Console:
electronAPI.openExternal('javascript:alert(1)')입력 → false 반환 + warn 출력 - 잔존 webview: ChatGPT/Claude/Perplexity 각각 로그인 → 정상 응답.
navigator.userAgent에 "Electron" 문자열 없음 - 마이그레이션: electron-store에
gemini.google.comURL 탭 수동 주입 후 재실행 → 다이얼로그 표시 → 예/아니오 모두 1회 이후 재차 묻지 않음 - PTY: 메인 윈도우 → terminal 탭에서
claudeCLI 실행 시ANTHROPIC_API_KEY/OAuth 인증 정상 동작
Internal use only.