Skip to content

About

Portable, sanitised OpenClaw and Open WebUI integration for Linux and WSL

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

17 Commits

Folders and files

Repository files navigation

Rhizome Stack

Built by Antoni Norman with heavy AI-assisted development, manual testing, direction, tuning and final integration. Built on and alongside OpenClaw, Open WebUI and other open-source projects; upstream authorship is preserved in LICENSES.md.

A portable OpenClaw + Open WebUI setup, with local memory, practical agent skills and optional speech. Start with one working model, then add what you need. Linux and WSL2 use the same setup wizard.

Status: 0.1.0-alpha.15 candidate. Installer and regression checks are automated; complete native Linux and WSL2 installations still need acceptance testing. Read known limitations before installing on a working machine.

What you get

Component Purpose Included by default?
OpenClaw gateway + Open WebUI Agent runtime and browser interface, joined by a model adapter Yes
Pinned upstream patches Preserve the integration against specific upstream builds Yes
Skills Seven core reliability skills; fifteen bundled skills available on demand Optional
GLiNER + Ornith workforce Optional routing advice and a bounded, text-only local worker under Rhizome Optional; configured separately
Semantic memory Import your own documents, chat exports and RhizomeML data; hybrid retrieval Optional
Voice Chatterbox-Nano TTS, faster-whisper STT and local Voice Lab Optional
Code interpreter Podman-backed Jupyter environment Optional
CPU MiniLM retrieval Revision-pinned semantic support for bounded workforce jobs Optional
Qwen Image Desk Local image generation/editing from its desk or directly inside an Open WebUI chat Optional
MiniMax Music 3 Local song generation from its desk or directly inside an Open WebUI chat Optional
WAN Video Desk Local text/image-to-video generation from its desk or directly inside an Open WebUI chat Optional

OpenClaw stays pinned to 2026.7.1-2 and Open WebUI to 0.11.0. The pinned versions are compatibility choices, not promises that they are the latest releases. Upgrading them requires checking the patches and real request path first.

Images, music and video inside Open WebUI

Qwen Image Desk, MiniMax Music 3 and WAN Video Desk are not limited to their standalone web interfaces. After the creative profile and packaged Open WebUI tools are installed, an ordinary saved chat can:

  • create a Qwen image and keep the PNG inline in that chat;
  • edit an image uploaded by the signed-in Open WebUI user;
  • create a MiniMax song and keep the MP3 as a native playable file card;
  • create or image-condition a WAN video, keep the MP4 inline in the chat and retain the take in Video Desk; and
  • continue the conversation with the local chat model after generation.

The packaged qwen_image, minimax_music_3 and wan_video tools share components/openwebui_local_media.py. It serialises media jobs, refuses to interrupt active ComfyUI work, unloads Ollama before generation, starts the selected local generator, attaches the finished file to Open WebUI, then frees and stops the owned ComfyUI engine so the chat model can reload.

See Open WebUI local media for the exact data flow, setup, safety boundaries and chat examples. The browser showcase contains current screenshots of all three standalone desks and the PNG, MP3 and MP4 render paths inside saved Open WebUI chats.

Start here

Requirements: x86-64 Linux, Python 3.11–3.12, an Arch/CachyOS or Debian/Ubuntu family distribution, and systemd user services. Under WSL2 use Ubuntu or Debian with systemd enabled. Downloads require internet access; the optional voice and memory environments can use substantial disk space.

Clone the repository, inspect the installer, and preview its actions:

git clone https://github.com/pinguy/rhizome-stack.git
cd rhizome-stack
./install-linux.sh --dry-run --with-skills
./install-linux.sh --with-skills

If you want a local Ollama backend, the welcome wizard offers to install Ollama when it is missing. You can also install it explicitly before onboarding with ./install-linux.sh --with-ollama. Existing Ollama installations are preserved. In the Ollama welcome flow, you can choose ornith-1.5:9b (6.6 GB), ornith-1.5:35b (23 GB), or another model ID. Missing Ornith models are pulled only with explicit confirmation (default No); catalogue verification is not an inference test.

On WSL2 substitute ./install-wsl.sh; see WSL setup. System packages use interactive sudo; services are staged but not started.

If ~/.local/bin is not on your PATH, use the full command:

~/.local/bin/rhizome-stack welcome
~/.local/bin/rhizome-stack doctor
~/.local/bin/rhizome-stack start
~/.local/bin/rhizome-stack smoke

Open http://localhost:8080, create the first local administrator, choose a model and send a real message. A model catalogue or healthy HTTP endpoint does not prove that inference works. First-run guide covers provider setup, optional modules and packaged Open WebUI tools. The Qwen, MiniMax and WAN tools are opt-in registrations: they safely hand the local GPU from an idle Ollama model to ComfyUI, persist the generated file in the saved chat, and then release ComfyUI so chat inference can resume.

Add what you need

# Profiles can be combined; no model blobs are in this repository.
./install-linux.sh --with-memory --with-skills
./install-linux.sh --with-voice --download-models
./install-linux.sh --with-jupyter
./install-linux.sh --with-routing
./install-linux.sh --with-retrieval
./install-linux.sh --with-creative --download-creative-models

# Launch a creative app after installation.
rhizome-stack creative qwen
rhizome-stack creative minimax
rhizome-stack creative wan

# Prepare, preview and select a local Chatterbox voice.
rhizome-stack voice-lab

# See the collection, or install the extra skills deliberately.
rhizome-stack skills list
rhizome-stack skills install --profile all --dry-run
rhizome-stack skills install --profile all

# Preview a private import before writing anything.
rhizome-stack import ~/Downloads/conversations.json --type chatgpt --dry-run
rhizome-stack import ~/Downloads/conversations.json --type chatgpt
rhizome-stack import ~/Downloads/memory.jsonl.gz --type rhizomeml

Ollama installation is opt-in (--with-ollama or the local-backend welcome prompt), and models are selected or imported separately. On Arch/CachyOS the installer uses pacman (including ollama-cuda when NVIDIA is detected); on Debian/Ubuntu it runs Ollama's official HTTPS-downloaded installation script after the user opts in. Existing installations are never updated by this path. Hosted provider credentials are entered on the target machine. Memory, chats, credentials, voice references, browser profiles and model weights are never seeded from the reference machine.

Guides

Development and releases

# Keep the test environment outside the source tree.
python3 -m venv /tmp/rhizome-stack-tests
/tmp/rhizome-stack-tests/bin/python -m pip install -r tests/requirements.txt
/tmp/rhizome-stack-tests/bin/python tools/check.py
python3 tools/export_release.py --output /tmp/rhizome-stack-release
python3 tools/build_release.py --output-root /tmp/rhizome-stack-build

The test runner discovers every tests/test_*.py suite and returns a failure if any suite fails. Node is needed for the creative JavaScript regression; FAISS storage checks skip explicitly when its dependencies are absent. See the 16 October hygiene follow-up for the alpha.14 fixes and checks, the 18 October independent-audit response, the 16 October release review for the preceding stack capture, the 14 October hygiene review, the 13 October integration review, and the earlier review.

The exporter copies only the paths in manifests/release-files.json, then runs the privacy audit and SHA-256 manifest verification. Unlisted files are excluded. Inspect the resulting manifest and diff before distributing a release.

Original glue and documentation are MIT; bundled Skills retain Apache-2.0, and upstream patches retain their upstream terms. See LICENSES.md.

Security update for existing installations

The adapter now requires a generated shared secret, and the optional Jupyter service requires its own token. Existing Open WebUI installations may retain saved connection settings that override environment variables. Follow the security migration steps when updating. The installer selects Python 3.11 or 3.12; use --python /path/to/python3.12 when your default python3 is newer. It rejects unsupported existing venvs before making installation changes.

About

Portable, sanitised OpenClaw and Open WebUI integration for Linux and WSL

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages