<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Codex on Just Do It</title>
    <link>https://blog.heartleo.dev/tags/codex/</link>
    <description>Recent content in Codex on Just Do It</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 22 Jul 2026 15:00:00 +0800</lastBuildDate>
    <atom:link href="https://blog.heartleo.dev/tags/codex/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>把 Codex 主目录从 C 盘迁到 D 盘</title>
      <link>https://blog.heartleo.dev/posts/migrate-codex-home-directory/</link>
      <pubDate>Wed, 22 Jul 2026 15:00:00 +0800</pubDate>
      <guid>https://blog.heartleo.dev/posts/migrate-codex-home-directory/</guid>
      <description>C 盘快满，Codex CLI 的主目录（缓存、会话记录、鉴权信息）也占了不小一块。用 CODEX_HOME 环境变量把它整体挪到 D 盘，顺带为跨设备统一配置铺路，全程没遇到大坑。</description>
      <content:encoded><![CDATA[<p>C 盘快满，翻了一下才发现 <code>.codex</code> 目录攒了不少东西：缓存、会话记录、插件、鉴权信息。挪到 D 盘，顺便为以后跨设备同步配置留个口子。</p>
<h2 id="为什么不用-symlink">为什么不用 symlink</h2>
<p>Codex CLI 的主目录路径由 <code>CODEX_HOME</code> 环境变量控制，读取顺序在启动时定死。改环境变量比建 symlink 更直接：不用管文件系统链接的权限问题，卸载重装时也不会因为符号链接失效导致路径解析出错。</p>
<h2 id="步骤">步骤</h2>
<ol>
<li>
<p>找到旧目录：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="nv">$env:USERPROFILE</span><span class="p">\.</span><span class="py">codex</span>
</span></span></code></pre></div></li>
<li>
<p>把内容整体搬到新位置：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">robocopy</span> <span class="s2">&#34;</span><span class="nv">$env:USERPROFILE</span><span class="s2">\.codex&#34;</span> <span class="s2">&#34;D:\Codex\.codex&#34;</span> <span class="p">/</span><span class="n">E</span> <span class="p">/</span><span class="n">COPYALL</span>
</span></span></code></pre></div></li>
<li>
<p>设置 <code>CODEX_HOME</code> 环境变量，User 和 Machine 两级都写，避免某些以系统身份启动的终端或计划任务只读 Machine 级变量而读不到：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="p">[</span><span class="no">System.Environment</span><span class="p">]::</span><span class="n">SetEnvironmentVariable</span><span class="p">(</span><span class="s2">&#34;CODEX_HOME&#34;</span><span class="p">,</span> <span class="s2">&#34;D:\Codex\.codex&#34;</span><span class="p">,</span> <span class="s2">&#34;User&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">[</span><span class="no">System.Environment</span><span class="p">]::</span><span class="n">SetEnvironmentVariable</span><span class="p">(</span><span class="s2">&#34;CODEX_HOME&#34;</span><span class="p">,</span> <span class="s2">&#34;D:\Codex\.codex&#34;</span><span class="p">,</span> <span class="s2">&#34;Machine&#34;</span><span class="p">)</span>
</span></span></code></pre></div></li>
<li>
<p>重开一个终端（环境变量改了对已打开的终端不生效），验证：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="nv">$env:CODEX_HOME</span>
</span></span><span class="line"><span class="cl"><span class="n">codex</span> <span class="p">-</span><span class="n">-version</span>
</span></span></code></pre></div><p>确认 <code>auth.json</code> 还在新目录下，登录状态没丢，跑一次命令确认会话记录写到了新路径。</p>
</li>
<li>
<p>确认无误后删掉旧目录 <code>C:\Users\&lt;user&gt;\.codex</code>。</p>
</li>
</ol>
<h2 id="结果">结果</h2>
<p>全程没踩大坑。唯一容易忘的是第 4 步：改完环境变量得开新终端再验证，不然会误以为没生效，回头折腾半天查错。</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
