<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Linux on AI博士 万戈</title>
        <link>https://www.yesmiracle.net/categories/linux/</link>
        <description>AI博士万戈的技术博客，聚焦 Agentic AI、AI Infra 与 Agent Security，分享 AI 基础设施与工程落地实践。</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <managingEditor>admin@yesmiracle.net (万戈)</managingEditor>
        <webMaster>admin@yesmiracle.net (万戈)</webMaster>
        <lastBuildDate>Sat, 24 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.yesmiracle.net/categories/linux/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Omarchy：专为 AI Agent 打造的 Linux，装完就能跑 Codex、OpenCode 和 Claude Code</title>
        <link>https://www.yesmiracle.net/post/20261024-omarchy-linux-codex-opencode-claude-setup/</link>
        <pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate>
        <author>admin@yesmiracle.net (万戈)</author>
        <guid>https://www.yesmiracle.net/post/20261024-omarchy-linux-codex-opencode-claude-setup/</guid>
        <description>&lt;img src="https://www.yesmiracle.net/post/20261024-omarchy-linux-codex-opencode-claude-setup/cover.svg" alt="Featured image of post Omarchy：专为 AI Agent 打造的 Linux，装完就能跑 Codex、OpenCode 和 Claude Code" /&gt;&lt;p&gt;把 Codex、OpenCode、Claude Code 装到一台新机器上，要做的第一个决定是选系统。&lt;/p&gt;
&lt;p&gt;这件事以前只关乎你顺手不顺手，现在它同时框住了 agent 的能力边界：沙箱依赖哪些 Linux 原语、Node 版本会不会落后、包管理器能不能跟上上游的迭代速度。选错了，后面是长期打补丁。&lt;/p&gt;
&lt;p&gt;我的答案是 Omarchy。理由在于它做了别的桌面没做的事：把 coding agent 当作系统的一部分接进来，而不是事后往旁边挂一个。&lt;/p&gt;
&lt;h2 id=&#34;一为什么是-omarchy&#34;&gt;一、为什么是 Omarchy&lt;/h2&gt;
&lt;h3 id=&#34;底座是-arch好处照单全收&#34;&gt;底座是 Arch，好处照单全收&lt;/h3&gt;
&lt;p&gt;Omarchy 建在 Arch Linux 和 Hyprland 之上。这意味着前面那些关于 Arch 的收益全部成立：滚动发布、AUR 覆盖、当前版本的 Node。&lt;/p&gt;
&lt;p&gt;几个可查的当前版本：&lt;code&gt;nodejs 26.12.1-1&lt;/code&gt; 和 &lt;code&gt;nodejs-lts-jod 22.23.4-1&lt;/code&gt; 都在 &lt;code&gt;extra&lt;/code&gt; 里，两条 Node 线任选；&lt;code&gt;opencode 2.1.3-1&lt;/code&gt; 在官方仓库里（OpenCode 的官方文档为 Arch 单独写了一节安装说明）；Claude Code 的 Linux 沙箱依赖 &lt;code&gt;bubblewrap 0.13.1-1&lt;/code&gt; 和 &lt;code&gt;socat 1.8.1.3-1&lt;/code&gt;，也都在 &lt;code&gt;extra&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;顺带说清一件事，因为这是关于 Omarchy 最常见的那个质疑：它以前确实像一个「装在风衣里的 dotfiles 仓库」，一个 git checkout 加上一堆有主张的配置。&lt;strong&gt;4.0 之后这句话不再成立&lt;/strong&gt;。系统现在以 Arch 包的形式安装，文件落在 &lt;code&gt;/etc&lt;/code&gt; 和 &lt;code&gt;/usr/share/omarchy&lt;/code&gt;，更新走 pacman。桌面本身也是一份真代码：v4.0.0 标签下有 104 个 QML 文件、约 1.2 MB，占仓库体积的三分之一左右。&lt;/p&gt;
&lt;h3 id=&#34;九个-agent-cli-预接而且是懒加载&#34;&gt;九个 agent CLI 预接，而且是懒加载&lt;/h3&gt;
&lt;p&gt;这是我把这篇单独写出来的主要原因。Omarchy 4 预接九个 coding agent 的 CLI，做法是 &lt;code&gt;~/.local/bin/&lt;/code&gt; 里放一批 mise 管理的极小的 stub，&lt;strong&gt;你第一次运行某个命令之前，什么都不会下载&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;命令&lt;/th&gt;
          &lt;th&gt;Agent&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;claude&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Claude Code&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;codex&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;OpenAI Codex&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;opencode&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;OpenCode&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gemini&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Google Gemini CLI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;copilot&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;GitHub Copilot CLI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;crush&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Crush&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;grok&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Grok CLI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pi&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Pi&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;omp&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Oh My Pi&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;它不替你选偏好。默认 agent 用 &lt;code&gt;omarchy default agent &amp;lt;名字&amp;gt;&lt;/code&gt; 设定，或者走 Setup &amp;gt; Defaults &amp;gt; Agent，&lt;code&gt;Super + Shift + Ctrl + A&lt;/code&gt; 会在一个专门的窗口里启动它。终端里还有几个别名：&lt;code&gt;a&lt;/code&gt; 内联跑默认 agent，&lt;code&gt;c&lt;/code&gt;、&lt;code&gt;cx&lt;/code&gt;、&lt;code&gt;cy&lt;/code&gt; 分别是 OpenCode、Claude Code、Codex。&lt;/p&gt;
&lt;p&gt;两个细节能看出设计者真跑过这些东西。第一，这样启动的 agent 会进入&lt;strong&gt;自动批准模式&lt;/strong&gt;，手册自己给的原话提醒是「准备好它们真的会动手」。第二，因为 agent 通常不肯为整个家目录持久化信任，从 &lt;code&gt;$HOME&lt;/code&gt; 启动会被落到 &lt;code&gt;~/Work&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;agent-是系统公民这是可以验证的说法&#34;&gt;agent 是系统公民，这是可以验证的说法&lt;/h3&gt;
&lt;p&gt;「agent 是系统公民」这种话很容易变成宣传。Omarchy 这边有三条具体的证据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;崩溃诊断交给 agent。&lt;/strong&gt; 系统盯着 &lt;code&gt;systemd-coredump&lt;/code&gt;，进程崩了就弹通知，点一下，core dump 连同随系统分发的 &lt;code&gt;diagnose-crash&lt;/code&gt; skill 一起交给你默认的 agent，由它去把事实理清楚、判断值不值得往上游报。手工触发也行：&lt;code&gt;omarchy agent crash &amp;lt;pid&amp;gt;&lt;/code&gt;。这个默认开着，在 Trigger &amp;gt; Toggle &amp;gt; Crash Capture 里可以关。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;顶栏有 agent 用量面板。&lt;/strong&gt; 第一次在这台机器上发现 AI coding 用量之后，顶栏会长出一个 agents 图标。点开是按订阅分组的用量：套餐、5 小时窗口和每周额度各烧了多少百分比、各自何时重置、最近一周按天的 token、按模型的 token（悬停能看到输入/输出/缓存的拆分）。预付制的 agent 显示的是余额账本。Claude Code、Codex 和 Fireworks 开箱就在覆盖范围内。数据是 &lt;code&gt;~/.local/state/omarchy/agents/usage/&lt;/code&gt; 下的普通 JSON，每 15 分钟由 &lt;code&gt;omarchy agent usage-update&lt;/code&gt; 重新生成一次；面板只读这个目录，不管是谁写的，所以把几台机器指向同一个同步目录，就能看到合并后的消耗。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;随系统分发一个 agent skill。&lt;/strong&gt; 这个 skill 的用途是改机器本身：Hyprland 配置、bar 布局、从零做一个主题。它被软链到 &lt;code&gt;~/.claude/skills&lt;/code&gt;、&lt;code&gt;~/.codex/skills&lt;/code&gt;、&lt;code&gt;~/.pi/agent/skills&lt;/code&gt; 以及通用的 &lt;code&gt;~/.agents/skills&lt;/code&gt;，所以多数 harness 都能自动发现它。&lt;/p&gt;
&lt;p&gt;写这个 skill 的方式值得单独说，因为它是给 agent 划爆炸半径的一个范本。它把 &lt;code&gt;/usr/share/omarchy/&lt;/code&gt;（随便读、绝不要改，包拥有它，&lt;code&gt;omarchy update&lt;/code&gt; 会覆盖你的修改）和 &lt;code&gt;~/.config/&lt;/code&gt;（你的）之间划了一条硬线。不过手册自己的说法要照抄而不是转述：把它当作&lt;strong&gt;实验性&lt;/strong&gt;的，先在 plan 模式里跑，准备好回滚，或者准备好用 &lt;code&gt;omarchy reinstall configs&lt;/code&gt; 收拾残局。我认真对待这条警告，因为一个对你的窗口管理器配置有写权限的 agent，是一个能把你锁在自己桌面外的 agent。&lt;/p&gt;
&lt;h3 id=&#34;桌面是代码不是一堆配置&#34;&gt;桌面是代码，不是一堆配置&lt;/h3&gt;
&lt;p&gt;4.0 把整个桌面壳重写成 Quickshell 上的单个常驻进程。代价是删掉了八个程序：Waybar、Walker、Mako、SwayOSD、hyprlock、hypridle、swaybg、polkit-gnome。它们各自有配置格式、各自的主题方案，而且互不知道对方存在。现在它们是一个 QML 进程里的插件。官方给的运行时内存数字是不到 300 MB。&lt;/p&gt;
&lt;p&gt;实际差别在细节上：状态更新从轮询改成事件驱动；通知弹窗能扛过 shell 重启；主题色从 8 个变成 24 个，这就是为什么自动生成的 Neovim、VS Code 和 btop 主题不再看起来像凑合的。Hyprland 的配置也从 &lt;code&gt;.conf&lt;/code&gt; 换成了 Lua，于是配置里有了循环、条件和共享变量。&lt;/p&gt;
&lt;p&gt;还有一个我觉得很聪明的命令，值得单独提：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omarchy plugin clone omarchy.clock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;它把内置的时钟复制到 &lt;code&gt;~/.config/omarchy/plugins/&amp;lt;你&amp;gt;.clock&lt;/code&gt;，改名、启用，并把所有引用原 id 的地方改指向你的副本，同时保留 bar 上的位置和设置。存盘就热重载，玩坏了 &lt;code&gt;omarchy plugin remove &amp;lt;you&amp;gt;.clock&lt;/code&gt; 就把内置的还回来。这是「可配置的桌面」和「可编程的桌面」的区别：你不必 fork 整个发行版来挪一个控件。&lt;/p&gt;
&lt;h3 id=&#34;对照着看为什么不是别的&#34;&gt;对照着看：为什么不是别的&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;选项&lt;/th&gt;
          &lt;th&gt;你能拿到什么&lt;/th&gt;
          &lt;th&gt;你要付什么&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Omarchy&lt;/td&gt;
          &lt;td&gt;Arch 底座 + 配好的 Hyprland + 预接的九个 agent CLI + agent 接入系统层&lt;/td&gt;
          &lt;td&gt;接受别人的默认值；必须关 Secure Boot；插件未沙箱&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;纯 Arch&lt;/td&gt;
          &lt;td&gt;完全的控制权&lt;/td&gt;
          &lt;td&gt;桌面要自己配，Hyprland 一套配下来是以天计的&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Fedora Workstation&lt;/td&gt;
          &lt;td&gt;支持 Secure Boot，稳定，省心&lt;/td&gt;
          &lt;td&gt;没有 agent 层的接入；Node 版本要自己想办法&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ubuntu LTS&lt;/td&gt;
          &lt;td&gt;生态最熟，文档最多&lt;/td&gt;
          &lt;td&gt;Node 冻结，三个 agent 装完要自己补版本&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS&lt;/td&gt;
          &lt;td&gt;生态和硬件最整齐&lt;/td&gt;
          &lt;td&gt;不是 Linux，agent 的沙箱原语是另一套&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;如果上面的表里你的答案落在「需要 Secure Boot」或者「每个决定我想自己拿」，那 Fedora Workstation 是更合适的答案，这不是敷衍。&lt;/p&gt;
&lt;h3 id=&#34;诚实的那一半&#34;&gt;诚实的那一半&lt;/h3&gt;
&lt;p&gt;这几条我认为必须写在前面，因为它们决定了这台机器适不适合你。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Secure Boot 和 TPM 必须关掉。&lt;/strong&gt; 这是安装的必要条件，没有商量余地。手册自己的说法是这两套是微软给 Windows 和微软系发行版设计的安全方案。对一台要跑 AI agent 的机器来说，这是一笔需要你自己权衡的交换。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;插件是未沙箱的任意代码。&lt;/strong&gt; 这点 Omarchy 做得算诚实：安装前它会明确告诉你，插件是在你那个长期存活的 shell 进程里以任意代码运行的，会把 URL 显示出来，要你确认。安装器不执行任何 install hook，也不要 sudo。但结论不变：一个你没读过的 bar 控件，在你登录期间对你的用户账户有完全权限。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;自家仓库还没有 PGP 签名链。&lt;/strong&gt; &lt;code&gt;pkgs.omarchy.org&lt;/code&gt; 的配置是 &lt;code&gt;SigLevel = Optional TrustAll&lt;/code&gt;，写这篇时 stable 仓库里 198 个包带 SHA-256 校验和但没有 PGP 签名。你的 Arch 包照旧有签名校验（core/extra/multilib 是 &lt;code&gt;Required DatabaseOptional&lt;/code&gt;），Omarchy 自己这层是「传输和完整性有保障，但没有指向签名密钥的链条」。对第三方 Arch 仓库来说这很正常，而且它已经发了 &lt;code&gt;omarchy-keyring&lt;/code&gt;、&lt;code&gt;omarchy update&lt;/code&gt; 会取回并本地签名一个真密钥，地基是在的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;桌面壳建在 &lt;code&gt;quickshell-git&lt;/code&gt; 上。&lt;/strong&gt; 也就是说它跟的是上游 git 而不是某个打标签的发行版。把整个桌面押在一个移动依赖上是个真实的赌注。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Caps Lock 被拿掉了，这是有意的。&lt;/strong&gt; 它被重映射成 xcompose 键，表情和补全的快捷键靠它工作。想要回来就在 &lt;code&gt;~/.config/hypr/input.lua&lt;/code&gt; 里改 compose 键，或者同时按两个 Shift 临时切换。&lt;/p&gt;
&lt;h2 id=&#34;二装-omarchy&#34;&gt;二、装 Omarchy&lt;/h2&gt;
&lt;h3 id=&#34;准备&#34;&gt;准备&lt;/h3&gt;
&lt;p&gt;ISO 从 &lt;code&gt;iso.omarchy.org&lt;/code&gt; 下载，不到 6 GB。写盘用 balenaEtcher（Mac/Windows）或 caligula（Linux）。&lt;/p&gt;
&lt;p&gt;装之前有四件事要办：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;进 BIOS 关掉 Secure Boot 和/或 TPM。&lt;/strong&gt; 不关装不了。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;决定全盘还是自由空间。&lt;/strong&gt; 全盘会抹掉你选的那块盘；要和 Windows 双系统就用自由空间那个选项，先在磁盘管理里缩好分区，并且&lt;strong&gt;关掉 BitLocker&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;准备有线或 2.4GHz 键盘。&lt;/strong&gt; 全盘加密不会在启动时接受蓝牙键盘输入的密码，理由和蓝牙键盘进不了 BIOS 一样。这条我建议在装之前就确认，装完再发现是个很糟糕的下午。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;备份。&lt;/strong&gt; 默认全盘加密，选错盘就是数据没了。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;安装过程&#34;&gt;安装过程&lt;/h3&gt;
&lt;p&gt;从 U 盘启动，回答配置问题，确认，选盘，然后等。快机器上不到一分钟，老机器也不该超过五分钟。默认开加密。&lt;/p&gt;
&lt;p&gt;安装器上有个隐藏菜单值得知道：在&lt;strong&gt;第一个界面（选键盘那一步）按 &lt;code&gt;Ctrl + C&lt;/code&gt;&lt;/strong&gt;，它会提出替你为另一个人准备这台机器——系统照常装，但键盘布局、用户名、密码这些个人设置全部推迟到对方第一次开机时再填，加密密码也是那时定的。在&lt;strong&gt;磁盘格式化确认那一步&lt;/strong&gt;按 &lt;code&gt;Ctrl + C&lt;/code&gt;，则切换到不加密安装。&lt;/p&gt;
&lt;p&gt;要做虚拟机模板或者批量装机，ISO 还支持完全无人值守：把配置放在第二块盘上，安装器自己跑完。手册里叫 unattended installs。&lt;/p&gt;
&lt;h3 id=&#34;第一次开机&#34;&gt;第一次开机&lt;/h3&gt;
&lt;p&gt;Omarchy 会邀请你设置一个默认 agent。选一个、登录，然后就可以开始用了。&lt;/p&gt;
&lt;h2 id=&#34;三三个-agent-怎么装&#34;&gt;三、三个 agent 怎么装&lt;/h2&gt;
&lt;h3 id=&#34;先理解已经预接是什么意思&#34;&gt;先理解「已经预接」是什么意思&lt;/h3&gt;
&lt;p&gt;这是这篇最容易写错的地方，所以先把机制说清楚。&lt;/p&gt;
&lt;p&gt;九个 CLI 是&lt;strong&gt;懒加载的 stub&lt;/strong&gt;，不是装好的程序。你敲 &lt;code&gt;codex&lt;/code&gt; 的第一次，才会去下载它。默认 agent 用 &lt;code&gt;omarchy default agent &amp;lt;名字&amp;gt;&lt;/code&gt; 设定。&lt;/p&gt;
&lt;p&gt;所以对大多数人来说，这一节的操作是零：&lt;code&gt;codex&lt;/code&gt;、&lt;code&gt;opencode&lt;/code&gt;、&lt;code&gt;claude&lt;/code&gt; 三条命令开箱就能用。&lt;/p&gt;
&lt;p&gt;那什么时候需要自己装？三种情况：你要一个和 Omarchy 当前固定的不一样的版本；你要跟着上游的最新版本走；或者你在别的机器（非 Omarchy）上要装同一套。&lt;/p&gt;
&lt;h3 id=&#34;codex-cli&#34;&gt;Codex CLI&lt;/h3&gt;
&lt;p&gt;Arch 官方仓库和 AUR 里都没有 Codex 的包，两条路：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 路线 A：官方独立安装脚本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -fsSL https://chatgpt.com/codex/install.sh | sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 路线 B：npm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;npm install -g @openai/codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;独立安装器默认从 &lt;code&gt;releases.openai.com&lt;/code&gt; 取，拉不到时回退到 GitHub Releases。想强制走 GitHub（比如前者不通）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_INSTALLER_USE_RELEASES_OPENAI_COM&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;false sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;opencode&#34;&gt;OpenCode&lt;/h3&gt;
&lt;p&gt;Arch 上有两条路，而且装的&lt;strong&gt;不是同一个大版本&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 官方仓库：OpenCode 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo pacman -S opencode
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# AUR：OpenCode 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;paru -S opencode-bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;必须提前知道：&lt;strong&gt;OpenCode 1 和 OpenCode 2 都用 &lt;code&gt;opencode&lt;/code&gt; 这个命令，默认不能并存&lt;/strong&gt;。先决定要哪个大版本，别两边都装。当前版本分别是 2.1.3-1（官方 &lt;code&gt;extra&lt;/code&gt;）和 1.19.4-1（AUR）。&lt;/p&gt;
&lt;h3 id=&#34;claude-code&#34;&gt;Claude Code&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 路线 A：AUR&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;paru -S claude-code
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 路线 B：官方 native 安装器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -fsSL https://claude.ai/install.sh | bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我建议先试 AUR 那条，因为包页面把可选依赖写清楚了，等于一份部署清单：&lt;code&gt;bubblewrap&lt;/code&gt; 和 &lt;code&gt;socat&lt;/code&gt; 标注为 sandboxing，&lt;code&gt;ripgrep&lt;/code&gt; 是 enhanced file search，&lt;code&gt;git&lt;/code&gt; 让 Claude 能用 git，&lt;code&gt;github-cli&lt;/code&gt; 和 &lt;code&gt;glab&lt;/code&gt; 分别接 GitHub 和 GitLab，&lt;code&gt;tmux&lt;/code&gt; 是 agent team 的分屏。当前版本 2.1.310-1。&lt;/p&gt;
&lt;p&gt;native 安装器那条的好处是会自动后台更新，你永远在最新版。取向不同，看你在意依赖清晰还是版本新鲜。&lt;/p&gt;
&lt;p&gt;还有一条要提醒：Claude Code 的官方系统要求列表里列的是 macOS 13+、Windows 10 1809+、Ubuntu 20.04+、Debian 10+、Alpine 3.19+，&lt;strong&gt;Arch 不在里面&lt;/strong&gt;。它能装能跑，但你遇到问题时官方文档不会给发行版相关的答案，AUR 包的评论区往往更有用。&lt;/p&gt;
&lt;h3 id=&#34;如果你自装了注意谁在-path-前面&#34;&gt;如果你自装了，注意谁在 PATH 前面&lt;/h3&gt;
&lt;p&gt;Omarchy 的 stub 放在 &lt;code&gt;~/.local/bin/&lt;/code&gt;。如果你用 npm 全局装了一份，或者装了 AUR 包，系统里就同时存在多个同名可执行文件，最后跑哪个由 PATH 顺序决定。&lt;/p&gt;
&lt;p&gt;确认方法：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;which -a codex      &lt;span style=&#34;color:#75715e&#34;&gt;# 列出 PATH 里所有同名命令，第一个是实际生效的&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果你要自己那份生效，把它所在目录放到 PATH 更靠前的位置。这类冲突不会报错，只会让你在某个版本上跑很久而没发现，所以装完顺手看一眼。&lt;/p&gt;
&lt;h2 id=&#34;四装完的验证清单&#34;&gt;四、装完的验证清单&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;检查项&lt;/th&gt;
          &lt;th&gt;命令&lt;/th&gt;
          &lt;th&gt;预期&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;默认 agent 设好了&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;omarchy default agent&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;输出当前默认 agent&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Codex&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;codex --version&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;输出版本号&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenCode&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode --version&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;2.x 或 1.x，与你装的那条路一致&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Code&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;claude --version&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;输出 2.1.x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;沙箱依赖&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;pacman -Q bubblewrap socat&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;两个都列出，无报错&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;沙箱状态&lt;/td&gt;
          &lt;td&gt;进 Claude Code 后运行 &lt;code&gt;/sandbox&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;面板有 Mode / Overrides / Config 三个标签页&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;用量面板&lt;/td&gt;
          &lt;td&gt;顶栏的 agents 图标&lt;/td&gt;
          &lt;td&gt;有过用量后出现&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最后两条是关键。&lt;code&gt;/sandbox&lt;/code&gt; 面板&lt;strong&gt;只显示一个 Dependencies 标签页&lt;/strong&gt;就说明缺包，装上缺的那个再重启 Claude Code。顶栏的 agents 图标在系统发现 AI coding 用量之前不会出现，别以为是坏了。&lt;/p&gt;
&lt;h2 id=&#34;五六个-omarchy-特有的坑&#34;&gt;五、六个 Omarchy 特有的坑&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. 不要直接跑 &lt;code&gt;pacman -Syu&lt;/code&gt; 或 &lt;code&gt;yay -Syu&lt;/code&gt;。&lt;/strong&gt; 这会跳过更新前的快照、迁移脚本和配置更新。Omarchy 会主动拦你并把你引向 &lt;code&gt;omarchy update&lt;/code&gt;，4.0 把这个拦截从提示升级成了 ALPM hook。知道自己在干什么的话可以用 &lt;code&gt;OMARCHY_ALLOW_DIRECT_PACMAN=1&lt;/code&gt; 绕过，但默认别绕。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 快照只还原 root。&lt;/strong&gt; 每次更新都会给你一个快照，可以从 Limine 启动菜单进去。但有两个必须记住的限制：它&lt;strong&gt;不还原 &lt;code&gt;/home&lt;/code&gt;&lt;/strong&gt;，也&lt;strong&gt;不动 &lt;code&gt;~/.config&lt;/code&gt;&lt;/strong&gt;。所以一个改了配置格式的应用，回滚之后配置问题还是你自己的事。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. 预接启动的 agent 是自动批准模式。&lt;/strong&gt; 手册的原话提醒是「准备好它们真的会动手」。第一次跑之前值得先想清楚你要它在哪个目录里动手。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. 从 &lt;code&gt;$HOME&lt;/code&gt; 启动会落到 &lt;code&gt;~/Work&lt;/code&gt;。&lt;/strong&gt; 因为 agent 通常不为整个家目录持久化信任。这不影响使用，但只有踩过的人才会知道。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Claude Code 的沙箱默认关着，而且读权限默认很宽。&lt;/strong&gt; 沙箱要用 &lt;code&gt;/sandbox&lt;/code&gt; 开，或者在 &lt;code&gt;~/.claude/settings.json&lt;/code&gt; 里设 &lt;code&gt;sandbox.enabled&lt;/code&gt; 为 &lt;code&gt;true&lt;/code&gt;。开了之后默认允许读&lt;strong&gt;机器上大部分文件，包括 &lt;code&gt;~/.ssh&lt;/code&gt; 和 &lt;code&gt;~/.aws/credentials&lt;/code&gt;&lt;/strong&gt;；写权限限于工作目录、一个每用户临时目录和你额外加的目录；网络默认没有直连出口，要走本机代理逐个域名校验，允许列表初始是空的。所以开了沙箱不等于凭据安全了，读权限得自己收紧。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. 卡住的时候先收集信息，别先重启。&lt;/strong&gt; Wi-Fi、蓝牙、音频、触控板挂了，用 Update &amp;gt; Hardware 单独重启对应子系统，多数「五分钟前还好好的」都能修好。要问人之前先跑 &lt;code&gt;omarchy-debug&lt;/code&gt;，它收集的就是别人会问你要的东西。&lt;/p&gt;
&lt;h2 id=&#34;写在最后&#34;&gt;写在最后&lt;/h2&gt;
&lt;p&gt;回到开头。我认为给 AI coding agent 选系统这件事，已经从个人偏好变成了能力边界的一部分，因为 agent 的沙箱依赖特定版本的 Linux 原语，而它的运行依赖不冻结的 Node 版本。&lt;/p&gt;
&lt;p&gt;在这个前提下 Omarchy 的价值很具体：它&lt;strong&gt;把接缝做进了系统&lt;/strong&gt;。bar 上有它的用量，崩溃路径的终点是它，随系统分发一个用来驱动这台机器的 skill。别的工具生态大多还在把 agent 往旁边挂。&lt;/p&gt;
&lt;p&gt;代价也写清楚了：Secure Boot 要关、插件是未沙箱代码、自家仓库还没有签名链、桌面壳押在一个 git 依赖上。这几条我放在前面而不是脚注里，因为一篇只讲好处的系统教程，在真出事的时候会害人。&lt;/p&gt;
&lt;p&gt;最后一句关于范围：这篇装的是&lt;strong&gt;环境和三个 agent 的入口&lt;/strong&gt;，agent 各自怎么用、怎么配权限、怎么加技能，是另外的题目。&lt;/p&gt;
&lt;p&gt;相关阅读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.yesmiracle.net/post/20261023-codex-skills-install-guide/&#34; &gt;《Codex 怎么装 Skill：六个扫描位置、三种装法、一份可抄的命令》&lt;/a&gt;：这篇把 Codex 装进系统，那篇讲装完之后怎么给它加能力。Omarchy 随系统分发的那个 skill 也落在同一套目录约定里。&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.yesmiracle.net/post/20261018-codex-daemon-default-trust/&#34; &gt;《你的编程 Agent 正在悄悄「常驻」你的电脑》&lt;/a&gt;：装完值得知道的一件事，Codex 默认会拉起常驻守护进程，「默认值」是个信任问题。这篇里的「预接 stub」是同一个话题的另一面。&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.yesmiracle.net/post/20261019-opencode-byok-console-credential-breach/&#34; &gt;《OpenCode 被「蒸馏攻击」打穿》&lt;/a&gt;：同一套环境里的另一面，凭据放在哪、谁能读到，比装不装得上更值得花时间。&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
