Architecture

Developer guide

JX Jarvis is split into Electron, React, and Python. The frontend presents state and controls; the backend performs real desktop, browser, provider, memory, and permission work.

Frontend structure

frontend/src/
  pages/
  components/
  layouts/
  hooks/
  store/
  stores/
  services/
  overlays/
  widgets/
  workflows/
  voice/
  tools/
  utils/

`useJarvisRuntime` is the central runtime hook. It polls backend state, manages wake/listen flows, runs commands, updates logs, and connects page controls to APIs.

Backend structure

backend/
  api/
  agents/
  automation/
  browser/
  coding/
  execution/
  memory/
  plugins/
  providers/
  safety/
  system/
  tools/
  vision/
  voice/

Adding a backend tool

  1. Create a module in `backend/tools`.
  2. Guard sensitive actions through `api.permissions`.
  3. Return a real success or failure message.
  4. Add it to the runner list in `api.execution` if it should be available to autonomous plans.
  5. Add UI controls only after the API works.

Adding a provider

  1. Create `backend/providers/name_provider.py` with a `chat(...)` function.
  2. Add a `ProviderSpec` in `backend/providers/registry.py`.
  3. Add default model and route settings in `backend/providers/config.py`.
  4. Expose any provider-specific model discovery endpoints if needed.

Testing

backend\.venv\Scripts\python.exe -m compileall backend
npm run build

Contribution standards

Created by Jojin John

JX Jarvis is created by Jojin John.