尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
a stylish agentic OS based on linux. for x64 and ARM.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Status: alpha, for testers. patina install installs the app stack, the AI agent
and the system tuning on Debian 13 and renders the default theme, aurora, into Plasma's
configuration (checked in CI containers on x86_64 and aarch64 and in a first run on a
Debian 13 VM, not yet on real hardware). The installer is out for testers too: the
amd64 live image passed its first manual install in a VM and comes with the alpha's
release; the arm64 image stays in CI until its own install check.
Testing the alpha says how to help; see the
roadmap.
Meta+Space, ai and what you want: kortex, patina's
KRunner runner, hands the request to the AI agent you picked and shows the answer right
in the command palette, and every action the agent asks about as its own line with
Allow once, Always and Deny. opencode asks before every change;
Hermes Agent remembers you and asks only
before a command it counts as dangerous. Both are free software, with a model on your
machine or from a cloud provider you pick, once you turn one on;
The AI agent says more.
Examples drawn as a diagram, from patina's landing page; nothing real runs in it. The command palette itself is among the screenshots, and kortex's README shows a recorded run.
All taken by CI, never edited (iso/README.md says how). The installer's welcome page,
as the live image's boot test captures it (amd64, QEMU, Calamares as Debian 13 ships it,
branded through data), in British English, its sidebar and buttons glass over the
blurred wallpaper, with the AI agent's page among the steps:
The finished desktop, as the desktop workflow captures it (amd64, a Plasma X11
session on a virtual framebuffer after patina install): aurora, the default theme,
with its wallpaper, the bar of one-colour icons with the start button alone in its
centre and the pinned apps at its left end, and kitty, the one see-through window,
split in two: the fastfetch greeting beside btop.
The command palette in the same session, in the middle of the empty desktop, dark
glass with a light hairline round it: ai install photocraft, kortex's answer through
a real opencode serve beside kortex's green ▲, and the agent's request to run
patina install --bundles artcraft, selected with a faint green tint and waiting for
Allow once, Always or Deny. The model is kortex's scripted demo model, since CI has
none to run.
The start menu in aurora's light mode (patina theme mode light), over its own
DeepMind wallpaper, open in the middle of the screen's width above its button: glass
the wallpaper glows through, the category icons in the accent, the apps by their names
alone, and the small patina mark as the user's picture while it is Debian's.
patina takes a stock Debian with Plasma and finishes it: one consistent theme across Plasma, terminal and editors, sane defaults, the apps a privacy-minded developer in the EU wants, an AI agent that answers, changes settings when you say yes, writes code and works on your servers (opencode, with a model on your machine or from a cloud provider you pick), right in the command palette through kortex, and the agent tools (Claude Code, Codex CLI, opencode, Claude Desktop, Ollama for local models) installed the way their upstreams intend.
It is inspired by Omarchy: the polish, the themes, the quick
branded boot-to-finished-desktop install, and the git pull plus migrations update
model. It does not copy Omarchy's tiling-first UX, patched kernel or own package
repository.
Two paths, one layer. If they ever diverge, Path A wins.
| Path | What you do | Status |
|---|---|---|
| A: on stock Debian | Install Debian 13 with Plasma, git clone this repository, run patina install (it asks the theme and the app bundles on a terminal; flags or --unattended skip the questions) | alpha (v0.1.0-alpha.4): installs the app stack, the system tuning and the theme, checked in CI containers and a first VM run; testers run it on real desktops |
| B: the patina image | Boot a small live image, answer the installer (disk, user, locale), get the finished desktop. Plasma and the base are downloaded from Debian's mirrors during the install; first boot runs Path A | alpha for testers (v0.1.0-alpha.4, x86_64 only): the image builds and boots to the installer in CI (x86_64 and aarch64), and a manual install through the installer in an x86_64 VM passed with v0.1.0-alpha.3, first boot included; the installer's apps and theme pages of v0.1.0-alpha.4 wait for testers' runs; the aarch64 image is not handed out yet |
sudo apt install git curl
git clone https://github.com/patina-os/patina.git ~/.local/share/patina
~/.local/share/patina/bin/patina install # the default bundles: base, desktop
~/.local/share/patina/bin/patina install --bundles minimal # the look with kitty and Firefox ESR only
~/.local/share/patina/bin/patina install --bundles desktop,artcraft # plus ArtCraft
~/.local/share/patina/bin/patina install --all # every opt-in bundle, agent tools included
patina install --list shows the bundles, patina doctor checks the result,
patina theme list and patina theme set <name> switch the theme (PATINA_THEME=<name>
picks one for the install), and patina update runs git pull, then any pending
migrations, then an unattended patina install of the bundles you have, so what they
gained since arrives too. Put ~/.local/bin on
your PATH and link patina there (ln -s ~/.local/share/patina/bin/patina ~/.local/bin/patina).
v0.1.0-alpha.4 is the current release, for people willing to try patina and report
what they see: on a fresh Debian 13 with Plasma (Path A), or from the installer, with
the release's patina-amd64.hybrid.iso in an x86_64 VM (Path B). Beyond CI containers
and a headless Plasma session it has passed one run on a Debian 13 VM, and this alpha carries what that run found, but none on real
hardware, so expect rough edges, and use a VM with a snapshot or a machine you can
reinstall.
patina install
twice, the reboot, the apps and the look, ticking each check. The agents bundle
(step 8) is optional. For the installer, step 2b replaces steps 2 to 4: check the
image against the release's SHA256SUMS, boot it in the VM and answer the
installer.patina version and the output of
patina doctor, failing or not. One report per run.patina update brings fixes as they land on main; a second run on a later version
is welcome.What the alpha does not cover yet: the installer on aarch64 and on real hardware, aarch64 hardware beyond CI (a Raspberry Pi 4 or a Snapdragon X Elite laptop is welcome, see docs/hardware.md), and an update from one release to the next.
| Base | Architectures | Status |
|---|---|---|
| Debian 13 (trixie) | x86_64, aarch64 | reference base, alpha |
| Debian 14 | x86_64, aarch64 | follows when it becomes stable |
| openSUSE Tumbleweed | possible later; backend file kept, untested | |
| Fedora | possible later, not a priority; backend file kept, untested | |
| Arch Linux | possible later, not a priority; backend file kept, untested | |
| Ubuntu, CachyOS | not planned |
The layer itself has no architecture. aarch64 is a first-class target from day one; see docs/hardware.md for what has been tested.
One theme from the boot menu to the desktop, from one data file: the live image's boot
menu, the installer, the login screen, the Plasma splash, Plasma itself, Konsole, kitty,
GTK and Flatpak apps, the install questions, the terminal greeting and the tools in the
terminal (btop, neovim, bat, fzf, lazygit, eza, starship) all take their colours from
the theme's palette; the words are set in Source Sans 3, the details in
JetBrains Mono, the wordmark in Sora. The default theme is aurora, made for OLED
screens: true black, neon green as the accent and violet as the second colour, a
Google DeepMind visualisation from Pexels as the wallpaper (a white one of the same
series in the light mode) and a contour map that glows green to violet as the second.
Every app's icon is a monochrome glyph in the text colour, the folders are green, the
start menu (the patina mark, AI and self-hosting first) is glass the wallpaper glows
through, its category icons green, and it and the other popups carry a slight grain. It is
dark by default; patina theme mode light switches it to its light palette and
patina theme mode dark back. The mark is text, a summit shaded with the letters of
patina in violet with a green survey point, so the terminal and the screens show the
same one. datum (graphite, ice and coral around a contour map) stays as an option
(patina theme set datum).
Meta plus
one key opens the terminal (Return), the search (Space), the browser (B), the files (E)
and the AI agent in its own terminal profile (A);
Meta+K shows all of them, and Plasma's own, at a glance (patina keys). Themes shared
in a repository of their own install with patina theme install <git-url>, as data
only. The
Plasma-side speed settings CachyOS is known for (lowest compositor latency, shorter
animations, file-name-only indexing, the Wayland session) are curated defaults. So is the
shape of the desktop: one bar with the start button alone in its centre, so the start
menu opens in the middle, the task icons at its left end, and new windows that open
centred at the same size. The first patina install and every fresh login get the bar; after that your panels are yours, and
patina theme set <name> --layout brings the bar back.
Nextcloud client, Thunderbird, Element, KeePassXC, Euro-Office (the European, AGPL fork of
ONLYOFFICE), Firefox ESR (telemetry, Pocket and sponsored content off),
Haruna for video, Gwenview for images, Okular for PDFs, kitty as the terminal and a
developer kit (fish, starship, bat, eza, fzf, ripgrep, lazygit, btop, zoxide, atuin,
git-delta, neovim, fastfetch): the desktop bundle. Gaming is not a focus.
Smaller or larger: minimal is only kitty and Firefox ESR, for a machine that gets its
apps elsewhere (the look and the system tuning come with every install), and extras
adds the Zed editor and Tauon for music from Flathub, opt-in because their runtimes
take over 2 GB.
Opt-in, as an external package: the artcraft bundle (patina install --bundles artcraft) brings the launcher of the ArtCraft suite, free
counterparts of Photoshop, Illustrator, Word, Excel, PowerPoint, Acrobat and seven
more, still alpha. Neither Debian nor Flathub carries it yet, so the ArtCraft Launcher
comes as its upstream's AppImage, pinned in manifest/upstream.yaml; you pick the apps
in it, and it installs and updates them and itself, outside apt. It sits among the
start menu's favourites, and moves to Debian's archive or Flathub as soon as one of
them carries it. Euro-Office stays the office suite of the default stack. Everything comes from Debian's archive except what it does
not carry: GUI apps we do not want to track come from Flathub, agent tools from their
upstream installers (npm, uv, Anthropic's own apt repository for Claude Desktop),
Euro-Office from Nextcloud's signed apt repository until Flathub carries it, and the
ArtCraft Launcher from its release. Ollama is the local backend the agent tools point at.
patina install (and the installer's agent and AI pages) asks which AI agent, if any,
and where its model runs: on this computer or at a cloud provider. The agent is opt-in:
no agent is the answer preselected, and patina ai on turns one on at any time later.
Both are free software:
sudo -A). It edits files, deletes a single file, stops a
process or installs an app from Flathub without asking. patina sets its approvals to
manual, so no second model decides which commands go through. It comes from its own
installer, pinned to a release, and takes about 2 GB with its own Python and
Node.js; it updates itself (hermes update). Its messaging, memory and scheduler
stay as Hermes ships them until you set them up (hermes setup); patina sets up
none of them.And where the model runs:
patina ai on local, patina ai on cloud or
patina ai on hermes cloud installs one later, patina ai off turns it off again,
patina ai says which one this machine has.ai.local.models in defaults/settings.yaml that fit your memory and
recommends one: NVIDIA's Nemotron 3.5 Bolt E4B, made for agents, from 16 GB, and
Mistral's Ministral 3 3B below that. Ministral 3 8B and 14B and Qwen 3.5 4B and 9B
are the others. Your requests and the answers stay on the computer; around them,
opencode fetches its list of models from models.opencode.ai when it starts and the
provider's package from npm on its first request, and KRunner keeps its last queries
(kortex's README has the details). Ollama with its GPU libraries and the model take
several GB of disk and a while to download.opencode auth login; the key
stays in opencode's own login, patina never sees it. Hermes offers Mistral (through
its OpenAI-compatible API), Anthropic and OpenAI; the install asks for the key on the
terminal and puts it into Hermes' own ~/.hermes/.env, readable by you only.patina ai off leaves what was installed in place. Ollama takes the most space; its
own installer has no uninstall, and these are its documented steps:
sudo systemctl disable --now ollama
sudo rm -rf /etc/systemd/system/ollama.service /usr/local/bin/ollama /usr/local/lib/ollama /usr/share/ollama
sudo userdel ollama
Meta+A opens it. opencode reads freely, and asks before anything that changes a file,
runs a command or reaches a server (defaults/apps.yaml); Hermes asks before what it
counts as dangerous, as above. defaults/agent.md tells either how
this machine is put together and how to change it the patina way. What needs root (a
package, a driver, a system service) it runs with sudo -A, since it has no terminal
for sudo to ask in: a password dialog in the theme's colours asks you, in the command
palette right away and in the terminal from the next login after the agent was
installed. Nothing stores the password. In the command
palette (Meta+Space), type ai and your request: kortex,
a KRunner runner in a repository of its own (so it also serves other Plasma desktops),
shows the answer there and every action the agent asks about with Allow once,
Always and Deny. In the start menu any search ends with "Ask the agent" (search, ask,
fix), below the apps and files it finds; Enter hands it to the command palette. ai
alone lists the recent conversations, ai › shows the current one, and Open in
terminal continues a
conversation in the agent's own interface for longer work. Every AI answer installs it,
from its tagged release.
The agent works with your services through MCP servers. Four are presets, off until you turn one on: Linear and Notion sign in through the browser, GitHub with a personal access token, and Nextcloud (calendar and tasks, notes, files, contacts, through the community nextcloud-mcp-server) with an app password.
patina ai connect # the presets, and which are on
patina ai connect linear # sign in through the browser
patina ai connect nextcloud # asks for the address, user and app password
patina ai disconnect linear
Ask the agent to connect one and it runs the same command; a token it leaves to you on a
terminal, so it never sees one. Tokens are kept readable by you only, in
~/.config/patina/services/ for opencode and in Hermes' own ~/.hermes/.env, and the
agent's configuration names them, never the token itself. A service connected while
the agent works reaches opencode at once through kortex, and Hermes from its next
conversation. Any other MCP server goes under mcp in
~/.config/opencode/opencode.json (opencode's docs)
or mcp_servers in ~/.hermes/config.yaml (hermes mcp add), or ask the agent to add
it.
Is this a new distribution? No. It is a layer on Debian and a live image that only automates installing that layer. There is no patina kernel, package repository or rebuilt package, and there never will be.
Is it Omarchy for KDE? It borrows Omarchy's polish, quick branded install and update model, not its tiling UX, kernel or package repository. Themes are stored as desktop-agnostic data, so a Hyprland rendering could be added later without touching them.
Why Debian? The strictest free-software archive of the large bases, the broadest arm64 support, a two-year stable cycle that keeps maintenance low, and the ecosystem: third-party installers, vendor packages and manuals assume apt. Debian 13 ships Plasma 6.
Wasn't this on openSUSE? It started there, and switched before anything shipped. openSUSE has the better Plasma polish and the Open Build Service; Debian has the ecosystem users actually meet. The package manifest is base-agnostic, so the openSUSE backend stays as data for a possible later flavour.
Is it fast like CachyOS? It copies what makes CachyOS feel fast and is configuration: zram, I/O schedulers, memory and systemd settings, a lean boot, low-latency Plasma defaults. It does not copy the custom kernel or the rebuilt packages, because patina owns nothing that gets CVEs.
Why Plasma? The most complete free desktop, and it already handles the cross-app consistency (GTK, Flatpak portals) a layer would otherwise have to build.
Does it run on ARM? It is meant to. Phase 1 runs the bootstrap in an aarch64 container in CI; real hardware starts with the Raspberry Pi 4 and continues with ARM laptops as they gain Debian kernel support. There is never a separate ARM edition.
Can I use it on Fedora or openSUSE? Not yet. The package manifest is base-agnostic by design, but other backends come only after both install paths are stable on Debian.
patina owns the polish; nearly everything under it is the work of other people, and we are grateful for it. Thank you:
The whole list, with what each one is for and a link, is
docs/credits.yaml. On a patina desktop patina credits prints
it, Plasma's About this System points to it, and the installer thanks them all on its
last slide. Someone missing? A pull request adds them.
Theme packs are the most welcome contribution: copy themes/_template/, fill in the
palette and wallpapers, open a pull request. themes/README.md has the details.
Everything else: open an issue first; this is a one-maintainer side project.
GPL-3.0-or-later for everything in this repository. Theme artwork may carry its own
license, declared in each theme's theme.yaml.