Google Jules 停服(12 月 31 日):导出数据并迁移到 Claude Code / Codex 后台 agent 教程

Google 宣布 Jules 将于 2026 年 12 月 31 日停服,11 月 11 日起只读。本文按官方公告走一遍导出(设置、环境变量、定时任务、仓库、记忆、setup 脚本、全部会话和 patch),再把它们一一搬到 Claude Code 和 Codex:环境变量、setup 脚本、定时任务怎么对应,附同一份导出在两个客户端里的实测用时(Claude Code 约 15 秒,Codex 约 44 秒)。

4 分钟阅读
Google Jules 停服(12 月 31 日):导出数据并迁移到 Claude Code / Codex 后台 agent 教程

先说结论:据 Jules 官方公告,Google 的异步编程 agent Jules 会在 2026 年 12 月 31 日停服,11 月 11 日之后只读。代码、分支和 PR 本来就在 GitHub 上,不受影响;要带走的是 Jules 里的设置、环境变量、定时任务、记忆、setup 脚本和会话记录。官方给了导出工具,导出后可以直接交给 Claude Code 或 Codex 接着干。

我们用同一个 API Key 在 Claude Code 2.1.310 和 Codex 0.164.0 里各跑了一遍「读 Jules 导出 → 应用会话 patch → 跑 setup 和测试 → 生成 AGENTS.md」:

  • Claude Code(claude-sonnet-5-5)约 15 秒完成,测试输出 ok;
  • Codex(gpt-6.1-sol)约 44 秒完成,测试输出 ok;
  • 两边写出的 AGENTS.md 都只列了环境变量的名字,没有写值。

创建 API Key,一个 Key 同时接 Claude Code 和 Codex →

时间线

时间事件
2024 年 12 月Google 发布 Jules,定位是在后台异步处理编程任务的 agent(据 The Verge)
2026 年 10 月 29 日官方公告 Jules 将停服,并上线数据导出
2026 年 11 月 11 日最后一天可以继续跑会话,之后转为只读
2026 年 12 月 31 日Jules 停服

据官方公告,Jules 的经验会并入 Google 的 agent 优先开发平台 Google Antigravity。如果你现在就要接着用后台 agent,Claude Code 和 Codex 都能在终端和定时任务里无人值守地跑。

第一步:导出 Jules 数据(11 月 11 日前做)

官方的做法是装 Jules Tools、登录,然后在家目录打开一个 CLI 编程 agent(比如 Claude Code),把公告里的「export prompt」整段粘进去:

bash
npm install -g @google/jules
jules login
cd ~
claude   # or: codex

agent 会检查 CLI 和登录状态、跑导出脚本,最后告诉你导了多少个仓库、会话和 patch。几点注意(据官方公告):

  • jules login 是浏览器交互登录,要你自己跑;
  • 想导出仓库数据,先在 GitHub 上把账号连到 Jules,否则 sources.json 是空的;
  • 登录 token 大约一小时过期,全是 401 就重新 jules login。

导出后的目录结构:

plaintext
~/jules-export/
├── user-settings.json
├── env-variables.json
├── scheduled-tasks.json
├── sources.json
├── repos/<repo>/setup.sh
├── repos/<repo>/test-command.txt
├── repos/<repo>/memories.md
└── sessions/<id>/summary.md · activities.json · patch-1.diff

env-variables.json 里是明文的环境变量值,不要提交进仓库,也不要贴给别人。

第二步:把 Claude Code 和 Codex 接好

Claude Code 写在全局 ~/.claude/settings.json:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "你的 API Key",
    "APP_MODE": "test"
  },
  "model": "claude-sonnet-5-5"
}

地址是 https://api.aicodewith.ai,不要加 /v1。详细步骤见《Claude Code 如何接入第三方 API》。

Codex 写在全局 ~/.codex/config.toml:

toml
model = "gpt-6.1-sol"
model_provider = "aicodewith"

[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "你的 API Key"

[shell_environment_policy]
set = { APP_MODE = "test" }

各字段的含义见《Codex API Key 配置》和《Codex config.toml 配置详解》;还没装 Codex 的先看《Codex 安装教程》。

第三步:Jules 里的东西对应到哪里

Jules 导出Claude CodeCodex
env-variables.jsonsettings.json 的 envconfig.toml 的 [shell_environment_policy] 里的 set
repos/<repo>/setup.sh、test-command.txt写进 CLAUDE.md(可 @AGENTS.md 引用)写进仓库根目录 AGENTS.md
repos/<repo>/memories.md追加到 CLAUDE.md追加到 AGENTS.md
scheduled-tasks.jsoncron + claude -pcron + codex exec
sessions/<id>/patch-*.diffgit apply 后让 agent 接着做同左

上面配置里的 APP_MODE 就是示例:Jules 里每一个环境变量,名字和值各搬一行。只想让某个仓库用的变量,可以放进仓库里的 .claude/settings.json,不要提交带值的文件。

两个客户端共用一份说明文件的写法,见《Claude Code 和 Codex 共用 AGENTS.md》。

接着做没做完的会话

Jules 里没收尾的会话,patch 在 sessions/<id>/ 下。在仓库里先应用,再跑 setup 和测试:

bash
cd ~/code/demo
git apply ~/jules-export/sessions/<id>/patch-1.diff
bash ~/jules-export/repos/<repo>/setup.sh
$(cat ~/jules-export/repos/<repo>/test-command.txt)

然后把 summary.md 里的 Prompt 和 Latest plan 交给 agent,让它从这里接着做。

定时任务改成 cron

Jules 的定时任务就是「按时间跑一句 prompt」。在 Claude Code 和 Codex 里用非交互模式加 cron 就行:

bash
# crontab -e
0 9 * * 1 cd ~/code/demo && claude -p "run tests and fix failures" --permission-mode acceptEdits >> ~/agent-cron.log 2>&1
0 9 * * 1 cd ~/code/demo && codex exec -s workspace-write "run tests and fix failures" >> ~/agent-cron.log 2>&1

--permission-mode acceptEdits 让 Claude Code 可以改文件;Codex 的 -s workspace-write 只允许写当前仓库。无人值守跑之前,先手动跑一次确认结果。

实测:同一份导出交给两个客户端

我们造了一份和官方格式一致的小导出:一个 Python 仓库、一个没收尾的会话(patch 修复除以 0)、一个 setup 脚本、一条测试命令、一个环境变量 APP_MODE、一个每周一 9 点的定时任务。然后对两个客户端说同一句话:「应用 patch,跑 setup 和测试,写一份 AGENTS.md,环境变量只写名字。」

Claude Code 2.1.310Codex 0.164.0
模型claude-sonnet-5-5gpt-6.1-sol
运行方式claude -pcodex exec -s workspace-write
用时约 15 秒约 44 秒
patch干净应用干净应用
测试okok
AGENTS.md只列 APP_MODE只列 APP_MODE

两边都注意到 setup 脚本里的 pip install 被系统 Python 拒绝了(脚本末尾有 || true,所以没中断),并如实报告,没有自作主张加 --break-system-packages。Claude Code 生成的 AGENTS.md:

markdown
# AGENTS.md
## Setup
pip install -q pytest || true
## Test
python3 test_calc.py
## Environment variables (names only)
- APP_MODE
## Scheduled task
0 9 * * 1  run tests and fix failures

测完我们删除了测试目录和其中的 Key 配置。

创建 API Key,把 Jules 的后台任务搬到 Claude Code / Codex →

常见问题

Codex 报 401 Unauthorized

多半是 Key 没读到或填错:确认 experimental_bearer_token 在 [model_providers.aicodewith] 下、model_provider = "aicodewith" 已设置。排查步骤见《Codex 401 Unauthorized 怎么解决》。Claude Code 报 401 则检查 ANTHROPIC_AUTH_TOKEN 和地址是否多了 /v1。

定时任务报 429 Too Many Requests

多个 cron 同一分钟一起触发,容易撞上频率限制。把任务错开几分钟,并参考《Codex 429 Too Many Requests》。

11 月 11 日之后还能导出吗?

据官方公告,11 月 11 日之后 Jules 只读,直到年底停服。公告没有写只读期间导出是否可用,建议 11 月 11 日前导完。

代码会丢吗?

不会。据官方公告,代码、分支和 PR 本来就在 GitHub 上,原样保留;导出只覆盖存在 Jules 里的配置和历史。

相关文章

Claude Code VS Code 扩展 2.1.313 被植入 SSH 后门:Cursor / VSCodium 用户 5 分钟自查与清理

Claude Code VS Code 扩展 2.1.313 被植入 SSH 后门:Cursor / VSCodium 用户 5 分钟自查与清理

据 OpenSourceMalware 和 Phorion 的分析,Open VSX 上的 Claude Code 扩展 2.1.313 在 extension.js 开头被插入 66 行加载器,扩展一加载就往 ~/.ssh/authorized_keys 写入攻击者公钥、尝试开启 SSH、建立到 134.209.82.225 的反向隧道并写入开机持久化。本文给出 macOS、Linux、Windows 的 5 步自查命令:查扩展版本、按指纹查公钥、查连接和隧道进程、查持久化,以及中招后的取证、清理和凭据轮换。

Claude API 413 request_too_large 怎么办?上限提到 128 MB 了,Bedrock/第三方渠道多少、大 PDF 和截图怎么传

Claude API 413 request_too_large 怎么办?上限提到 128 MB 了,Bedrock/第三方渠道多少、大 PDF 和截图怎么传

Claude API 的 Messages 单次请求上限从 32 MB 提到 128 MB,但 Bedrock 仍是 20 MB、Google 托管的 Vertex 是 30 MB,第三方转发渠道也各有上限。本文讲怎么认出 413 request_too_large、各渠道上限对照表、图片压缩和降采样、用 Files API 的 file_id 传大 PDF、长时间 computer use 和 Claude Code 会话怎么清旧截图,并附我们用本站 Key 实测 10 MB 到 130 MB 请求的结果。