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
- Create a module in `backend/tools`.
- Guard sensitive actions through `api.permissions`.
- Return a real success or failure message.
- Add it to the runner list in `api.execution` if it should be available to autonomous plans.
- Add UI controls only after the API works.
Adding a provider
- Create `backend/providers/name_provider.py` with a `chat(...)` function.
- Add a `ProviderSpec` in `backend/providers/registry.py`.
- Add default model and route settings in `backend/providers/config.py`.
- Expose any provider-specific model discovery endpoints if needed.
Testing
backend\.venv\Scripts\python.exe -m compileall backend
npm run buildContribution standards
- Do not commit secrets or runtime memory.
- Do not fake task execution in UI.
- Keep changes scoped and preserve user work.
- Verify backend imports and frontend build before opening a pull request.
- Document new permissions, tools, and provider settings.
Created by Jojin John
JX Jarvis is created by Jojin John.
