JL Engine Local is the local-first JL Engine runtime and UI stack. The engine is the product surface, and SparkByte is the default active fat-agent voice loaded on top of it.
This repository is source-available under the non-commercial license in LICENSE.md. It is not an OSI open-source license.
jl_engine_core/: the core engine, MPF registry loader, backends, and compatibility APIsrc/jl_platform/: the full local platform runtime, quest/interpreter flow, browser bridge, and operator toolsui_web/: the main command deck served at/ui/ui_easy/: the lighter flow deck served at/ui-easy/src/jl_engine_cli/: CLI entrypoints such asj-engine
For a true one-click first run on Windows, double-click:
.\install_and_run_windows.batThat script uses your current Python install, installs the API dependencies into that environment, and then launches the standalone command deck.
If you explicitly want an isolated .venv, set JL_PLATFORM_USE_VENV=1 before running it.
Notes for the first Windows install:
Defaulting to user installation because normal site-packages is not writeableis normal on a non-admin Python installChecking if build backend supports build_editable ... doneis a normalpip install -estep, not a JL Engine error- if that window sits there for several minutes with no new output, run
py -3 -m pip install --disable-pip-version-check -e ".[api]" -vfrom the repo root to see the exact package step that is stalling
If you already have the environment installed, the faster launcher is:
.\run_command_deck.batThat launcher starts the full JL Platform API at jl_platform.services.api.main:app, waits for /health, and opens the standalone command deck window using the current Python environment.
Optional launcher switches:
JL_PLATFORM_UI_PATH=/ui/keeps the main command deckJL_PLATFORM_UI_PATH=/ui-easy/opens the lighter flow deckJL_PLATFORM_LAUNCH_MODE=standaloneopens an app-style window when Edge or Chrome is availableJL_PLATFORM_LAUNCH_MODE=browseropens a normal browser tab
pip install -e .[api]
python -m uvicorn jl_platform.services.api.main:app --host 127.0.0.1 --port 8000Then open:
http://127.0.0.1:8000/ui/http://127.0.0.1:8000/ui-easy/http://127.0.0.1:8000/health
pip install -e .
j-engine --agent SparkByteThe current source-of-truth runtime files are:
jl_engine_core/data/config/JLframe_Engine_Framework.headless.jsonjl_engine_core/data/agents/JL_Agents.mpf.jsonjl_engine_core/data/behavior_states.json
The MPF registry is the short pointer layer. It maps names such as SparkByte or SparkByte Modular to full payload files under the runtime data tree.
JL Engine does not treat fat agents as a sidecar. The engine loads them as the active persona payload for a session.
SparkByte,Slappy,Supervisor, andThe Gremlinare fat-agent entries in the MPF registrySparkByte Modularis a modular fat agent that expands from abase_shellinto a resolved payload at load time- quest chat and mission routes create sessions through
FatQuestRuntime, which in turn loads the requested fat agent intoJLEngineCore
There are two API layers in this repo:
- Full local platform API:
jl_platform.services.api.main:appThis is the primary runtime for/ui/,/ui-easy/, quest chat, browser bridge, workspace review, and operator tooling. - Compatibility API:
jl_engine_core.api_app:appThis remains for older integrations and smoke checks, but it is not the main product surface anymore.
jl_engine_core/ Core engine runtime, data, compatibility API
src/jl_platform/ Full platform runtime and FastAPI service
src/jl_engine_cli/ CLI wrappers and entrypoints
ui_web/ Main command deck
ui_easy/ Lightweight flow deck
tests/ Regression and smoke tests
docs/ Architecture, MPF, forge, and error-handling notes
Useful checks:
python -m pytest tests/test_smoke.py tests/test_web_ui_easy.py tests/test_web_ui_shell.py
python -m uvicorn jl_platform.services.api.main:app --host 127.0.0.1 --port 8000ARCHITECTURE.mdTROUBLESHOOTING.mddocs/README.mddocs/MPF_OPEN_STANDARD.mddocs/TOOL_FORGE.mddocs/ERROR_HANDLING.mdSECURITY.md
See LICENSE.md.