Skip to content
k-hole

An AI workstation on Arch and CachyOS

The desktop that does the work. Go on, use it.

Every screen on this page is the real k-hole desktop, captured from the shell itself. Click around, press the keys it answers to, or take the same tour it gives you on first login.

Install k-hole
k-hole's Home over the Veil wallpaper: the top bar with what's playing, Wi-Fi and the clock; the greeting and the date; Make something; the dock with Clipboard and Recent files at its ends

Click anything on the screen, or press a key.

Quiet Glass

Calm by default. Yours in a click.

Four wallpapers made for it and seven accents, carried everywhere: the bar, the dock, the terminal, GTK and Qt apps, the lock screen. Each one here is the desktop itself, switched live.

Home over Orbit, the warm wallpaper

Voice

Hold a key. Say it. Let go.

Super+H wakes a halo over the dock. Whisper hears you while you talk; a decision model picks the action in a moment and does it, and your AI model only steps in for the hard ones. Anything risky waits for your yes.

The voice halo listening over the dock

Answers come back in a voice made on your computer.

Agents

Your coding agents. On your desk and in your pocket.

Claude Code and Codex run in your projects on your computer. The Agents app lines them up by who needs you; the phone remote answers them from anywhere over Tailscale. No chat to type into: allow, deny, a quick reply.

The Agents app: Needs you, Your turn and Earlier on the left; the shop agent asking to run pnpm test, with Allow once
  • Super+Shift+A opens it; the bar's pill counts who needs you.
  • Changes shows the diff before you say yes. Ctrl+Enter allows, Esc denies.
  • Your phone pairs once with a code; revoking it closes its stream at once.
The phone remote's Now screen

k-chain

A companion on your desk. Chained to k-hole.

k-chain is k-hole's companion: a small AMOLED device that stands beside your keyboard. Hold its button and talk; its halo listens, k-hole thinks, and the answer comes back on the screen and out loud. When a coding agent wants a yes, the card shows up there too.

k-chain's halo at rest

The halo says what it's doing

At rest: the clock, the halo breathing slowly.

  • Coding agents: "Cart wants to run pnpm test", Deny, or hold to allow. A tap on its button denies.
  • Face down for Do Not Disturb, double tap to pause the music, shake to lock: each one a k-hole workflow you can change.
  • Timers, the time and brightness work on the device even with the computer away.
  • Pairs with k-hole like your phone does, with the PIN it shows; the desktop's certificate is pinned.

The halo here is drawn by k-chain's own renderer, the same pieces the chip composes on the device (it has no GPU: four turning gas sprites, the glass and a dither). The firmware, k-moon, runs in Espressif's emulator today; the first build on the Waveshare ESP32-S3 AMOLED board is next.

Shortcuts

Forget a shortcut? Hold Super.

Hold the key for a moment and every shortcut on it appears around the screen, grouped by what it does. Add Shift, Alt or Ctrl while you hold and the map changes with you. Let go and it's gone.

Holding Super: every shortcut mapped around the screen

Getting around

One key for everything. Nothing in the way.

Search for “term”

Super+Space: apps, windows, Settings pages, actions and a calculator, ranked by what you use.

The Library

Describe a job. It does it while you work.

“Every morning, check the news about solar panels and make me a note.” k-hole builds the workflow, tests it on real data, says what it costs a month and asks before anything leaves your computer. Drafts wait for your yes.

  • Email, job boards, feeds, pages, folders, YouTube, webhooks.
  • A test run first; a budget it can't pass.
  • Plain words for every permission, before you turn it on.
The Library's Today: drafts waiting, coming up, recent runs

Sample tasks made by the real engine against stand-in mail servers and a stand-in model.

Generative UI

Need a widget? Say what it shows.

Connect your own model, write “GPU temperature in the bar, amber above 80°C”, and k-hole writes the plugin, checks it in a sandbox and shows you exactly what it may read, write and reach. Nothing runs until you approve it.

  • bubblewrap, no network unless you allow it, a memory and process ceiling.
  • Fourteen ready-made plugins in the Library to start from.
Make something: describe a widget, panel, command or service

And everything around it

The parts you'd build yourself, built in.

A dock that keeps your place

Clipboard history at one end, recent files at the other, the apps you use in between. Rest on an app for its recent files.

No ads in any app

A blocker for every app on the computer, not just the browser, that steps aside for captive portals and never leaves you offline.

Every dev server, by project

What's listening, who started it and who can reach it. Open, restart or stop it from the bar.

Drivers in plain words

Every device, whether it works fully, and the one thing to do if it doesn't. A snapshot first, always.

Your disk, back from node_modules

Old build folders and caches found by what they are, never by name alone. Git-tracked files are never touched.

For everyone

Large text that reflows, more time for everything, a magnifier, profiles for low vision, motor and screen-reader use.

Four sound themes made for it

Quiet Glass, Air, Arc and Bloom. Two voices at most, rate limits per event, quiet in Do not disturb.

Your desktop on your phone

Remote Desktop, Moonlight, RustDesk, VNC, or the browser view over Tailscale. One switch stops them all.

Power that knows what you're doing

Dim, lock and sleep per battery and charger; never asleep under music or a stream; a charge limit for the battery.

1endpoint for every model you use
23Super shortcuts, one hold away
14ready-made plugins to start from
4sound themes made for it

Settings

Every switch in one place. Every word plain.

Settings, Appearance: accents and the wallpapers
Appearance. Seven accents or any colour, checked for contrast before it's used.
Settings, Voice
Voice. Hold or tap, local or online, how sure it must be to act alone.
Settings, Dock
Dock. Position, size, magnification, folders, pages, what sits at its ends.
Settings, Keyboard
Keyboard. Layouts, input methods, the shortcut map, Mac-style keys if you like them.
Software
Software. The package lists, readable; a snapshot before anything installs.

Three ways in

Start small. Grow into full.

Each tier is a set of plain package lists you can read. Pick one when you install; the Software app adds anything else later.

Lite

--tier lite

Headless: servers, VMs, a spare box you reach over SSH or Tailscale.

  • zsh, starship, atuin, ripgrep, eza, neovim, lazygit
  • Python with uv, Node with pnpm and Bun, Go, Rust, mise, direnv
  • Ollama built for your GPU, AI coding CLIs, genui
  • btrfs snapshots, zram, Tailscale, ufw

Standard

the default

The Quiet Glass desktop and everything in Lite.

  • Hyprland with the Quickshell shell, greetd
  • Ghostty, Zed, VS Code, Firefox, Thunar, PipeWire
  • Rootless podman, buildah, distrobox
  • The ad and tracker blocker, the Agents engine

Full

--tier full

Infrastructure, data and GPU work.

  • Docker, kubectl, k9s, helm, kind, OpenTofu, Terraform, Ansible
  • JupyterLab, PostgreSQL, Valkey, DBeaver
  • AWS, Azure and Google Cloud CLIs; perf, valgrind, bpftrace
  • Nix and devbox, llama.cpp, PyTorch, LM Studio, Sunshine

Install

Boot it live. Then install.

The ISO is the real desktop. Try it, then press Install k-hole: btrfs with bootable snapshots, optional disk encryption, about ten minutes and no internet needed.

Build the ISO

On any Linux with Docker or Podman: about 15 GB free and 30 to 50 minutes.

$ git clone https://github.com/ka2ny/k-flow-os k-hole
$ cd k-hole
$ scripts/build-iso-docker.sh   # the ISO lands in ./out

In a VM, scripts/khole-vm out/khole-*.iso sets up UEFI, virtio and 3D for you.

On an Arch or CachyOS you already have

Keeps your install and adds k-hole on top, as a pacman package.

$ git clone https://github.com/ka2ny/k-flow-os k-hole
$ cd k-hole
$ ./install.sh --tier standard

Add --dry-run to see every step and command first.

Private development k-hole isn't public yet, and the repository is private. Download links will be here with the first public release.