What if your entire OS was just Claude Code?
A Linux distro that boots straight into Claude Code. No desktop. No window manager. Just a TTY and an AI agent with full system access. Built on Ubuntu 24.04 LTS.
If Claude Code can install packages, write and run code, manage files, browse the internet, and operate your entire machine β what do you need a desktop for?
ClaudiOS takes this idea to its logical conclusion: the operating system gets out of the way and Claude becomes the interface. You boot, you log in, and you're talking to Claude. That's it.
Flash it to a USB stick, boot any x86_64 machine, and you have a portable AI workstation.
sudo apt install live-build curl gnupg grub-pc-bin xorriso
sudo ./build.sh
sudo ./flash.sh /dev/sdX
Replace /dev/sdX
with your USB device (lsblk
to find it). The script writes the ISO and creates the persistence partition automatically β the USB is ready to use from the first boot.
Manual flash (without persistence) #
sudo umount /dev/sdX*
sudo dd if=live-image-amd64.hybrid.iso of=/dev/sdX bs=4M status=progress
If you flash manually, the persistence partition will be created automatically on first boot instead.
Log in with claudios
/ claudios
and you're in Claude Code.
BIOS/UEFI β GRUB β Linux β TTY login
ββ user: claudios / password: claudios
ββ claudios-shell (login shell)
ββ [if claude missing] auto-install via npm
ββ Claude Code in loop
ββ Ctrl+C (3s) β escape to bash
claudios-shell
is the user's actual login shell β set in /etc/passwd
, not a .bashrc
hack. It launches Claude Code in a loop. If Claude exits, you're prompted to restart or drop to bash.
Zero-config bootβ log in and you're in Claude Code, ready to work** USB persistence**β first boot auto-creates a persistence partition; your auth, config, and session history survive reboots** Escape hatch**β hold Ctrl+C for 3 seconds at startup to drop to a standard bash shell** Auto-install**β ifclaude
isn't found in PATH, it's installed automatically via npmBuilt-in slash commandsβ/reboot
reboots the system,/shut-down
exits back to the shellPasswordless sudoβ for system operations Claude needs (reboot, package install)~1 GB ISOβ boots in under a minute on most hardware
No need to flash a USB to try it:
sudo apt install qemu-system-x86
./test.sh
Already flashed a USB? You can boot it in QEMU too:
sudo qemu-system-x86_64 \
-drive file=/dev/sdX,format=raw \
-m 4G \
-enable-kvm \
-cpu host \
-device virtio-vga \
-display gtk
Replace /dev/sdX
with your USB device (lsblk
to find it). The ISO boots in BIOS/Legacy mode.
Tip:To log in to your Claude account from your PC terminal (so you can copy and paste the auth URL easily), boot with-nographic
instead:
sudo qemu-system-x86_64 \
-drive file=/dev/sda,format=raw \
-m 4G \
-enable-kvm \
-cpu host \
-nographic \
-serial mon:stdio
- Linux system with
live-build
curl
,gnupg
,grub-pc-bin
,xorriso
- Internet connection
- ~10 GB free disk space
auto/config
β passes flags tolb config
(Ubuntu Noble, amd64, GRUB boot)config/package-lists/claudios.list.chroot
β packages installed in the imageconfig/hooks/live/*.hook.chroot
β chroot scripts (locale, Node.js, Claude Code, user creation)config/includes.chroot/
β files copied verbatim into the filesystem
sudo ./clean.sh
To also remove the package cache (forces a full re-download on next build):
sudo ./clean.sh && sudo rm -rf cache/
claudios/
βββ build.sh # Main build script (requires sudo)
βββ flash.sh # Flashes ISO to USB with persistence
βββ clean.sh # Removes build artifacts
βββ test.sh # Launches the ISO in QEMU
βββ auto/
β βββ config # live-build configuration
β βββ build # Wrapper for lb build
β βββ clean # Wrapper for lb clean
βββ config/
βββ archives/ # Additional apt repositories (NodeSource)
βββ package-lists/ # Packages to install in the ISO
βββ hooks/live/ # Scripts that run inside the build chroot
β βββ 0050-locale-timezone.hook.chroot
β βββ 0100-install-nodejs.hook.chroot
β βββ 0200-install-claude-code.hook.chroot
β βββ 0300-create-user.hook.chroot
β βββ 0350-enable-persist.hook.chroot
βββ includes.chroot/ # Files copied directly into the filesystem
βββ etc/motd
βββ etc/shells
βββ etc/sudoers.d/claudios
βββ etc/systemd/system/
β βββ claudios-persist.service
βββ home/claudios/.claude/commands/
β βββ reboot.md # /reboot slash command
β βββ shut-down.md # /shut-down slash command
βββ usr/local/bin/
βββ claudios-shell # Primary login shell
βββ claudios-persist # Auto-persistence setup script
If claudios-shell
fails and you lose access:
From GRUB: edit the kernel line and appendinit=/bin/bash
From TTY: theclaudios
user has sudo β usechsh
to change the shell
| Field | Value |
|---|---|
| Username | claudios |
| Password | claudios |
| API key | managed by Claude Code |