Core concepts
What is a module?
Modules represent standalone features or AI engines. They are displayed as interactive cards inside the LynxHub interface. Examples include Stable Diffusion, ComfyUI, or local llama.cpp models.- Purpose: Integrate external tools, scripts, or local binaries that require dedicated configuration and execution.
- UI style: Appears as a self-contained card under specific tabs (such as image generation or text generation). It features argument inputs, installation wizards, and terminal status monitors.
- Process architecture: Modules run backend processes (such as Python scripts) in the background via a terminal shell. The host process controls execution and handles status tracking.
What is an extension?
Extensions are dynamic plugins designed to integrate deeply with the LynxHub core client shell.- Purpose: Add custom pages, modify the layout, listen to global events, inject state management, or add system tray widgets.
- UI style: Injects React components directly into predefined host layout slots (such as the Title Bar, Status Bar, Settings page, or Sidebar navigation).
- Process architecture: Runs continuously in both the main process (Node.js) and the renderer process (Chromium). The renderer elements load dynamically at runtime using Webpack Module Federation.
Comparative matrix
Use this table to understand the key differences between modules and extensions:Choosing the right plugin type
Select the integration model that best fits your requirements:Choose a module if:
- You want to bring an existing AI model, tool, or console script (such as ComfyUI or a custom Python script) into LynxHub.
- You want LynxHub to automatically manage installation (such as
git cloneorpip install), updates, and process execution. - Your tool fits nicely into a standardized card interface with configuration parameters.
Choose an extension if:
- You need to add a brand-new top-level tab or custom route outside the standard card-style pages.
- You need to modify the main frame layout, such as putting a status widget in the title bar or adding custom menu items to the tray.
- You want to hook into global application lifecycle events, state changes, or listen to all window events.
Next steps
Ready to start building? Refer to the quick start guides:Build extensions
Create user interface elements and widgets to enhance the LynxHub workspace.
Build modules
Build backend integrations and connect custom services to your client.