Noureddine RAMDI / LLM-God: orchestrating multiple LLM web UIs in one Electron app with DOM injection

Created Mon, 04 May 2026 10:23:02 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

czhou578/llm-god

LLM-God is an Electron desktop app that combines multiple large language model (LLM) web interfaces into one window, letting you prompt them all at once. Instead of using official APIs, it controls each service’s web UI through DOM injection — essentially automating the browser views inside the app to type and send queries simultaneously. This approach sidesteps the need for API keys or paid tiers, but also means the app depends on the stability of each LLM provider’s frontend.

Combining multiple LLM web interfaces into one app

LLM-God is built as an Electron app written in TypeScript. It embeds several popular LLM web UIs, including ChatGPT, Gemini, Claude, Grok, DeepSeek, and Copilot, each loaded in a separate browser view inside the main window. Users can select which LLM consoles to display and interact with them in a unified interface.

The architecture hinges on Electron’s capability to load multiple webviews and inject JavaScript into them for interaction. The app requires users to be logged in to each LLM provider within their respective embedded browser contexts — so it doesn’t handle authentication itself.

The stack is straightforward: Electron provides the desktop shell and cross-platform packaging, TypeScript ensures type safety and code clarity, and electron-reload is used during development for hot reloading. Packaging is handled with electron-builder, targeting Windows primarily, with experimental Linux support and untested Mac builds.

DOM injection as a clever but fragile technique for multi-LLM orchestration

What sets LLM-God apart is its method of controlling multiple LLMs simultaneously by directly injecting JavaScript into their web interfaces. Instead of relying on APIs (which often require paid access or tokens), it programmatically simulates user input and button clicks on each embedded web UI.

This involves identifying the DOM elements corresponding to the prompt input and the “New Chat” button for each LLM interface and triggering events to send prompts. The app supports pasting text or screenshots directly into the prompt area, and uses a keyboard shortcut (Ctrl+Enter) to broadcast the prompt to all selected models.

The tradeoff here is clear: while this approach enables free-tier usage and simultaneous multi-model querying, it is inherently brittle. Any change in the LLM providers’ frontend structure or button labels can break the injection scripts, requiring updates to keep the app functional.

From a code quality perspective, the repo is written in TypeScript, which helps maintain code safety and readability. The injection scripts are concise but need constant maintenance as they depend on the external UIs. The app’s Windows-first focus means Linux support is experimental, and Mac builds haven’t been tested, limiting cross-platform reliability.

How to get started with LLM-God

Using the app is straightforward according to the README:

  • Use the dropdown at the bottom right corner to add or remove LLM web consoles. ChatGPT, Gemini, and Llama are included by default and cannot be removed.
  • Press Ctrl + Enter to send the prompt to all selected LLMs at once.
  • Press Ctrl + W to close the app.

Important notes:

  • You must be logged into each LLM’s web interface inside the app for it to work properly.
  • The “New Chat” button may malfunction if the LLM interface language is not set to English.

This minimal instruction set lets you quickly try out the app without complex setup. The UI supports direct pasting of text or screenshots into the prompt area, improving the developer experience for multi-LLM querying.

Assessing LLM-God’s fit and limitations

LLM-God solves a niche but real problem: how to query multiple large language models simultaneously on a desktop without juggling browser tabs or paying for API access. Its Electron-based multi-webview design and DOM injection control are clever workarounds that tap into free-tier web UIs.

However, the approach has limitations. It depends heavily on the stability of third-party web interfaces, which are outside the app’s control. Providers updating their UI can break the injection scripts, leading to downtime or the need for quick patches. The Windows-first stance and experimental Linux support mean cross-platform users might face issues. Also, the need to be logged in to each service adds friction.

For developers or power users who want an integrated multi-LLM desktop client and don’t mind occasional maintenance, LLM-God offers an interesting starting point. For production or heavy usage, official APIs and more robust integrations remain the better path.

In short, LLM-God is worth exploring if you want a free, desktop-based, multi-LLM experience and are comfortable with the tradeoffs of DOM injection automation. It’s a practical example of squeezing value out of existing web UIs without APIs, but it’s not a turnkey solution for everyone.


→ GitHub Repo: czhou578/llm-god ⭐ 272 · TypeScript