Getting Started
How to install the packaged Electron app, complete setup, and run FlowLens without terminal commands.
What FlowLens is
FlowLens is a desktop voice overlay for macOS and Windows. It runs in the background, opens from a global shortcut, captures the current screen only when invoked, records a short spoken request, and answers in a compact overlay.
The app is useful when the context is already visible:
- a weak prompt in an editor
- a stack trace or failed terminal command
- a rough PR description, issue, or technical note
Supported platforms
| Platform | Current support |
|---|---|
| Windows | Electron package with NSIS installer and portable build targets |
| macOS | Electron package with DMG and ZIP build targets |
| Linux | Out of scope for this release |
Linux is intentionally out of scope because screen capture, global shortcuts, packaging, and permission recovery would widen the platform surface before the core interaction is mature.
Install the Electron app
FlowLens is meant to feel like a normal desktop utility, not a project the user has to rebuild. The packaged app installs once, starts from the OS shell, keeps running in the tray/menu bar, and opens setup or the overlay from the global hotkey.
| Package | Best use |
|---|---|
| Windows NSIS installer | Normal Windows installation with Start Menu entry and app data stored under Electron userData |
| Windows portable build | Quick demos and debugging without a full installer |
| macOS DMG | Normal drag-to-Applications install |
| macOS ZIP | Auto-update delivery artifact and quick packaged testing |
After installation, a non-technical user should not need npm install, npm run build, npm start, or a terminal restart loop. They launch FlowLens like any other app, complete setup once, and then use the hotkey or tray/menu-bar controls.
First-run setup
The intended non-technical path is now in-app:
- Install FlowLens from a packaged build.
- Launch the app.
- Complete the setup window.
- Choose a provider preset or configure an OpenAI-compatible endpoint.
- Add the provider key, base URL, model, and protocol if needed.
- Add the ElevenLabs key.
- Pick an ElevenLabs voice and TTS model.
- Choose a microphone.
- Grant microphone and screen permissions.
- Confirm the global hotkey.
- Decide whether FlowLens should launch at login.
If setup is incomplete, the global hotkey opens setup instead of invoking the overlay. This prevents the most confusing failure mode: pressing the shortcut before keys, permissions, or model settings are valid.
Daily use
Once setup is complete:
- Press the configured hotkey.
- Speak the request while the Matrix visualizer reacts to microphone input.
- Wait for the response card.
- Read the markdown answer, hear the short spoken summary if enabled, and copy the final output.
- Use the tray/menu-bar menu for settings, launch-at-login, update checks, overlay reset, and quit.
The app stays alive in the background after windows close. Closing setup or the overlay does not require rebuilding or rerunning a command.
Build a local package
Until a signed public release is published, maintainers and reviewers can build the Electron package locally from the FlowLens desktop app repository:
npm install
npm run dist:win -- --publish neveror on macOS:
npm install
npm run dist:mac -- --publish neverBuild output is written to the release/ folder. For a faster unpacked development package on Windows:
npm run packageDeveloper mode
Developer mode is still available, but it is not the intended end-user path:
npm install
npm run build
npm startFor active app development with the renderer dev server and watched main-process build:
npm run devFirst launch checklist
- Complete setup or open settings from the tray/menu bar.
- Confirm the OpenAI-compatible provider key, base URL, protocol, and model.
- Confirm the ElevenLabs API key, voice, and TTS model.
- Grant microphone access.
- Grant screen recording or screen capture access.
- Test the global shortcut on a screen with visible context.
- Use the tray/menu-bar item to open settings, check updates, reset overlay position, or quit.
Config and secret storage
At runtime, FlowLens stores non-secret config in Electron userData:
| Data | Runtime location |
|---|---|
| config | app.getPath('userData')/config.json |
| encrypted secrets | app.getPath('userData')/secrets.json |
| diagnostics logs | app.getPath('userData')/logs/flowlens.log |
The app migrates the legacy ~/.flowlens/config.json file into userData when needed. API keys are migrated into the secret store and removed from the JSON config.
Run this docs site
From the Fumadocs project:
npm install
npm run devThen open http://localhost:3000/docs.
This docs site uses Next.js, Fumadocs UI, Fumadocs MDX, local content in content/docs, generated collections from source.config.ts, and LLM-readable routes from the Fumadocs source loader.