Unofficial desktop client for Nvidia GeForce NOW on Linux, delivering a native Electron-based experience with Wayland support, Steam Deck integration, and optional Discord rich presence.
- Features
- Disclaimers
- Usage
- Known Limitations
- System Requirements
- Installation
- Development
- Project Structure
- Documentation
- Architecture
- Contributing
- Security
- Helping out
- License
- Native Wayland support with compositor-aware behaviour
- Steam Deck integration with automatic fullscreen and virtual keyboard overlay
- Discord rich presence integration (optional)
- Hardware-accelerated video pipeline using VA-API and GPU rendering flags
- GPU crash fallback strategy for rendering stability
- Keyboard shortcuts for fullscreen, navigation, and developer tooling
- Direct game launch via CMS identifier
- Stream quality override for resolution and refresh rate reporting
This project and its contributors are not affiliated with Nvidia, nor with the GeForce NOW product. This repository does not include Nvidia or GeForce NOW software. It provides an Electron wrapper that loads the official GeForce NOW web application.
This is a free and open-source project maintained by volunteers. Contributions occur as contributor availability permits.
Launch the client from a terminal:
npm start| Shortcut | Action |
|---|---|
F11 / Super+F |
Toggle fullscreen |
Alt+Home |
Navigate to the home page |
Alt+F4 |
Exit the application |
Ctrl+Shift+I |
Toggle developer tools |
Ctrl+Shift+P |
Create a desktop shortcut for the active game |
| Argument | Environment Variable | Description |
|---|---|---|
--direct-start <cmsId> |
GFN_DIRECT_START_ID=<cmsId> |
Launch directly into a game by CMS identifier |
--disable-rpc |
GFN_DISABLE_RPC=1 |
Disable Discord rich presence |
| - | GFN_ENABLE_EXPERIMENTAL_GPU_FLAGS=1 |
Re-enable aggressive GPU flags for experimentation |
| - | GFN_RESOLUTION_WIDTH=<px> |
Override reported stream width |
| - | GFN_RESOLUTION_HEIGHT=<px> |
Override reported stream height |
| - | GFN_REFRESH_RATE=<hz> |
Override reported stream refresh rate |
- Application behaviour depends on the current GeForce NOW web interface and can change when upstream web functionality changes.
- Manual installation packages receive less maintainer support than the Flatpak distribution.
- OS: Linux
- Runtime: Node.js 20 or later
- Graphics: GPU drivers with WebGL and hardware video decode support are recommended
flatpak install flathub io.github.hmlendea.geforcenow-electronor, for Arch Linux users via AUR:
paru -S geforcenow-electronor, if you use yay:
yay -S geforcenow-electronnpm installnpm run buildnpm start| Package | Purpose |
|---|---|
discord-rich-presence |
Discord RPC integration |
electron-localshortcut |
Application-local keyboard shortcuts |
find-process |
Process discovery for integration logic |
The key directories and files are:
| Path | Purpose |
|---|---|
scripts/main.js |
Electron main-process lifecycle, window initialisation, and runtime flags |
scripts/preload.js |
Safe bridge between renderer and Electron APIs |
scripts/renderer.js |
Renderer-side interactions and UI behaviour |
scripts/rpc.js |
Discord rich presence integration |
scripts/windowManager.js |
Window creation and management logic |
com.github.hmlendea.geforcenow-electron.desktop |
Desktop entry metadata |
Full documentation is available in the project Wiki:
See ARCHITECTURE.md for a structural synopsis and component interactions.
You are welcome to bring any suggestion, feedback or modification to this project.
When doing so, please:
- Maintain cross-platform compatibility
- Maintain the pull requests as focused and consistent with the existing code style
- Maintain your branch up-to-date with
master - Revise the documentation when behaviour changes
- Properly test all changes
For information on reporting security vulnerabilities, see SECURITY.md.
Discovered a problem or have a suggestion? Open an issue!
If you find this project useful, consider funding it or starring βοΈ it on GitHub!
This project is being distributed under the GNU General Public License v3.0 or later.
See LICENSE for details.




