Luma Command is a cross-platform, launcher-first productivity tool for macOS and Windows. It is designed to open from a global hotkey, run fast local commands, and grow through user-defined plugins.
Luma Command
Rationale:
- Luma suggests a small, focused source of light: quick context, quick action.
- Command makes the product category explicit without copying Raycast's name.
- The name is short enough for menus, logs, bundle identifiers, and CLI tooling.
Working identifiers:
- Product name:
Luma Command - Short name:
Luma - Repo name:
luma-command - App bundle candidate:
com.luma.command
The project now has the first Electron + React + TypeScript application shell:
- Electron main process
- secure preload bridge
- React renderer
- typed shared contracts
- built-in command registry
- IPC-backed command search and execution
- diagnostics service
- global shortcut registration
- Settings and Diagnostics views
- metadata-only plugin manifest scanning
- managed plugin runtime execution for Node.js and Shell examples
The first runnable milestone is a minimal cross-platform command palette with:
- global hotkey invocation
- command search
- local plugin loading
- Node.js, Python, and Shell command execution
- a small built-in command set
Install dependencies:
npm installIf Electron binary download is slow or incomplete, rebuild Electron with a mirror:
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm rebuild electronRun type checks:
npm run typecheckBuild main, preload, and renderer:
npm run buildStart the development app:
npm run devDefault launcher shortcut:
CommandOrControl+Shift+Space
Development builds scan examples/plugins in addition to the user plugin
directory. The included Luma Examples plugin provides:
Hello from NodeHello from ShellHello from Python
Both commands are metadata-scanned at startup and only start their runtime when the command is executed.
The architecture is documented in docs/project-architecture.md.
The short version:
src/mainowns Electron lifecycle, windows, IPC, command registry, platform adapters, diagnostics, plugin host, and runtime execution.src/preloadexposes a narrow typed API throughcontextBridge.src/rendererowns the React UI only.src/sharedowns cross-process contracts.- Plugin runtimes should be managed jobs, not renderer privileges.