Development: VM image (QCOW2/RAW) and live ISO building. Creates bootable images from the OS container using bootc-image-builder and Titanoboa. Run from repository root with 'just build-qcow2' or 'just build-iso'. Use when developers need to create deployable VM or installer images.
/plugin marketplace add atrawog/bazzite-ai-plugins/plugin install atrawog-bazzite-ai-dev-bazzite-ai-dev@atrawog/bazzite-ai-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
The vms development commands create bootable images from the bazzite-ai OS container. It supports QCOW2/RAW VM images via bootc-image-builder and live ISOs via Titanoboa.
Key Concept: This is a development command - run with just from the repository root, not ujust. These commands create images for deployment, not for running VMs (use ujust vm for that).
| Action | Command | Description |
|---|---|---|
| Build QCOW2 | just build-qcow2 | Create QCOW2 VM image |
| Build RAW | just build-raw | Create RAW VM image |
| Build ISO | just build-iso | Create live ISO (Titanoboa) |
| Build NVIDIA ISO | just build-iso-nvidia | Create NVIDIA live ISO |
| Build all ISOs | just build-iso-all | Create standard + NVIDIA ISOs |
| Rebuild QCOW2 | just rebuild-qcow2 | Build OS then QCOW2 |
| Rebuild ISO | just rebuild-iso | Build OS then ISO |
| Cloud-init seed | just create-cloud-seed | Create seed.iso for VMs |
| Alias | Target |
|---|---|
just build-vm | just build-qcow2 |
just rebuild-vm | just rebuild-qcow2 |
just build-qcow2 [target_image] [tag]
just build-raw [target_image] [tag]
| Parameter | Default | Description |
|---|---|---|
target_image | localhost/bazzite-ai | Source container image |
tag | 43 | Image tag |
just build-iso [target_image] [tag]
just build-iso-nvidia [target_image] [tag]
| Parameter | Default | Description |
|---|---|---|
target_image | localhost/bazzite-ai | Source container image |
tag | 43 | Image tag |
just create-cloud-seed [output_dir] [hostname] [autologin]
| Parameter | Default | Description |
|---|---|---|
output_dir | ./output | Output directory |
hostname | bazzite-ai-vm | VM hostname |
autologin | true | Enable autologin |
| Tool | Purpose | Output |
|---|---|---|
| bootc-image-builder | QCOW2/RAW VM images | output/qcow2/ or output/raw/ |
| Titanoboa | Live ISO with desktop | output/bootiso/ |
| Image Type | Location |
|---|---|
| QCOW2 | output/qcow2/ |
| RAW | output/raw/ |
| ISO | output/bootiso/bazzite-ai-*.iso |
| Cloud-init | output/seed.iso |
# 1. Build OS image first
just build
# 2. Create QCOW2
just build-qcow2
# 3. Create cloud-init seed
just create-cloud-seed
# 4. Launch with QEMU
qemu-system-x86_64 -enable-kvm -m 8G -cpu host \
-drive file=output/qcow2/disk.qcow2,format=qcow2 \
-cdrom output/seed.iso
# 1. Build OS image
just build
# 2. Create standard ISO
just build-iso
# 3. Or create NVIDIA variant
just build-iso-nvidia
# 4. Write to USB
sudo dd if=output/bootiso/bazzite-ai-43.iso of=/dev/sdX bs=4M status=progress
# Build OS + create QCOW2 in one step
just rebuild-qcow2
# Build OS + create all ISOs
just rebuild-iso-all
| Variant | Filename | Description |
|---|---|---|
| Standard | bazzite-ai-<tag>.iso | Default ISO |
| NVIDIA | bazzite-ai-nvidia-<tag>.iso | NVIDIA drivers included |
The create-cloud-seed command generates:
user-data:
#cloud-config
ssh_authorized_keys:
- <your SSH public key>
runcmd:
- /usr/libexec/bazzite-ai/cloud-init-autologin # if autologin=true
meta-data:
instance-id: <hostname>-<timestamp>
local-hostname: <hostname>
just build)cloud-localds for seed ISOSymptom: Cannot find source image
Cause: OS image not built or wrong tag
Fix:
# Build OS image first
just build
# Then build VM
just build-qcow2
Symptom: Cannot access output directory
Cause: Previous build left root-owned files
Fix:
# Fix permissions
sudo chown -R $USER:$USER output/
# Or clean and rebuild
just clean output
just rebuild-qcow2
Symptom: Titanoboa container fails
Cause: Missing hooks or flatpak list
Fix:
# Verify hook scripts exist
ls installer/titanoboa_hook_*.sh
# Verify flatpak list exists
ls installer/kde_flatpaks/flatpaks
Symptom: create-cloud-seed fails
Cause: No SSH public key in ~/.ssh/
Fix:
# Generate SSH key
ssh-keygen -t ed25519
# Then create seed
just create-cloud-seed
build (OS image), clean (cleanup output)ujust vm (run VMs), ujust bootc (bootc VMs)image.toml (bootc-image-builder config)Use when the user asks about:
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.