Codex CLI 0.155 운영법: MCP 승인·워크트리·데몬 업데이트를 안전하게 쓰기
Codex CLI 0.155 계열 업데이트는 기능 추가보다 운영 안전성 쪽에 무게가 있다. 실험적 /voice 대화, TUI의 reasoning summary 표시, 에이전트 개요의 task 숨김·보관·삭제, MCP 요청 Touch ID 검증, 데몬 업데이트 스케줄, Bedrock 인증 명령 캐싱이 들어갔다. 0.155.1에서는 일부 provider가 reasoning summary를 지원하지 않아 요청이 거절되던 문제를 막기 위해 로컬 TUI 세션의 기본값을 다시 비활성화했다.
AI 코딩 도구를 개인 장난감이 아니라 팀 개발 환경에 넣는다면 이런 업데이트가 더 중요하다. 모델 성능보다 먼저 봐야 할 것이 권한, 작업 격리, 인증, 복구이기 때문이다.
MCP 요청은 “편의 기능”이 아니라 권한 경계다
MCP는 에이전트가 외부 도구와 연결되는 통로다. 파일 시스템, 브라우저, 데이터베이스, 사내 API, 배포 도구까지 붙을 수 있다. 그래서 MCP 요청 승인은 단순한 팝업이 아니다. 에이전트가 어디까지 행동할 수 있는지 결정하는 권한 경계다.
Codex CLI 0.155에는 지원되는 Mac 로컬 TUI 세션에서 MCP 요청에 Touch ID 검증이 추가됐다. 이건 좋은 방향이다. “AI가 알아서 하게 둔다”와 “사용자가 중요한 순간에 승인한다” 사이의 균형을 맞출 수 있기 때문이다.
팀에서 적용할 때는 MCP 서버를 위험도별로 나누는 게 좋다.
- 읽기 전용: 문서 검색, 로그 조회, 이슈 조회
- 제한 쓰기: 임시 브랜치 생성, 초안 PR 작성, 테스트 데이터 생성
- 고위험 쓰기: 배포, 결제, 고객 데이터 수정, 권한 변경
Touch ID 같은 로컬 검증은 고위험 쓰기 앞에 붙이는 게 맞다. 모든 요청에 붙이면 개발자가 무시하게 되고, 아무 요청에도 안 붙이면 사고가 난다.
워크트리는 AI 코딩의 안전벨트다
0.155에서는 에이전트 개요에서 task 숨김, 보관, 삭제가 추가됐고, worktree ownership 정보와 clean managed worktree 삭제 확인이 들어갔다. 이 기능은 UI 정리처럼 보이지만 실제로는 중요한 안전장치다.
AI 코딩 에이전트는 여러 파일을 빠르게 바꾼다. 같은 브랜치에서 사람이 작업하는 중에 에이전트가 대량 수정하면 충돌과 회귀가 쉽게 생긴다. 그래서 작업 단위로 별도 worktree를 쓰는 방식이 좋다.
운영 규칙은 다음처럼 잡을 수 있다.
- 기능 개발은 항상 새 worktree에서 시작한다.
- 에이전트가 만든 변경은 바로 main 브랜치에 합치지 않는다.
- 테스트와 diff 리뷰를 통과한 뒤 PR로만 병합한다.
- clean worktree만 자동 삭제하고, 수정 내역이 있으면 사람이 확인한다.
Codex가 worktree ownership을 보여주는 것은 “이 디렉터리를 누가 만든 작업 공간인가”를 추적하기 위한 기능이다. 에이전트 여러 개를 동시에 돌릴수록 이 정보가 없으면 정리가 어렵다.
데몬 업데이트는 자동화하되 고정점을 남겨야 한다
0.155에는 daemon update schedule과 codex app-server daemon update 관련 기능이 추가됐다. saved threads와 active goals가 데몬 재시작 뒤에도 복구될 수 있다는 점도 언급됐다. 장시간 작업을 돌리는 팀에는 반가운 변화다.
하지만 자동 업데이트는 항상 양면이 있다. 최신 버그 수정이 빨리 들어오는 장점이 있는 반면, 어제 되던 자동화가 오늘 갑자기 달라질 수 있다. 특히 AI 코딩 도구는 TUI, app-server, SDK, runtime이 같이 움직이므로 버전 불일치가 문제를 만들 수 있다.
추천은 세 단계다.
- 개인 실험 환경: 자동 업데이트 허용
- 팀 표준 환경: 주 1회 정해진 시간에 업데이트
- CI·배포 자동화: 버전 pinning 후 검증된 시점에만 업데이트
버전 pinning 없이 CI에서 Codex를 쓰면 재현성이 떨어진다. 반대로 개인 환경까지 pinning하면 보안 패치와 버그 수정이 늦어진다. 환경별로 정책을 다르게 가져가야 한다.
reasoning summary 기본값 변경이 말해 주는 것
0.155.1은 로컬 TUI 세션에서 reasoning summary 기본값을 비활성화했다. 이유는 일부 provider가 이를 지원하지 않아 요청을 거절했기 때문이다. 사용자가 명시적으로 설정한 값은 유지된다.
이 작은 수정은 멀티 provider 운영에서 중요한 교훈을 준다. 모든 provider가 같은 옵션을 지원하지 않는다. 모델 이름만 갈아 끼우는 방식으로 운영하면, 지원하지 않는 파라미터 하나 때문에 요청이 실패할 수 있다.
따라서 provider별 설정 스키마를 분리해야 한다.
{
"openai": { "reasoningSummary": "auto" },
"bedrock": { "reasoningSummary": "none" },
"local": { "reasoningSummary": "none" }
}
실제 구조는 다를 수 있지만 원칙은 같다. 공통 설정을 억지로 모든 provider에 밀어 넣지 말고, 지원 여부를 기준으로 분기해야 한다.
Bedrock 인증 명령 캐싱은 편하지만 로그가 필요하다
이번 업데이트에는 Amazon Bedrock이 configured commands에서 AWS credentials를 얻고, 캐싱과 만료 기반 refresh, 인증 복구를 지원한다는 내용도 있다. 기업 환경에서는 유용하다. 장기 키를 파일에 박아 두는 대신 사내 인증 명령으로 임시 자격증명을 발급받을 수 있기 때문이다.
다만 인증 명령은 실패 원인을 숨기기 쉽다. 명령 자체가 실패했는지, 캐시가 만료됐는지, refresh가 막혔는지, 권한이 부족한지 구분해야 한다. 로그에는 최소한 다음이 남아야 한다.
- 인증 명령 실행 여부
- credential 만료 시각
- refresh 성공·실패
- 실패한 AWS role 또는 profile
- 사용자에게 필요한 재로그인 안내
인증 오류가 모델 오류처럼 보이면 디버깅이 길어진다.
팀 도입 체크리스트
- MCP 서버를 읽기 전용, 제한 쓰기, 고위험 쓰기로 분류한다.
- 고위험 MCP 요청에는 Touch ID 또는 별도 승인 절차를 붙인다.
- AI 코딩 작업은 기본적으로 별도 worktree에서 수행한다.
- clean worktree 삭제는 허용하되, 변경 내역이 있으면 자동 삭제하지 않는다.
- 개인 환경과 CI 환경의 Codex 업데이트 정책을 분리한다.
- provider별 지원 옵션을 분리하고, 지원하지 않는 파라미터를 보내지 않는다.
- Bedrock 인증 명령의 캐시·만료·refresh 로그를 남긴다.
claude,codex,gemini같은 도구를 섞어 쓰는 팀은 공통 지침 파일과 권한 정책을 문서화한다.
Codex CLI 0.155는 “더 똑똑한 코딩 에이전트”보다 “덜 위험한 코딩 에이전트”에 가까운 업데이트다. 팀에서 AI 코딩을 오래 쓰려면 이 방향이 맞다. 빠른 생성보다 중요한 것은 누가, 어떤 권한으로, 어떤 작업 공간에서, 어떤 버전으로 실행했는지 남기는 것이다.