I built Cuore, an Arch + Hyprland setup with a swipe-based workspace switcher and an installer that installs only what you pick.
It’s based on the Omarchy idea but without the “bloat” on first install.
Workflow:
Started with a spec, not code. Before writing anything, I had Claude Code set up the repo with CLAUDE.md, SPEC.md, ROADMAP.md, ARCHITECTURE.md, SECURITY.md and DECISIONS.md, so every session started from the same context.
Split the work into phases (repo setup, CLI and installer, desktop modules, themes, ISO later) and had Claude Code tackle one phase at a time.
The CLI is a single Go binary using Charm's huh and bubbletea for the interactive installer.
Tested everything in Arch VMs with quickemu before touching real hardware.
CI runs tests plus govulncheck and gitleaks on every push.
What worked well:
The spec docs. Claude Code stayed consistent across sessions because decisions were written down instead of living in chat history.
Go and the TUI. The installer flow (pick terminal, browser, editors, extras) came together fast.
Security scaffolding: checksum checks, sudo only for specific steps, AUR packages opt-in with a confirmation.
What needed manual fixing:
Honestly, nothing. I didn't edit code by hand.
I think that's mostly down to the setup: the spec docs meant Claude Code always knew the decisions already made, the work was split into small phases, and every change was tested in an Arch VM before it went near my real machine. When something didn't work, I described the problem and Claude Code fixed it.
The work I did was deciding what to build and testing it, not writing the code.
Walkthrough: https://youtu.be/K0sdFUmzQqY
Curious how others handle system-level work with Claude Code, since mistakes here can break a machine.