Files
..

Linsa desktop

Electron shell that mirrors the same structure we use in the as project: electron-vite bundling the main, preload, and React renderer. The window loads the Linsa web app by default (dev URL: http://localhost:5625) and falls back to the bundled renderer if the web app cannot be reached.

Running locally

pnpm install
pnpm --filter @linsa/web dev
pnpm --filter @linsa/desktop dev

By default the Electron shell loads the existing web app. Override the target with WEB_DEV_URL or WEB_URL when needed.

Set a Jazz Cloud key to sync state instead of keeping it only on the device:

cd packages/desktop
echo "VITE_JAZZ_API_KEY=your_jazz_key" >> .env
# optional: point to a custom peer
# echo "VITE_JAZZ_PEER=ws://localhost:4200" >> .env

Optional environment

  • WEB_URL / WEB_DEV_URL where to load the web app from.
  • VITE_JAZZ_API_KEY / VITE_JAZZ_PEER used by the fallback renderer for sync.

What it does

  • Uses electron-vite to bundle main, preload, and the React renderer.
  • Loads the web client first and falls back to the bundled renderer if needed.
  • Wraps the renderer with JazzReactProvider (storage in IndexedDB) and a simple Jazz schema to keep track of folders you want scanned.
  • Opens an OS folder picker (via the preload bridge) to add/remove code folders.
  • Scans those folders for git repos and lets you open them in VS Code, Terminal, or Finder.
  • Shows the current Jazz sync status so we can expand to syncing folder lists later.