Skip to content

Earn Mode in the browser

Earn Mode runs directly in the website — no download. Switch it on from Dashboard → Earn Mode. It uses the same policy model and the same evaluateEarnMode function as the desktop app will, restricted to what a browser can genuinely read and control.

The implementation is website/src/lib/browser-earn/engine.ts.

What it reads

Signal Browser API Notes
Idle time IdleDetector System-wide — knows when you've left the whole computer, not just the tab. Chrome and Edge, and only after you allow it.
Power source, battery level Battery Status API Chromium browsers. Elsewhere these conditions read as unknown.
System load Compute Pressure API (PressureObserver) Where available. Serious or critical CPU pressure holds Earn Mode back.
CPU threads, GPU name navigator.hardwareConcurrency, WebGL renderer For display only.

Nothing is sent to Idlecash. Unknown readings never count as met, so if a browser can't tell whether you're idle, Earn Mode waits. You can switch off any condition you don't want.

Conditions and limits

The browser supports: idle time, plugged in, battery level, active hours and a CPU limit. GPU usage conditions, GPU limits, storage and bandwidth need the desktop app, so the dashboard doesn't show them for the browser.

The CPU limit is enforced with Web Worker threads. For a limit of p% on a machine with n logical processors, Earn Mode runs ceil(n × p) workers, each busy for (n × p) / workers of every 100 ms slice and sleeping for the rest. On a 20-thread CPU at 50%, that's 10 workers busy 100% of the time — about half the machine.

States

State Meaning
Off Switched off. Nothing runs.
Waiting On, but a condition isn't met (or the system is under heavy load).
Ready Every condition is met. No paid workload is connected yet, so Earn Mode waits here without using CPU.
Measuring Running the capacity check.

The engine is shared across pages, so Earn Mode keeps running while you move around the site. It stops when the last Idlecash tab closes. A header indicator shows its state on every page while it's on.

Capacity check

The capacity check runs a dense matrix-multiply kernel on the workers for 12 seconds, within your CPU limit, and records the floating-point operations actually performed as GFLOPS. It runs automatically once the first time Earn Mode becomes ready (and stops immediately if a condition stops being met), or whenever you click Measure capacity. The result stays in this browser.

No paid workload source is connected yet, so browser Earn Mode doesn't earn anything today and the dashboard's earnings stay empty. The engine has a workloadSource slot: when a source is connected, a Ready engine will pull jobs from it and run them on the same CPU-limited workers — never before your conditions are met.