How veloleha/hameleonweb works
HAMELEONWEB is an Electron desktop manager for multiple isolated WhatsApp Web accounts, with call recording and in-call prompting. The main workflow is: an operator adds or selects an account, uses its WhatsApp session, and records a call to an MP3; licensing gates access, and settings configure recording. The graph also shows the renderer-to-main IPC boundary and recording internals. README capabilities are included, but several implementation details are unsampled, so uncertain wiring—especially licensing and updates—is omitted.
Main entry points: main.js Electron coordinator · waPreload.js WhatsApp preload · recorder.js Recording controller · app.js App UI
Components 19
Desktop interface
- App UI
src/renderer/app.js - UI IPC bridge
src/renderer/preload.js
Application services
- Electron coordinator
src/main/main.js - Account management
src/main/accounts.js - Recording settings
src/main/settings.js - Licensing
src/main/auth.js - Local JSON storage
src/main/storage.js - Version updates
src/main/main.js
WhatsApp sessions
- Isolated account sessions
src/main/main.js - WhatsApp preload
src/main/waPreload.js - Call and prompt injection
src/main/waInject.js - Call detection patch
src/main/waInjectPatch.js
Call recording
- Recording controller
src/main/recorder.js - Microphone MP3 capture
src/main/recorder-helper/Program.cs
Other components
- Operator
- WhatsApp Web
- FFmpeg transcoder
- Recording files
- License service
Connections 21
- Operator → App UI: uses
- App UI → UI IPC bridge: calls API
- UI IPC bridge → Electron coordinator: invokes IPC
- Electron coordinator → Account management: manages accounts
- Electron coordinator → Recording settings: loads and saves
- Electron coordinator → Licensing: handles licensing
- Licensing → Local JSON storage: persists auth
- Electron coordinator → Isolated account sessions: creates and selects
- Isolated account sessions → WhatsApp Web: loads session
- Isolated account sessions → WhatsApp preload: attaches preload
- WhatsApp preload → Call and prompt injection: receives page messages
- WhatsApp preload → Call detection patch: observes call state
- WhatsApp preload → Electron coordinator: sends IPC events
- Electron coordinator → Recording controller: starts and stops
- Recording controller → Microphone MP3 capture: launches capture
- Microphone MP3 capture → Recording files: writes MP3
- Recording controller → FFmpeg transcoder: transcodes audio
- Recording controller → Recording files: writes recordings
- Electron coordinator → Call and prompt injection: controls prompt and capture
- Licensing → License service: validates licenses
- App UI → Version updates: requests updates