Development and integration¶
Checkout setup¶
Install uv and Git, then run:
git clone https://github.com/stroblme/wren.git
cd wren
uv sync --locked
uv run wren "turn on the kitchen light"
The checkout pins Python 3.14 in .python-version; the package supports
Python 3.12 and newer. uv can download the pinned interpreter if needed.
The default dev group includes the training extra, Fluksio, pytest, Ruff,
ty and study dependencies. No GPU is required for installation training.
For an inference-only checkout, use uv sync --locked --no-dev and run
commands with uv run --no-dev wren .... For CPU training, the default
setup is sufficient. Python fit uses JAX's available backend; set
JAX_PLATFORMS=cpu before starting Python or the engine to force CPU use.
Tracked training¶
From the checkout, start the local engine in its own terminal:
uv run fluksio serve
Keep it running, then use a second terminal in the same directory:
uv run wren --train home.json
Follow the How-to to create home.json. The command trains
through wren.flow, records parameters, per-step loss, evaluation scores
and the pack, and downloads home.bin. Local engine state is stored in
the ignored .fluksio/ directory.
To retrain a copy of the demo installation without replacing packaged data:
cp wren/home.json home.json
uv run wren --train home.json
uv run wren --targets home.json --model home.bin "turn on the kitchen light"
home.json and home.bin are your local outputs; keep them out of a source
change unless you intend to publish a model.
GPU training¶
For a compatible NVIDIA GPU and driver, select the cuda12 or cuda13
dependency group. For example:
uv sync --locked --group cuda12
uv run --group cuda12 fluksio serve --gpus 1
Then run the tracked training command in a second terminal. Include the
selected group in later uv sync commands, which otherwise remove those
dependencies.
Checks and documentation¶
Run the same checks as CI:
uv run ruff check .
uv run ruff format --check .
uv run ty check
uv run pytest -q
uv build
The runtime tests compile runtime/wren.c, so a C compiler must be on
PATH. The tests include small training checks but do not retrain the
shipped demo model.
Preview and build the documentation from the repository root:
uvx zensical==0.0.72 serve
uvx zensical==0.0.72 build --clean --strict
The site is configured in zensical.toml, built into site/ and published
by .github/workflows/docs.yml. Edit the Markdown in docs/; edit
README.md for the repository overview. Ignored working notes are excluded
from the site. To update the architecture drawing, edit
docs/architecture.d2 and render it with
d2 docs/architecture.d2 docs/architecture.svg.
Wren in Fluksio¶
Fluksio's wren automation node runs Wren on typed or spoken commands. Its
wired devices define the targets; your installation's model interprets
commands and Fluksio applies calls or sends unhandled work to its assistant.
Register this checkout's training flow on the engine used by the node:
uv run fluksio sync wren.flow
The node's Train button submits its target definitions, examples and tests to that flow. See the Fluksio node reference for node settings and engine setup.
Wren 2.0's library API uses list[Target] and returns list[Call], with
confidence on each call. Code using the old House or Device API must
migrate; the demo home is now JSON data rather than a built-in device model.