Electron desktop app — SolidJS frontend, Node.js backend. Published for macOS and Linux only (no Windows).
- Frontend: SolidJS, TypeScript (strict), Vite
- Backend: Node.js (Electron, node-pty)
- Package manager: npm
npm run dev— start Electron app in dev modenpm run build— build production Electron appnpm run typecheck— run TypeScript type checking
src/— SolidJS frontend (components, store, IPC, lib)src/lib/— frontend utilities (IPC wrappers, window management, drag, zoom)electron/— Electron main process (IPC handlers, preload)electron/ipc/— backend IPC handlers (pty, git, tasks, persistence)src/store/— app state management
- Functional components only (SolidJS signals/stores, no classes)
- Electron IPC for all frontend-backend communication
- IPC channel names defined in
electron/ipc/channels.ts(shared enum) strict: trueTypeScript, noany
This repo uses OpenSpec. Capability specs for current behavior live under
openspec/specs/. For new or changed behavior, propose a change in
openspec/changes/<name>/ (e.g. via /opsx:propose) rather than editing
specs directly — the change is archived into specs/ when it ships. Run
openspec validate --all --strict before committing.