결론: 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이 백그라운드에서 코딩 작업을 처리하는 agent Jules 출시(The Verge에 따르면) |
| 2026년 10월 29일 | 종료 공식 발표 및 데이터 내보내기 공개 |
| 2026년 11월 11일 | 세션을 실행할 수 있는 마지막 날, 이후 읽기 전용 |
| 2026년 12월 31일 | Jules 종료 |
공식 공지에 따르면 Jules에서 얻은 경험은 Google의 agent 중심 플랫폼 Google Antigravity로 이어집니다. 지금 바로 백그라운드 agent가 필요하다면 Claude Code와 Codex 모두 터미널이나 예약 실행으로 무인 작업이 가능합니다.
1단계: Jules 데이터 내보내기(11월 11일 전까지)
공식 방법은 Jules Tools를 설치하고 로그인한 뒤, 홈 디렉터리에서 Claude Code 같은 CLI 코딩 agent를 열고 공지의 "export prompt"를 통째로 붙여 넣는 것입니다.
npm install -g @google/jules
jules login
cd ~
claude # or: codex
agent가 CLI와 로그인 상태를 확인하고 내보내기 스크립트를 실행한 뒤, 저장한 저장소·세션·patch 수를 알려 줍니다. 주의할 점(공식 공지에 따르면):
jules login은 브라우저 대화형 로그인이므로 직접 실행해야 합니다.- 먼저 GitHub 계정을 Jules에 연결하지 않으면
sources.json이 비어 있습니다. - 토큰은 약 1시간 후 만료됩니다. 모든 호출이 401이면
jules login을 다시 실행하세요.
내보낸 폴더 구조:
~/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에는 환경 변수 값이 평문으로 들어 있습니다. 저장소에 넣거나 남에게 공유하지 마세요.
2단계: Claude Code와 Codex 연결
Claude Code는 전역 ~/.claude/settings.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에 씁니다.
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 설치 방법부터 보세요.
3단계: Jules 항목별 이전 위치
| Jules 내보내기 | Claude Code | Codex |
|---|---|---|
| env-variables.json | settings.json의 env | config.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.json | cron + claude -p | cron + codex exec |
| sessions/<id>/patch-*.diff | git apply 후 agent가 이어서 작업 | 동일 |
위 설정의 APP_MODE는 예시입니다. Jules의 환경 변수를 하나씩 이름과 값 한 줄로 옮기면 됩니다. 특정 저장소에서만 쓰는 변수는 그 저장소의 .claude/settings.json에 두고, 값이 들어 있는 파일은 커밋하지 마세요.
두 클라이언트가 지침 파일 하나를 함께 쓰는 방법은 Claude Code와 Codex에서 AGENTS.md 공유하기를 참고하세요.
끝나지 않은 세션 이어 가기
Jules에서 마무리되지 않은 세션의 patch는 sessions/<id>/에 있습니다. 저장소에 적용한 뒤 setup과 테스트를 실행합니다.
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으로 대체할 수 있습니다.
# 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 저장소 하나, 미완료 세션 하나(0으로 나누기를 고치는 patch), setup 스크립트, 테스트 명령, 환경 변수 APP_MODE, 매주 월요일 9시 예약 작업입니다. 두 클라이언트에 같은 지시를 줬습니다: "patch를 적용하고, setup과 테스트를 실행하고, AGENTS.md를 작성해. 환경 변수는 이름만 적어."
| Claude Code 2.1.310 | Codex 0.164.0 | |
|---|---|---|
| 모델 | claude-sonnet-5-5 | gpt-6.1-sol |
| 실행 방식 | claude -p | codex exec -s workspace-write |
| 소요 시간 | 약 15초 | 약 44초 |
| patch | 깔끔하게 적용 | 깔끔하게 적용 |
| 테스트 | ok | ok |
| AGENTS.md | APP_MODE만 기재 | APP_MODE만 기재 |
둘 다 setup 스크립트의 pip install이 시스템 Python에서 거부된 것(스크립트 끝이 || true라 계속 진행)을 알아차리고 그대로 보고했으며, 임의로 --break-system-packages를 붙이지 않았습니다. Claude Code가 작성한 AGENTS.md:
# 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일 이후에도 내보낼 수 있나요?
공식 공지에 따르면 Jules는 11월 11일부터 연말 종료까지 읽기 전용입니다. 그 기간에 내보내기가 되는지는 나와 있지 않으므로 11월 11일 전에 끝내세요.
코드가 사라지나요?
아니요. 공식 공지에 따르면 코드, 브랜치, PR은 원래 GitHub에 있으며 그대로 유지됩니다. 내보내기는 Jules 안에 저장된 설정과 기록만 다룹니다.



