An open API service indexing awesome lists of open source software.

https://github.com/gofman5/lux-antidetect

Advanced antidetect browser manager with 16-vector fingerprint engine, proxy management, and per-launch unique identity generation
https://github.com/gofman5/lux-antidetect

antidetect browser electron fingerprint privacy proxy react sqlite tailwindcss typescript

Last synced: about 2 months ago
JSON representation

Advanced antidetect browser manager with 16-vector fingerprint engine, proxy management, and per-launch unique identity generation

Awesome Lists containing this project

README

          


Lux Antidetect

Lux Antidetect Browser


Advanced antidetect browser manager with per-profile fingerprint isolation, proxy management, and real browser automation.


Electron
React
TypeScript
SQLite
Tailwind CSS
Windows
License


Fingerprint Vectors
GPU Configs
Timezones
Chrome Versions

---

## Overview

Lux Antidetect is a desktop application that launches real browsers (Chrome, Edge, Firefox) with fully spoofed, unique fingerprints per profile. Each profile gets its own isolated browser data directory, proxy configuration, and fingerprint identity — making every session appear as a completely different user.

Unlike browser extensions or simple UA switchers, Lux injects fingerprint overrides at the **content script level** (Chromium MV3 `MAIN` world) before any page JavaScript executes, covering **16 independent fingerprint vectors** with `toString()` cloaking to defeat detection.

## Key Features

### Fingerprint Engine

| Vector | Technique |
|--------|-----------|
| **Canvas** | Seeded PRNG noise on `toDataURL`, `toBlob`, `getImageData` |
| **WebGL** | Vendor/renderer spoofing, extension list, shader precision |
| **AudioContext** | Channel data noise, frequency data perturbation, oscillator detune |
| **Fonts** | `FontFaceSet.check()` filtering against randomized font subsets |
| **ClientRects** | Sub-pixel noise on `getBoundingClientRect` / `getClientRects` |
| **Navigator** | UA, platform, hardware concurrency, device memory, languages |
| **Screen** | Resolution, color depth, pixel ratio, inner/outer dimensions |
| **Timezone** | `getTimezoneOffset`, `Intl.DateTimeFormat`, constructor hook |
| **WebRTC** | ICE candidate filtering, SDP stripping, STUN/TURN policy |
| **Media Devices** | Deterministic device IDs, configurable input/output counts |
| **Plugins** | Realistic PDF plugin array matching real Chrome |
| **Permissions** | Consistent permission states for all queried APIs |
| **Battery** | Static battery API response |
| **Connection** | Spoofed `navigator.connection` properties |
| **Chrome Object** | Full `window.chrome` with `runtime`, `csi`, `loadTimes`, `app` |
| **Misc** | `webdriver=false`, `doNotTrack`, speech synthesis, notifications |

All hooks are **cloaked**: `Function.prototype.toString` returns the original native code string for every patched function.

### Browser Management

- **Multi-browser support** — Chrome, Edge, Firefox with auto-detection
- **Isolated profiles** — Each profile has its own `--user-data-dir` (Chromium) or `-profile` (Firefox)
- **State machine** — `ready → starting → running → stopping → ready` with error recovery
- **Crash recovery** — Stale "running" profiles auto-reset to "ready" on app restart
- **Graceful shutdown** — All browser processes killed cleanly on app exit
- **Process health monitoring** — Periodic PID probing to detect orphaned processes
- **Session history** — Every launch/stop is logged with timestamps and exit codes

### Network & Security

- **Proxy support** — HTTP, HTTPS, SOCKS4, SOCKS5 with per-profile assignment
- **Proxy auth extension** — MV3 background service worker handles `username:password` auth automatically
- **DNS-over-HTTPS** — Enabled by default via `--dns-over-https-mode=automatic`
- **TLS fingerprint randomization** — Shuffled TLS 1.3 cipher suite ordering per launch
- **WebRTC leak protection** — Configurable ICE policy with SDP candidate filtering
- **Start URL** — Configurable per-profile URL to open on launch

### Profile Tooling

- **Bulk operations** — Select multiple profiles, launch/stop/delete in batch
- **Group color tags** — Assign colors to profiles, filter by group
- **Profile templates** — Save profile configs as reusable templates
- **Profile duplication** — One-click clone with fresh fingerprint seeds
- **Cookie import/export** — Read/write cookies from profile data directories
- **Fingerprint validation** — Cross-check UA/platform/GPU/screen consistency

### Fingerprint Generation

Every launch generates a **unique, coherent fingerprint** from realistic data pools:

- **12 Chrome major versions** (122–133) with randomized build/patch numbers
- **39 GPU configurations** — NVIDIA (17), AMD (12), Intel (10) for Windows; Apple Silicon (15) for Mac
- **25 screen resolutions** — 15 Windows, 10 Mac with appropriate pixel ratios
- **70+ timezones** — Weighted by real-world usage, with timezone→language mapping
- **9 hardware configs** — Weighted CPU core / memory combinations
- **60+ fonts** — OS-appropriate subsets (Windows fonts vs Mac fonts)
- **OS distribution** — ~65% Windows / ~35% Mac matching real browser stats

### UI & Theming

- **Compact dashboard** — Split-panel layout with collapsible sidebar
- **5 theme presets** — Midnight Blue, Midnight Purple, Emerald Dark, Crimson Dark, Ocean Teal
- **Custom themes** — Full color picker for 12 color tokens
- **Responsive** — Adapts to window resizing with flexible column layouts

### Portable Mode

Place a `data/` directory next to the executable — Lux will use it instead of `%APPDATA%`, making the entire app portable on a USB drive.

## Architecture

```
src/
├── main/ # Electron main process
│ ├── index.ts # App entry, window creation, crash recovery
│ ├── db.ts # SQLite schema + migrations (WAL mode)
│ ├── ipc.ts # 30+ IPC handlers
│ ├── browser.ts # Browser launch/stop, extension writing
│ ├── fingerprint.ts # Generation engine + injection script builder
│ ├── profile.ts # Profile CRUD
│ ├── proxy.ts # Proxy CRUD + connectivity test
│ ├── sessions.ts # In-memory session tracking + history logging
│ └── models.ts # TypeScript interfaces
├── preload/
│ ├── index.ts # contextBridge API exposure
│ └── index.d.ts # Type declarations for renderer
└── renderer/src/
├── App.tsx # Router setup
├── components/
│ └── Layout.tsx # Sidebar navigation
├── pages/
│ ├── ProfilesPage.tsx # Split-panel profiles dashboard
│ ├── ProfileEditorPage.tsx # Profile editor panel
│ ├── ProxiesPage.tsx # Proxy management
│ └── SettingsPage.tsx # Themes, fingerprint settings, history
├── stores/
│ ├── profiles.ts # Zustand store with reactive session events
│ ├── proxies.ts # Proxy store
│ └── settings.ts # Theme + settings store
└── lib/
├── themes.ts # Theme system (presets + custom)
├── types.ts # Shared TypeScript types
├── ui.ts # Shared UI class constants
└── api.ts # Window API reference
```

### Database Schema

| Table | Purpose |
|-------|---------|
| `profiles` | Browser profiles with status, group, proxy, start URL |
| `fingerprints` | 20-field fingerprint per profile (1:1) |
| `proxies` | Proxy server configurations |
| `templates` | Reusable profile templates |
| `session_history` | Launch/stop audit log with duration and exit codes |
| `settings` | Key-value store for app settings |

## Getting Started

### Prerequisites

- **Node.js** 18+
- **npm** 9+
- At least one supported browser installed (Chrome, Edge, or Firefox)

### Install

```bash
git clone https://github.com/GofMan5/lux-antidetect.git
cd lux-antidetect
npm install
```

### Development

```bash
npm run dev
```

### Build

```bash
# Windows installer (NSIS)
npm run build:win

# macOS
npm run build:mac

# Linux (AppImage, Snap, Deb)
npm run build:linux
```

### Type Check

```bash
npm run typecheck
```

## Tech Stack

| Layer | Technology |
|-------|-----------|
| Runtime | Electron 39 |
| Frontend | React 19, React Router 7, Zustand 5 |
| Styling | Tailwind CSS 4 with CSS custom properties |
| Forms | React Hook Form + Zod validation |
| Database | better-sqlite3 (WAL mode, foreign keys) |
| Build | electron-vite 5, Vite 7 |
| Language | TypeScript 5.9 (strict) |
| Packaging | electron-builder (NSIS, DMG, AppImage) |

## Security Considerations

- **Sandbox enabled** — Renderer runs with `sandbox: true`, `contextIsolation: true`, `nodeIntegration: false`
- **No remote code** — All fingerprint injection is local, no external calls
- **Passwords isolated** — Proxy passwords stored in local SQLite, never sent to renderer (only `has_password: boolean`)
- **Process isolation** — Each browser runs as a detached child process

## Roadmap

- [ ] Real fingerprint database from browser telemetry
- [ ] Electron auto-updater with GitHub Releases
- [ ] Cookie editor with domain-level management
- [ ] Playwright/Puppeteer automation API per profile
- [ ] Multi-platform browser path detection (Linux, macOS)
- [ ] Profile import/export (JSON bundles)
- [ ] Team collaboration with encrypted profile sharing

## License

MIT

---


Built with Electron, React, and an unhealthy obsession with fingerprint vectors.