Skip to content

Custom images

Kiki OS images are built with Podman from a Fedora bootc base and turned into installable artifacts with image-builder. Build your own when you want a different default model, extra packages, or a tailored profile.

The profiles

ProfileArchitectureDisplayFor
Desktopamd64YesPCs and devices with a screen
Serveramd64NoVPS, home servers, headless
Edge (lite)arm64NoARM embedded devices

Desktop and Server build on a shared base; Edge is a standalone minimal image.

Build

sh
make all            # desktop + server + lite
make build-desktop  # a single profile
make build-server
make build-lite

Each image is tagged with the resolved version and :latest, pushed to ghcr.io/kiki-os.

Choose the default model

The base image bakes in a default model name. Override it at build:

sh
podman build --build-arg DEFAULT_MODEL=llama3.2:3b -f Containerfile.base .

The value lands in agentd.toml as default_model. Pick a model your target hardware can run on-device — see Models.

Produce artifacts

sh
make iso      # dist/*.iso   — from desktop (USB / bare metal)
make qcow2    # dist/*.qcow2 — from server (QEMU/KVM, libvirt)
make ami      # an AWS AMI   — from server
make dev-vm   # boot the desktop ISO in QEMU/KVM to try it
make clean    # rm -rf dist/

Targets reference

TargetDescription
alldesktop + server + lite
build-baseBuild the shared base, tag version + latest
build-desktop / build-serverBuild a profile (depends on base)
build-liteBuild the arm64 edge image (standalone)
iso / qcow2 / amiProduce the matching artifact
dev-vmBoot the desktop ISO in QEMU/KVM
cleanRemove dist/

Publishing for over-the-air updates

Once built and pushed, an image reference can be delivered to devices over the air through the cloud, or applied by hand with bootc switch (see Command line). Because updates are atomic with rollback, a bad image never bricks a device.

Kiki OS, Desktop & SDK are open source. See Licensing.