Skip to content

Desktop vs web

The same React frontend ships twice: as the desktop app (Tauri WebView, real Python kernel) and as the browser build at getnuclei.dev/try (Pyodide, no server). A PlatformBridge interface (src/platform/bridge.ts) abstracts the difference; tauriBridge and webBridge implement it.

CapabilityDesktopWeb (/try)
Python kernelManaged-venv CPython subprocess over WebSocketPyodide v0.27.0, loaded from the jsDelivr CDN, in-page
QiskitYes (Aer simulator)No — ModuleNotFoundError is translated to a “download the desktop app” message
CirqYes (full cirq)Yes — cirq-core==1.5.0 installed via micropip; statevector, sampled counts, and Bloch coords all work
CUDA-QYes (CPU everywhere; GPU on Linux + CUDA)No — same translated error as Qiskit
Q# executionYes (QDK via the qdk package)No — rejected before Pyodide with code unsupported_framework and a desktop-only message
Q# editor intelligenceYes — qsharp-lang WASM compiler in a web worker: live diagnostics, completions, hoverYes — same worker loads lazily in both builds
Plain Python (run_python)YesYes
Hardware submissionAll providers via the kernelNone — sendHardware returns false on web; the kernel that talks to providers doesn’t exist there
Dirac AIYes — BYO Anthropic key, direct calls to api.anthropic.comYes — identical; the key lives in browser localStorage either way
File systemNative open/save dialogs, project folders, multi-file tabsFile System Access API where available; save always downloads the file
Persistencesettings.json in the app data dir + WebView localStorage (details)Browser localStorage only, keys prefixed nuclei:
PluginsMarketplace UI is a preview in both builds — no plugin code is loaded yetSame

Framework auto-detection, circuit rendering, the Bloch sphere, histograms, and the snapshot/result schemas are identical across both builds — the web kernel emits the same CircuitSnapshot and SimulationResult shapes.

Choose desktop when you need Qiskit, CUDA-Q, or Q# execution, real hardware submission, or real files. Choose web for zero-install Cirq experimentation, demos, and classrooms where installing anything is a fight.