Effortless deployment, robust security and seamless auto-updates.




ToDesktop is your end-to-end Electron partner — everything you need to run Electron apps at scale.

Eliminate developer frustration by letting us handle the infrastructure. Build your Electron app on Mac,
Windows, and Linux with confidence.
We analyze your Electron app’s source code to
find and rank issues by severity. Quickly resolve
vulnerabilities with confidence.
Ensure your app runs flawlessly on all platforms.
Our Smoke Tests automatically test app launches,
updates, and performance on.
Keep your customers' apps up-to-date and
safely test new releases on a subset of users
before rolling out to everyone.

OS | Artifact | Architecture | Size | Actions |
| Installer | universal | 1.5 MB | ||
| ZIP | x64 | 107 MB +5.05% | ||
| ZIP | arm64 | 100.3 MB +4.45% | ||
| NSIS | x64 | 81.6 MB +4.42% | ||
| AppImage | x64 | 81.6 MB +4.42% | ||
| AppImage | arm64 |
Dependencies | Status | Versions | size |
@todesktop/shared | Updated | 7.186.22 → 7. 188.5 | 132.7 kB |
"id": "2108257l5bobyoe",
+ "mac": {
+ "entitlements": "./staticFiles/entitlements.mac.plist",
+ "extendInfo": {
+ "NSAppleEventsUsageDescription": "Please allow access to script browser applications to detect the current URL from your web browser."
+ }
+ },- "extraContentFiles": [
- {
- "from": "./bin",
- "to": "bin"
- }
- ],
+ "nodeVersion": "1822",
"uploadSizeLimit": 30,
Confidence | Severity | Suggestion | File |
Firm | Medium | Limit navigation on untrusted origins | desktopify/menubar/Menubar.ts:287 |
Firm | Medium | Use sandbox for untrusted origins | desktopify/menubar/Menubar.ts:287 |
Firm | Medium | Limit navigation on untrusted origins | desktopify/main/api.ts:68 |
Firm | Medium | Use sandbox for untrusted origins | desktopify/menubar/Menubar.ts:287 |
Tentative | Medium | Review custom protocol handlers | desktopify/main/deepLinking.ts:157 |
2026-01-17T13:04:20.24494102 DEBUG: Build info (
2026-01-17T13:04:20.2550750 "appId": "21082571500byoe",
2026-01-17T13104.20.2652310 "appName": "ToDesktop Builder",
2026-01-17T13:04:20.2701550 "apptype": "electron"
2026-01-17T13:04:20.2702180 "buildId" : "240417h1108udef",
2026-01-17T13:04:20.2702880 "numberofAttenptedBuilds": "not set in Firestore (0 assumed)", 2026-01-17T13:04:20.27034402 "user" 1 {
2026-01-17T13:04:20.2703930 "email": "[email protected]",
2026-01-17T13:04:20.2704460 "id" : "1FhALSzGPaBJdapNnsvCHSYL3X2"
2026-01-17T13:04:20.2704890
2026-01-17T13:04:20.2705730 )
2026-01-17T13:04:24.0463170 DEBUG: appVersion:
2026-01-17T13:07:09.9811080
2026-01-17T13:07:09.9838570 Starting todesktop:afterPack:./post-pack.js
2026-01-17T13:07:09.9839430
2026-01-17913:10:34.6396860 Ending todesktop:afterPack:./post-pack.js
2026-01-17T13:07:09.9840040
2026-01-17T13:10:34.6460520 Starting todesktopiafterPack:./post-pack-js
2026-01-17T13:10:39.6744740
2026-01-17T13:10:39.6751390 > gyp01.0.0 postinstall
2026-01-17T13:10:39.6851650 > npx patch-package
2026-01-17T13:10:39.6861220
2026-01-17T13:10:43.0989010 npm WARN exec The following package was not found and will be installed: [email protected]
2026-01-17T13:10:48.2347380 patch-package 8.0.0
2026-01-17T13:10:48.2449170 Applying patches..•
2026-01-17T13:10:48.2550930 [email protected] •
2026-01-17T13:10:48.2901710
2026-01-17T13:10:48.3003400 added 94 packages, and audited 95 packages in 13a
2026-01-17T13:10:48.3104380
2026-01-17T13:10:48.3205860 3 packages are looking for funding
2026-01-17T13:10:48.3307310 Type "npm fund" for details
2026-01-17T13:10:48.3408120
2026-01-17T13:10:48.4115930
2026-01-17T13:10:48.4217070 FINISHED rebuilding node-gyp
2026-01-17T13:10:48.4318150 Ending todesktopiafterPack:./post-pack.js 2026-01-17T13:10:48.44180608
2026-01-17T13:14:38.6218900 INFO: builder output:
2026-01-17T13:14:38.6219460 INFO: Finished 2026-01-17T13:15:02.63315902 INFO: build complete
Our guided process makes purchasing and using certificates a breeze. Our secure hardware storage and expiry notifications give you peace of mind.
Understand your customers better with our comprehensive download analytics, tracking downloads across Windows, Mac, and Linux.
Our universal download link intelligently detects and serves the right platform-specific installer. All this is served from our CDN and hosted on your domain.
Measure launch time, memory, and CPU usage. Compare across versions and other industry-standard Electron apps.
All of our plans include a 7-day free trial.
For simple desktop apps and
solo developers.
For sophisticated desktop apps
and small teams.
Yes, if you are developing Electron apps and want to streamline the process of deploying, securing, and updating your app across multiple platforms (Windows, Mac, and Linux). ToDesktop helps eliminate frustration by handling much of the infrastructure, such as code signing, automated updates, and analytics.
If you don't want to write Electron code and you already have a web app then you should check out ToDesktop Builder instead.
Yes, we offer a 7-day free trial for all our plans. If you're not satisfied with the product, then just cancel before the trial ends and you won't be charged.
Check out our comparison page.
. In short, ToDesktop for Electron is for developers who want to deploy, secure, and update their Electron app, while ToDesktop Builder is for developers who want to create a desktop app from a web app.Yes, we support staging and dev versions of your app in the performance plan and above. You can create a new version of your app and select the 'Staging' or 'Development' channel.
Yes, we can even use auto-update with your existing Electron app so it will be seamless from an end-user perspective. We've got guides to help you do the migration:
We host your updates and downloads, so we collect IP addresses for logging and security purposes when a user downloads your app. We don't collect any other data about your customers or their usage.
ToDesktop provides different levels of support depending on the plan you choose:
Absolutely. ToDesktop CLI is similar to Continuous Integration service so you can use the guide from npm.
To summarize:
.npmrc file in the root of your project with the following contents://registry.npmjs.org/:_authToken=${NPM_TOKEN}
Note: Do not put a token in this file. You are specifying a literal value of {NPM_TOKEN}. NPM will replace the value for you. 5. Add .npmrc to your appFiles array [".npmrc"] in todesktop.json.
Yes, we never want you to be stuck with a service that doesn't meet your needs. If you're not satisfied with ToDesktop, then reach out and we'll help you migrate away to a different service for free.
Try our low/no code product instead. ↓
ToDesktop BuilderOur visual UI will take your existing web app and turn it into a cross-platform desktop app in just a few minutes. No Electron setup required.
