The privacy-first USB flasher. Zero telemetry. Zero ads. Fully offline.
Spark is a cross-platform OS image flasher built for sysadmins and power users who flash drives daily. Forked from balenaEtcher with every line of telemetry, analytics, and marketing removed. No network requests, no tracking, no ads — just a fast, reliable tool that works offline.
| balenaEtcher | Rufus | Spark | |
|---|---|---|---|
| Cross-platform | Linux/Win/Mac | Windows only | Linux/Win/Mac |
| Telemetry | Sentry + Mixpanel + GA | None | None |
| Marketing webviews | 64% of window | None | None |
| Works offline | Hangs on startup | Yes | Yes |
| CLI mode | No | No | Yes |
| Windows ISO support | No | Yes | Yes |
| Multi-boot USB | No | No | Yes |
| Drive backup/clone | No | No | Yes |
| Queue mode (batch) | No | No | Yes |
| Persistent storage | No | No | Yes |
| Plugin system | No | No | Yes |
| Post-flash scripts | No | No | Yes |
| SHA256 verification | No | No | Auto-detect |
| Drag & drop | No | No | Yes |
| Keyboard shortcuts | No | No | 12 shortcuts |
| Localization | 3 languages | 40+ | 15 languages |
|
|
Spark takes security seriously. No data ever leaves your machine.
- Zero telemetry — no analytics, no crash reports, no phone-home
- Content Security Policy — strict CSP prevents XSS
- Context isolation — renderer cannot access Node.js APIs
- Sandbox enforcement — all renderer processes sandboxed
- IPC validation — all Electron IPC channels validated
- Input sanitization — path traversal, SSRF, shell injection prevention
- Privilege escalation — OS-native elevation (pkexec/osascript/UAC)
- Telemetry audit — CI pipeline scans for tracking patterns on every push
- Download Spark Setup.exe from Releases
- Run the installer
- Launch Spark from the Start Menu
Windows may show a SmartScreen warning — click More info -> Run anyway.
# Debian / Ubuntu
sudo apt install ./spark_3.4.0_amd64.deb
# Portable (any distro)
unzip Spark-linux-x64-3.4.0.zip -d spark && cd spark && ./spark- Download
.dmgfrom Releases - Drag Spark to Applications
- First launch: right-click -> Open (or run
xattr -cr /Applications/Spark.app)
Apple Silicon (M1/M2/M3/M4) is supported. If SD cards aren't detected, install Rosetta:
softwareupdate --install-rosetta
Spark includes a headless CLI for scripting, CI/CD, and server environments.
# Flash an image
spark flash --image ubuntu-24.04.iso --drive /dev/sdb --verify
# List available drives
spark list
# Verify a flashed drive
spark verify ubuntu-24.04.iso /dev/sdb
# Backup a drive
spark backup /dev/sdb -o backup.img.gz -c gzip
# Queue mode — flash to multiple drives sequentially
spark queue --image ubuntu-24.04.iso --verify
# Show system info
spark info| Shortcut | Action |
|---|---|
Ctrl+O / Cmd+O |
Open image file |
Ctrl+D / Cmd+D |
Select drive |
Ctrl+Enter / Cmd+Enter |
Start flash |
Ctrl+Shift+V / Cmd+Shift+V |
Toggle verification |
Ctrl+Shift+T / Cmd+Shift+T |
Toggle dark/light theme |
Ctrl+, / Cmd+, |
Open settings |
Ctrl+= / Cmd+= |
Zoom in |
Ctrl+- / Cmd+- |
Zoom out |
Ctrl+0 / Cmd+0 |
Reset zoom |
F5 |
Refresh drive list |
Escape |
Close dialog / cancel |
Ctrl+Q / Cmd+Q |
Quit |
Requirements: Node.js >= 20, npm, git
git clone https://github.com/sparkflash-dev/spark.git
cd spark
npm install| Command | Description |
|---|---|
npm start |
Dev mode with live reload |
npm test |
Run test suite (Mocha + Chai) |
npx electron-forge make |
Build installer for current platform |
npx electron-forge make --targets @electron-forge/maker-zip |
Portable ZIP |
After pulling changes, run
rm -rf .webpackbeforenpm startto clear the cache.
lib/
├── cli/ # CLI (spark flash, spark list, spark backup, spark queue)
├── gui/
│ └── app/
│ ├── i18n/ # 15 locale files
│ ├── utils/ # 90+ utility modules
│ ├── components/ # React UI components
│ └── reducers/ # Redux state management
└── shared/ # Shared between GUI and CLI
tests/
└── gui/
└── utils/ # 60+ test files (Mocha + Chai)
Stack: Electron 37 + React 17 + Redux 4 + styled-components + etcher-sdk 10
Processes: Main (spark.ts) | Renderer (React) | Sidecar (spark-util WebSocket)
- Remove ALL telemetry, analytics, marketing webviews
- Complete rebrand (logo, colors, strings, bundle ID)
- Modern dark UI with Inter font
- Keyboard shortcuts and drag & drop
- zstd image support
- SHA256/MD5 checksum auto-verification
- Human-readable error messages with suggestions
- Cancel confirmation dialog
- Fix Ubuntu 24.04 .deb install
- Fix requestMetadata race condition
- CLI mode (
spark flash,spark list,spark verify) - 15 languages (EN, ZH, RU, JA, KO, DE, FR, ES, IT, PT, AR, TR, PL, HI, VI)
- Windows ISO detection with partition and boot mode guidance
- Persistent storage for Linux live USBs
- Bad sector surface scan
- Flash queue and history
- Drive health analysis
- Secure IPC, CSP, sandbox enforcement
- 100+ unit tests
- Multi-boot USB (Ventoy-style, GRUB menu)
- Drive backup/clone with compression
- Queue mode for batch flashing
- Image library with bookmarks and tags
- Post-flash scripts (SSH keys, hostname, WiFi)
- Plugin system with manifest validation
- Network flash from URL with resume
- Portable mode
- Accessibility (ARIA, high contrast, reduced motion, focus trap)
- Theme manager (dark/light)
- Parallel verification, direct I/O, write resume
- GitHub Actions CI with telemetry audit
- Bundle size reduction (target < 100 MB)
- Native Windows ISO flashing (full MBR/GPT write, not just detection)
- Silent background auto-updates from GitHub Releases
- File system formatting (FAT32, NTFS, ext4, exFAT)
- Drive-to-drive cloning UI
- Image download integration (fetch popular ISOs in-app)
- Accessibility audit (WCAG 2.1 AA compliance)
- Electron 38+ upgrade
- macOS notarization and code signing
- Snap / Flatpak / AppImage packaging
- Community plugin repository
Contributions welcome — bug fixes, translations, tests, features.
git checkout -b fix/my-bug-fix
npm test # must pass
npx tsc --noEmit # must passSee CONTRIBUTING.md for the full guide.
Original work (c) 2016-2023 Balena Ltd Modifications (c) 2024-2026 Spark contributors