qpyclaw is the QuecPython-native OpenClaw Node initiative. It keeps the gateway topology qpyclaw-node -> Official OpenClaw Gateway but rewrites the device runtime to fit resource-constrained QuecPython boards while still exposing the OpenClaw toolset.
- The shared runtime lives under
embed/qpyclaw-node/code/:qpyclaw_node.py,config.py,transport.py,tools.py,voice.py,dispatch.py, andnode_main.pyare the pieces that drive the node process running in/usr. - Reusable helpers (
ws_client.py,cellular.py) ship fromembed/components/and get copied to/usralong with the runtime. - Board-specific extensions live under
embed/boards/ec800mcnle-audio-board/code/asboard_*.py. They run from/usr/boardand control the screen, speakers, and capture while feeding aVoiceSessionControllerback into the runtime. - Media assets for
board_uinow canonicalize onU:/media/, with/usr/media/used as a fallback. The board UI tries every prefix automatically. - The deployment target for every artifact remains
/usr. Boards keep their own/usr/boardandU:/mediaslices, andconfig_local.pyis the only file that carries secrets.
embed/
├── qpyclaw-node/
│ ├── code/ <- runtime modules copied to /usr
│ ├── deploy/ <- manifests that drive qpy_usr_mirror_sync
│ └── examples/ <- board-specific examples and configs
├── components/ <- shared ws_client.py & cellular.py also deployed to /usr
└── boards/
└── ec800mcnle-audio-board/
├── code/ <- board_bootstrap.py, board_audio.py, etc.
└── resource/ <- `U:/media` emoji assets and schematics
- Use
embed/qpyclaw-node/deploy/runtime-manifest.jsonto driveqpy_usr_mirror_sync.py. That manifest now points at thecode/directory and includes the components (ws_client,cellular). - Run
qpy_board_code_sync.py/qpy_board_media_sync.pywhen flashing the EC800MCNLE board; these tools rely on the updated board manifest that now listsboard_audio.py,board_bootstrap.py, etc. - Bootstrapping a device still relies on
tools/host/qpy_post_flash_recover.py. It syncs/usr,/usr/board, andU:/mediaper the manifests and then pushesconfig_local.pyviaconfig-local-profiles.json. - Voice diagnostics and GUI rely on the board UI assets in
U:/media. IfU:/mediais missing,board_uifalls back to/usr/media, keeping the runtime resilient.
See the public Quickstart (docs/public/00-quickstart.md) for the bring-up workflow and the config samples (docs/public/01-config-sample.md) for the placeholders you should override on-device. Host tooling lives under tools/host/ and contains the recovery, smoke, and probe scripts you use on Windows.