Electron Desktop

CLI-JAW is available as a native Electron desktop application. Packaged builds include a Node.js 22 sidecar so the app can run the dashboard server and install a terminal jaw command without requiring a global npm install.

Installation

Download the desktop artifact from the release or manual desktop-release workflow. macOS builds ship as DMG/ZIP, Windows builds ship as NSIS/ZIP, and Linux builds ship as AppImage.

# Build from source:
npm run electron:dist:mac

Bundled Sidecar

The release workflow runs scripts/bundle-sidecar.sh before packaging. The sidecar includes Node.js 24.17, compiled server output, frontend assets, production dependencies, rebuilt native modules such as better-sqlite3, and CLI shims under server/bin/jaw and server/bin/jaw.cmd.

PlatformTargetArtifact
macOSarm64DMG, ZIP
Windowsx64NSIS installer, ZIP
Linuxx64AppImage

The Electron main process does not import native server modules directly. It discovers the bundled sidecar first, then falls back to a global jaw binary during development.

Panel Layout

The Electron app provides a multi-panel workspace:

PanelLocationDescription
DashboardCenterFull manager dashboard with instances, notes, board
TerminalBottomEmbedded terminal for CLI commands
BrowserRightWebview-based browser with tabs (desktop only)
Diff ViewerRightGit diff panel backed by server API (desktop only)
Folder PanelLeft/RightFile tree navigation

Browser Panel

The desktop browser panel uses webview tags for full browsing. Features:

Diff Viewer

The diff panel shows Git changes for your project:

Keyboard Shortcuts

See the Keyboard Shortcuts reference for the complete list. Key desktop shortcuts:

ShortcutAction
Cmd+TNew browser tab
Cmd+WClose current tab
Cmd+1-4Switch to tab 1-4
Cmd+RReload main window
Cmd+Shift+RHard reload

macOS Permissions

The Electron app may prompt for macOS automation access. Grant it in System Preferences > Privacy & Security > Automation. The app's quit flow is visible and handles cleanup gracefully. Current release artifacts are unsigned and un-notarized, so macOS may require right-click → Open on first launch.

Terminal Command Install

On first launch and from the tray menu, packaged apps can install a terminal jaw command that points at the bundled sidecar shim. macOS installs under /usr/local/bin with an admin prompt when needed. Linux uses ~/.local/bin. Windows PATH registration is handled by the NSIS installer script.

Development

# Run Electron in dev mode (concurrent with jaw server):
npm run electron:dev

# Typecheck/build the Electron app:
npm --prefix electron run build

# Bundle sidecar and create macOS DMG/ZIP:
npm run electron:dist:mac
Try it:
  • 터미널에서 npm install 해줘
  • diff 보여줘
  • Cmd+W로 탭 닫아줘