2026년 9월이면 같은 터미널에 AI 코딩 에이전트 세 개를 켜 두는 일이 낯설지 않다. Pi는 Mario Zechner가 2025년 8월에 시작한 MIT 라이선스 하네스다. Claude Code는 Anthropic의 공식 터미널 에이전트다. Codex CLI는 OpenAI의 공식 하네스이고, 기본은 GPT-5.6 계열 Sol / Terra / Luna다. 셋 모두 파일을 고치고, 명령을 돌리고, 빨간 테스트를 쫓을 수 있다. 많은 팀은 여전히 “어느 모델이 더 똑똑한가”를 묻는다. 사야 하는 것은 하네스다. 매 턴 얼마나 고정 컨텍스트를 넣는가, 어떤 권한을 전제하는가, 공급사를 바꿀 수 있는가, 좌석료인가 완료 작업당 과금인가. 이 글은 공개 벤치 복습이 아니다. 코드 생성, 버그 수정, 토큰 소모, 모델 지원, 개발 비용을 어떻게 나눠 고를지의 선정 이야기다.
왜 2026년에 모델부터 비교하면 이미 틀린 선택인가
옛 방식과 새 방식은 구체적으로 충돌한다. 옛 방식은 모델 우선이다. Opus나 GPT-5.6나 로컬 가중치를 먼저 잠그고, 가까운 CLI를 나중에 붙인다. 새 방식은 하네스 우선이다. 감사하기 쉬운 최소 핵이 필요한지, 상자에서 바로 가드레일이 필요한지, 한 공급사에 묶인 기본 격리가 필요한지를 먼저 정한다. 같은 “실패한 테스트를 초록으로 만들어라”는 지시라도, 매 턴 모델에 도달하는 바이트, 하위 에이전트가 시스템 프롬프트를 다시 불러오는지, 파일 쓰기 전에 사람에게 멈추는지는 하네스가 정한다. 청구서와 사고도 거기서 갈린다.
이게 취미 비교가 아니라 일정 우선순위가 된 이유는 세 가지다. 첫째, 2026년 중반부터 “같은 모델을 다른 CLI에 얹는” 사내 평가가 늘었다. 공개 SWE-Bench / Terminal-Bench는 학습 데이터에 섞이기 쉽다. 이미 머지됐고 테스트가 있는 자체 변경이 더 속이기 어렵다. 둘째, 구독 보험과 종량 API 청구가 갈라졌다. Claude Code 좌석은 어지러운 API 사용보다 쌀 수 있고, Pi의 토큰 이점은 원래 종량으로 내고 있을 때만 성립한다. 셋째, 권한 기본값이 한 자릿수 넘게 다르다. Pi는 실행한 사용자와 같은 권한을 이어받는다. Claude Code는 먼저 묻는다. Codex는 샌드박스와 정책에 기운다. 모델 점수만으로 고르면 청구서와 사고를 한 세트로 산다.
로컬 세금도 따로 적어라. 추론은 클라우드에 있어도 CLI, 편집기, LSP, 브라우저, Docker는 통합 메모리를 먹는다. 메모리 단계는 M6 Mac mini 메모리 가이드에서, 상주 에이전트를 둘지 여부는 M6 Mac mini가 개발자에게 맞는지에서 보라.
Pi, Claude Code, Codex를 어떻게 분류하는가
세 이름을 나란히 놓으면 후보 목록은 반드시 흐트러진다. 하네스 두께로 셋을 나눠라. 한 칸이 빠지면 평판만 남는다.
| 유형 | 대표 | 얻는 것 | 직접 메워야 하는 것 |
|---|---|---|---|
| 최소이고 확장 가능 | Pi | 읽기 / 쓰기 / 수정 / 명령 실행, 얇은 시스템 프롬프트, 모델 교체 | 계획 모드, 하위 에이전트, MCP, 권한 팝업, 샌드박스 |
| 상자에서 바로 가드 | Claude Code | 계획, 하위 에이전트, MCP, 권한 모드, 체크포인트, 여러 진입면 | 공급사 자유와 완료 작업 단위 토큰 통제 |
| 기본이 격리 | Codex CLI | 계획 모드, 일관된 샌드박스 정책, ChatGPT / Codex Web 같은 계정 | 모델 중립. 기본 제품선은 OpenAI |
Pi의 핵은 일부러 작다. 코딩 에이전트 CLI, 다중 공급사 호출, TUI다. 두꺼운 하네스의 요청을 추적한 커뮤니티 기록에는 시스템 프롬프트가 이만 토큰대이고, 긴 도구 정의가 더 붙는다. Pi는 프롬프트를 천 토큰 근처, 내장 도구를 네 개로 누른다. 아끼는 것은 돈만이 아니다. 보내지 않은 내용은 모델 주의를 나누지 않는다. 문서도 빈칸을 숨기지 않는다. 계획 모드, 하위 에이전트 관리, 백그라운드 bash, 권한 팝업, MCP 클라이언트, 할 일 목록은 내장하지 않는다. 확장이거나 바깥 오케스트레이션이다.
Claude Code는 반대 쪽에 건다. 요청이 흐릿할 때 무엇을 열지, 고치기 전에 무엇을 돌릴지, 언제 멈추고 사람에게 물을지를 하네스에 적어 둔다. 아직 AGENTS.md를 쓰지 못하는 사람에게 그것은 낭비 기능이 아니라 보험이다. 좌석과 API 키를 섞지 마라. 좌석 분해는 Claude Code 개인 월비용을 보라.
Codex의 판매 포인트는 “파일을 고치는 또 하나의 CLI”가 아니다. 기본 억제와 OpenAI 출입문을 한 계정으로 묶는 것이다. CLI, IDE 확장, Codex Web, 데스크톱. 어려운 열린 과제용 Sol부터 높은 처리량용 Luna까지의 계단은 이미 ChatGPT / Codex에 워크플로를 잠근 팀에 맞다. 도구 루프를 어떻게 짤지는 Function Calling이란 무엇인가에서, 플래그십 모델의 컨텍스트와 Computer Use 경계는 GPT-6 Astra란 무엇인가에서 보라.
핵심 비교: 진입점, 실행, 컨텍스트, 대상
진짜 차이는 진입점이다. 어느 연구소 점수가 높은지가 아니다. 열 이름을 맞추지 않으면 고를 수 없다.
| 도구 | 진입점 | 실행 능력 | 컨텍스트 | 맞는 사람 |
|---|---|---|---|---|
| Pi | 터미널 CLI / TUI. 여러 모델 연결 가능 | 읽기, 쓰기, 수정, bash. 나머지는 확장이나 직접 짠 루프 | 얇은 시스템 프롬프트. 매 턴 보내는 파일은 적음. 저장소 규칙은 레포 안에 직접 적음 | 요구를 분명히 쓰고, 종량으로 내고, 모델이나 로컬 가중치를 바꾸고 싶은 사람 |
| Claude Code | 터미널, VS Code / JetBrains, 데스크톱, 브라우저 | 저장소 수정, 명령, 계획, 하위 에이전트, MCP | 두꺼운 프롬프트와 도구 목록. 흐릿한 일의 후퇴 규칙 | 가드가 필요하고, 이미 좌석을 내고, 프롬프트가 아직 한 줄인 사람 |
| Codex | CLI, IDE 확장, Codex Web, 데스크톱 | 수정, 명령, 계획 모드, 정책이 강한 샌드박스 실행 | OpenAI 제품 컨텍스트와 세션. 기본 모델은 GPT-5.6 계열 | 이미 OpenAI 생태계에 있고, 기본 격리와 한 로그인이 필요한 사람 |
두 번째 표는 비용과 권한만 보탠다. 머리글은 그대로 두어 형용사만 늘어나는 산문을 피한다.
| 도구 | 진입점 | 실행 능력 | 컨텍스트 | 맞는 사람 |
|---|---|---|---|---|
| Pi 청구와 권한 | 내 API 키 / 게이트웨이 | 내장 권한 팝업 없음. 실행 사용자와 동권 | 토큰은 주로 과제 자체에 씀 | 컨테이너를 직접 씌우고, 완료 작업으로 계산하는 사람 |
| Claude Code 청구와 권한 | 좌석 또는 API | 고위험 동작은 기본 거부. 여러 권한 모드 | 고정 프롬프트는 매 턴 남음. 캐시는 값을 깎을 뿐 주의는 줄이지 못함 | 월액이 읽히고, 확인 창을 못 줄이는 사람 |
| Codex 청구와 권한 | ChatGPT / API / 클라우드 에이전트 | 기본 억제가 더 강하고 정책이 일관됨 | OpenAI 세션과 클라우드 검토에 묶임 | 안전한 기본값을 공급사 중립보다 앞세우는 사람 |
코드 생성, 버그 수정, 토큰: 어떻게 재야 의미가 있는가
공개 연습 문제를 인수 시험으로 쓰지 마라. 답은 인터넷에 있고, 학습 데이터에 들어 있을 수 있다. 이미 머지됐고, 테스트가 있고, 봇이 올리지 않은 자체 저장소 변경을 꺼내라. 기존 모듈 방식으로 인터페이스를 채우는 생성 한 문항, 이미 실패한 테스트 한 문항, 파일 이름을 대지 않는 회귀 한 문항. 점수는 컴파일과 원래 테스트가 초록인지만 본다. 다른 모델을 심판으로 두지 마라.
# Same failing test, three CLIs — do not paste keys into the prompt pi --model anthropic/claude-opus-4-8 \ "Fix the failing test in auth_test.py and keep the public API stable." claude "Fix the failing test in auth_test.py and keep the public API stable." codex "Fix the failing test in auth_test.py and keep the public API stable." # After the run, record: tokens in/out, wall time, test pass/fail, files touched
코드 생성에서 인터페이스 이름 바꾸기, 기존 패턴으로 모듈 채우기, 보일러플레이트 넣기는 보통 Pi가 더 싸다. 요구는 이미 적어 두었다. 두꺼운 하네스의 이만 토큰대 후퇴 규칙은, 스스로 유지하는 설명서를 한 번 더 내는 셈이다. 흐릿한 요청——“여기가 좀 느린 것 같은데 봐 줘”——은 Claude Code나 Codex가 더 안정적이다. 어떤 파일을 먼저 읽고, 고치기 전에 무엇을 돌릴지를 하네스가 메우기 때문이다.
버그 수정도 위치를 아는지로 가른다. 테스트 이름과 실패 단언이 함수를 가리키면 Pi면 된다. 신호가 “가끔 500”이나 “한 나라 결제만 실패”라면 두꺼운 하네스로 탐색하고, 파일을 잠근 뒤 기계적 패치를 Pi에 넘긴다. 탐색과 채우기를 모두 “최강 모델 + 최고 effort”에 묶으면 스위트가 좋아지기 전에 청구가 먼저 터진다.
백만 토큰 정가를 개발 비용으로 보지 마라. 사내 쌍 비교는 같은 말을 반복한다. 같은 모델, 같은 과제에서 Pi가 매 턴 보내는 양은 두꺼운 하네스의 대략 삼분의 일이다. 과제가 길고 만지는 파일이 늘수록 격차는 눈덩이가 된다. Opus 고 effort에서 공식 하네스가 과제당 약 2달러, Pi가 그 절반, 통과율은 두 포인트 안팎이라는 관측도 있다. effort를 최상단까지 비틀면 Pi의 “가능한 한 적게 보내기”가 모델 자신의 긴 추론을 따라가지 못할 수 있다. 인수에는 effort 다이얼이 들어가야 한다. 한 단계만 돌린 것은 연구가 아니다.
또 하나 빠지기 쉬운 구멍이 하위 작업이다. 두꺼운 하네스가 하위 에이전트에 일을 넘기면, 자식은 종종 시스템 프롬프트와 도구 정의를 처음부터 다시 읽는다. 직접 하면 약 12만 토큰인 과제가 둘로 쪼개면 50만 이상이 된 기록이 있다. 화면의 “병렬”은 네 배 청구가 될 수 있다. 구독 사용자가 Pi로 바꾸면 API 종량도 시작된다. “반값”은 원래 종량으로 내고 있을 때만 성립한다.
장면별 선택
| 당신이 이런 경우 | 고를 것 | 이유 |
|---|---|---|
| 파일, 동작, 경계 조건을 적을 수 있고 저장소에 AGENTS.md가 있다 | Pi를 주 경로 | 두꺼운 하네스가 넣을 설명서를 이미 직접 썼다 |
| 프롬프트가 “고쳐 줘” 한 줄이고, 에이전트용 문서가 거의 없다 | Claude Code | 사는 것은 후퇴 규칙이지 남는 장식이 아니다 |
| 계정이 이미 ChatGPT / Codex에 있고 안전한 기본값을 최우선으로 둔다 | Codex | 격리와 한 계정이 모델 중립보다 비싸다 |
| 같은 CLI에서 Claude, GPT, Gemini, 로컬 모델을 바꾸고 싶다 | Pi | 나머지 둘은 기본으로 자사 모델에 묶인다 |
| 기계적 인터페이스 작업과 흐릿한 버그 탐색이 반반이다 | 병행: Pi + Claude Code 또는 Codex | 과제로 나누고, 배타로 만들지 마라 |
| 기업 저장소, 운영 비밀, 감사 요구가 제도에 적혀 있다 | Codex 또는 Claude Code + 원격 노드. Pi는 컨테이너만 | 동권 기본값은 편의가 아니라 위험이다 |
추천 조합
A — 개인 개발자, API 종량: 주 경로는 Pi다. 저장소 뿌리에 에이전트가 읽는 짧은 규약을 둔다. 디렉터리, 테스트 명령, 건드리면 안 되는 경로. effort는 높은 단에서 시작하고 최상단은 쓰지 않는다. 노트북은 읽기 탐색만. 쓰기와 bash는 컨테이너나 세션을 가른 원격 Mac으로 보낸다. API 청구와 노드 임대료를 한 표에 올리고, 요금은 Mac mini 가격을 본다.
B — 작은 제품 팀, Claude 좌석 있음: 탐색, 계획, MCP 연결은 Claude Code. 이름 바꾸기, 패턴 채우기, 이미 빨간 테스트 수리는 Pi. 같은 세 문항으로 일주일 병행하고 토큰과 재작업을 비교한 뒤 주 경로를 정한다. “도구를 통일하고 싶다”는 이유만으로 싼 쪽을 끄지 마라.
C — 기업 또는 고보안: 일상은 Codex나 Claude Code 권한 모드. Pi는 감사된 이미지 안에서만 나오고, 네트워크와 비밀은 과제마다 발급한다. 디스크를 쓰고, 브라우저를 열고, 운영 사본을 만지는 세션은 폐기 가능한 원격 Mac에 두고 업무 노트북과 섞지 않는다. 계정과 인도 경계는 도움말 센터다.
흔한 오해
- 모델로 하네스를 고른다: “Opus를 쓰니까 공식 CLI가 필수다.” 하네스만 바꿔도 통과율과 과제당 비용이 움직인다.
- 백만 토큰 정가를 개발 비용으로 본다: 싼 모델은 라운드를 늘린다. 두꺼운 프롬프트는 캐시가 맞아도 주의를 차지한다.
- Pi의 동권 기본값을 편하다고 읽는다: 팝업이 없는 것은 안전과 같지 않다. 낯선 저장소와 비밀은 먼저 샌드박스에 넣어라.
- 모든 과제를 최고 effort에 고정한다: 얇은 하네스는 최상단에서 질 수 있다. 인수에 다이얼을 넣어라.
- 병렬을 위해 하위 에이전트를 함부로 쪼갠다: 자식은 시스템 프롬프트 전체를 다시 읽을 수 있다. 청구가 속도보다 먼저 터진다.
실행 단계: 7단계
- 이 저장소에서 세 문항을 고른다. 기존 방식으로 코드 한 조각 생성, 이미 빨간 테스트 하나 수정, 파일 이름을 대지 않는 회귀 위치 찾기. “더 좋게 만들어 줘”처럼 채점할 수 없는 빈 요청은 지운다.
- 같은 모델로 Pi와 공식 하네스에서 세 문항을 돌린다. 입출력 토큰, 벽시계 시간, 테스트 통과 여부, 바뀐 파일을 적는다. 답이 새는 git 이력을 에이전트가 읽지 못하게 한다.
- 일을 기계적 채우기와 흐릿한 탐색으로 나눈다. 전자의 기본은 Pi, 후자의 기본은 Claude Code 또는 Codex. 비율을 팀 합의에 적어 매일 아침 다시 흥정하지 않는다.
- 과금 경로를 분명히 쓴다. 좌석 사용자는 이미 API를 내지 않는 한 “토큰 반값”을 전환 이유로 쓰지 마라. 종량 사용자는 테스트가 있는 완료 과제당 금액으로 표를 만들고, 정가로 만들지 않는다.
- Pi의 격리를 하나 고른다. 로컬 컨테이너, 소형 VM, 또는 원격 Mac 노드. 두꺼운 하네스에서는 권한 모드와 허용 MCP를 맞춰 본다. 키는 프롬프트에도 스크린샷에도 넣지 않는다.
- 장면으로 주 하네스를 고르고 겹침을 허용한다. 개인은 Pi 주, 작은 팀은 Claude Code 탐색 + Pi 채우기, 기업은 쓰기를 감사된 입구 뒤에 잠근다.
- 실행은 재현 가능한 Mac 노드에 둔다. 같은 이미지, 같은 테스트 명령, 세션이 끝나면 작업 공간을 지운다. 노트북 캐시만 초록인 것은 인수가 아니다.
FAQ
Pi, Claude Code, Codex 중 어느 모델이 더 강한가?
질문이 틀렸다. 2026년 9월 셋 모두 플래그십 모델 앞에 앉을 수 있다. 같은 모델에서 하네스만 바꿔도 통과율과 청구가 움직인다. 컨텍스트를 어떻게 넣는지, 권한을 어떻게 막는지, 공급사를 바꿀 수 있는지를 먼저 비교하라.
Claude Code를 구독 중인데도 Pi를 깔아야 하는가?
깔아야 한다. 이미 API를 내거나 기계적 수정이 많다면 특히 그렇다. 구독이 사는 것은 두꺼운 하네스의 보험이다. 기계적 채우기, 모델 전환, 토큰 통제는 여전히 Pi에 맞다. 일주일 병행한 뒤 주 경로를 정하라.
Codex는 OpenAI 모델만 쓰는가?
기본 제품선은 GPT-5.6의 Sol / Terra / Luna다. 강점은 격리 정책과 ChatGPT / Codex Web의 한 계정이다. 같은 CLI에서 Claude, Gemini, 로컬 모델을 바꾸려면 Pi를 골라라.
토큰 단가가 싸면 개발 비용도 낮은가?
아니다. 비교할 것은 “테스트가 있는 완료 과제가 얼마인가”이지, 백만 토큰 정가가 아니다. 싼 모델은 라운드를 늘린다. 두꺼운 시스템 프롬프트는 캐시가 맞아도 모델 주의를 차지한다.
Pi에는 권한 팝업이 없다. 노트북에서 바로 돌려도 되는가?
돌아간다. 낯선 저장소나 운영 비밀에서는 그렇게 하지 마라. Pi 문서는 실행 사용자와 같은 권한을 이어받는다고 적는다. 쓰기와 bash를 열기 전에 컨테이너나 원격 Mac 노드에 넣어라.
정리
2026년에 AI 코딩 에이전트를 고르는 일은 모델 순위표 장보기가 아니다. 진입점은 하네스 두께로 골라라. 요구가 분명하고 토큰 통제나 모델 전환이 필요하면 Pi. 프롬프트가 아직 얇고 계획과 가드가 필요하면 Claude Code. 이미 OpenAI 생태계에 있고 기본 격리가 필요하면 Codex. 코드 생성과 버그 수정은 위치를 아는지로 나누고, 청구는 완료 작업으로 보고, 권한은 평판이 아니라 기본값으로 정한다. 7단계로 샘플 과제, 단계, 재현 노드를 인수에 적어라. 원격 노드는 대여 페이지와 가격 페이지에서 보고, 계정 문제는 도움말 센터로 간다.