ov-images/skills/openclaw-browser-bootc/SKILL.md
Bootc VM image with OpenClaw gateway, Chrome, VNC, and PipeWire. Currently disabled. Enable in image.yml to build. MUST be invoked before building, deploying, or troubleshooting the openclaw-browser-bootc image.
npx skillsauth add overthinkos/overthink-plugins openclaw-browser-bootcInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Bootable container (bootc) VM image with OpenClaw AI gateway, Chrome browser, VNC access, and PipeWire audio.
| Property | Value |
|----------|-------|
| Base | quay.io/fedora/fedora-bootc:43 |
| Bootc | true |
| Layers | agent-forwarding, bootc-base, openclaw, pipewire, wayvnc, chrome-sway |
| Platforms | linux/amd64 |
| Ports | 18789 (gateway), 5900 (VNC), 9222 (CDP) |
| Status | disabled (set enabled: true in image.yml) |
| Registry | ghcr.io/overthinkos |
distro: declarationThis image's image.yml entry does not declare distro:. Because base: "quay.io/fedora/fedora-bootc:43" is an external URL (not the name of another image.yml entry), the generator resolves Distro to null, which short-circuits the install_template's Phase-2 branch — no layer rpm: install RUNs are emitted. The image will build cleanly but every layer's declarative rpm: packages are missing; only cmd: dnf install … tasks survive.
This hasn't tripped because the image is enabled: false. Before enabling, add:
openclaw-browser-bootc:
base: "quay.io/fedora/fedora-bootc:43"
bootc: true
distro: ["fedora:43", fedora] # ← add this
...
The same latent bug affects /ov-images:bazzite-ai and /ov-images:aurora (both external ublue bases). See /ov:image "External Bases Require Explicit distro:" for the full mechanism; /ov-images:selkies-desktop-bootc is the canonical working reference.
| Setting | Value | |---------|-------| | SSH port | 2222 | | Disk size | 20 GiB | | RAM | 4G | | CPUs | 2 |
fedora-bootc:43 (external bootc base)bootc-base — sshd + guest agent + bootc configopenclaw — AI gatewaypipewire — audio serverwayvnc — VNC serverchrome-sway — Chrome in Sway compositor| Port | Service | Protocol | |------|---------|----------| | 18789 | OpenClaw gateway | HTTP | | 5900 | VNC | TCP | | 9222 | Chrome DevTools | HTTP |
# Enable in image.yml first (remove enabled: false)
ov image build openclaw-browser-bootc
ov vm build openclaw-browser-bootc --type qcow2
ov vm create openclaw-browser-bootc --ram 4G --cpus 2
ov vm start openclaw-browser-bootc
ov vm ssh openclaw-browser-bootc -p 2222
/ov-layers:bootc-base — SSH + guest agent/ov-layers:openclaw — AI gateway/ov-layers:chrome-sway — Chrome in Sway/ov-images:openclaw-sway-browser — container variant (enabled)/ov-images:openclaw-ollama-sway-browser — with Ollama LLM (enabled)/ov-images:selkies-desktop-bootc — sibling bootc image with distro: correctly declared; follow its pattern when enabling this one/ov-images:bazzite-ai, /ov-images:aurora — share the same latent distro: bug/ov:image — external-base distro: requirement explanation/ov:vm — VM lifecycle, /dev:/dev mount, vm.ssh_port plumbing, bootc-VM caveats/ov-layers:bootc-base — the bootc composition layer pulled in first/ov-layers:bootc-config — bootc boot wiring (tty1 autologin, graphical target, systemd-user supervisord)MUST be invoked when the task involves the openclaw-browser-bootc VM image or bootc-based OpenClaw deployment.
/ov:build — build.yml vocabulary (distros, builders, init-systems)tools
Use when authoring or modifying a charly PLUGIN — a candy with a `plugin:` block that contributes Providers (verbs/kinds/deploy-targets/steps/builders/commands), its own CUE schema, builtin (compiled-in) or external (out-of-tree git repo). Covers the unified Provider model, the per-plugin CUE-schema contract (single source → Go params for dev + schema-over-Describe RPC for runtime), the SDK, and the loader.
tools
The CUE data-validation / configuration CLI (cue), pinned to v0.16.1. Use when working with the cue candy, installing the cue binary into a box or onto a target:local dev host, or running the offline schema-vendoring pipeline that feeds charly's egress validation.
tools
CUE EGRESS validation — validating (and, where it adds value, generating) the config files charly WRITES to a system BEFORE the bytes hit disk. MUST be invoked before working on charly/egress.go, the vendored schemas under candy/plugin-egress/egress-schemas/vendor/, the ValidateEgress / registerVendoredEgressKind path, the offline `task cue:vendor` pipeline, or adding an egress schema for any written artifact (cloud-init, k8s manifests, traefik routes, runtime config, install ledger, systemd/quadlet units, ssh_config, libvirt XML).
tools
Kubernetes cluster-probe declarative check verb — the `kube:` check verb (nodes, pods, ingress, storage class, addon health, apply/delete, and arbitrary resource GETs) served out-of-process by the candy/plugin-kube plugin (vendored client-go; no external kubectl required).