Electron 데스크톱
CLI-JAW는 Electron 데스크톱 애플리케이션으로도 사용할 수 있습니다. 패키지 빌드는 Node.js 22 sidecar를 포함하므로 전역 npm install 없이도 대시보드 서버를 실행하고 터미널 jaw 명령을 설치할 수 있습니다.
설치
릴리스 또는 수동 desktop-release workflow에서 데스크톱 아티팩트를 다운로드하세요. macOS는 DMG/ZIP, Windows는 NSIS installer/ZIP, Linux는 AppImage로 배포됩니다.
# Build from source:
npm run electron:dist:mac
번들 Sidecar
릴리스 workflow는 패키징 전에 scripts/bundle-sidecar.sh를 실행합니다. Sidecar에는 Node.js 24.17, 컴파일된 서버 출력, 프론트엔드 assets, production dependencies, better-sqlite3 같은 rebuilt native modules, 그리고 server/bin/jaw/server/bin/jaw.cmd CLI shim이 포함됩니다.
| 플랫폼 | 대상 | 아티팩트 |
|---|---|---|
| macOS | arm64 | DMG, ZIP |
| Windows | x64 | NSIS installer, ZIP |
| Linux | x64 | AppImage |
Electron main process는 native server module을 직접 import하지 않습니다. 패키지 앱에서는 bundled sidecar를 먼저 찾고, 개발 모드에서는 전역 jaw binary로 fallback합니다.
패널 레이아웃
Electron 앱은 멀티 패널 작업 공간을 제공합니다:
| 패널 | 위치 | 설명 |
|---|---|---|
| Dashboard | 중앙 | 인스턴스, 노트, 보드가 포함된 전체 매니저 대시보드 |
| Terminal | 하단 | CLI 명령어용 내장 터미널 |
| Browser | 우측 | 탭이 있는 Webview 기반 브라우저 (데스크톱 전용) |
| Diff Viewer | 우측 | 서버 API 기반 Git diff 패널 (데스크톱 전용) |
| Folder Panel | 좌측/우측 | 파일 트리 탐색 |
브라우저 패널
데스크톱 브라우저 패널은 완전한 브라우징을 위해 webview 태그를 사용합니다. 주요 기능:
- 탭 관리 (Cmd+T 새 탭, Cmd+W 탭 닫기, Cmd+1-4 탭 전환)
- 스마트 입력이 가능한 URL 바 -- URL은 직접 이동, 검색어는 Google로 전달
- 새 탭 기본 페이지는 Google
- 로컬/프라이빗 호스트 허용 (데스크톱 전용 -- Web UI에서는 사용 불가)
Diff 뷰어
diff 패널은 프로젝트의 Git 변경 사항을 표시합니다:
projectDirs,workingDir, 고정된 루트, 홈 폴백으로부터의 저장소 루트 후보- 구성 가능한 diff 설정: 루트 정책, diff 모드, 기준 ref, 미추적 파일
- 서버 기반 API로 Electron 메인 프로세스에서 git 작업 실행을 방지
diff-service.ts의 경로 탐색 및 ref 유효성 검사 가드
키보드 단축키
전체 목록은 키보드 단축키 참조 문서를 확인하세요. 주요 데스크톱 단축키:
| 단축키 | 동작 |
|---|---|
Cmd+T | 새 브라우저 탭 |
Cmd+W | 현재 탭 닫기 |
Cmd+1-4 | 탭 1-4로 전환 |
Cmd+R | 메인 윈도우 새로고침 |
Cmd+Shift+R | 강제 새로고침 |
macOS 권한
Electron 앱이 macOS 자동화 접근 권한을 요청할 수 있습니다. 시스템 환경설정 > 개인 정보 보호 및 보안 > 자동화에서 권한을 허용하세요. 앱의 종료 과정은 시각적으로 표시되며 정리 작업을 안정적으로 처리합니다. 현재 릴리스 아티팩트는 unsigned/un-notarized이므로 macOS 첫 실행 시 우클릭 → 열기가 필요할 수 있습니다.
터미널 명령 설치
패키지 앱은 첫 실행 시 또는 tray menu에서 bundled sidecar shim을 가리키는 터미널 jaw 명령을 설치할 수 있습니다. macOS는 필요 시 admin prompt와 함께 /usr/local/bin에 설치하고, Linux는 ~/.local/bin을 사용합니다. Windows PATH 등록은 NSIS installer script가 처리합니다.
개발
# Run Electron in dev mode (concurrent with jaw server):
npm run electron:dev
# Typecheck/build the Electron app:
npm --prefix electron run build
# Create macOS DMG:
npm run electron:dist:mac