안녕하세요, 자바파커입니다.
T3 Code는 Claude Code, Codex, Cursor 같은 코딩 에이전트를 한 화면에서 조종하는 오픈소스 앱입니다. 스스로를 "에이전트 하네스 제어판(agent harness control surface)"이라고 부릅니다. 에이전트 자체를 새로 만든 것이 아니라, 내 컴퓨터에 이미 설치된 에이전트를 웹, 데스크톱, 모바일 앱에서 쓰게 해 주는 화면입니다. MIT 라이선스이고, 2026년 2월에 공개돼 11월 10일 기준 GitHub 별 5.5만 개를 받았습니다.
직접 설치해서 Claude와 Codex에게 같은 버그를 고치게 해 봤습니다. 결과부터 말씀드리면 이렇습니다.
- 새 대화의 기본 권한은 "Full access"입니다. 에이전트가 승인 없이 명령을 실행하고 파일을 고칩니다. 앞 대화에서 승인 모드를 썼어도 새 대화는 다시 Full access로 시작했습니다.
- 대화마다 숨은 git ref로 체크포인트를 남깁니다. 다만 파일까지 되돌리는 기능은 별도 워크트리에서 시작한 대화에서만 동작했습니다.
- 처음 실행하면 기존 Claude Code·Codex 대화 기록에서 프로젝트를 찾아 가져오겠다고 제안합니다. 제 컴퓨터에서는 18개를 찾았고 4개가 미리 선택돼 있었습니다.
- 사용 데이터 전송은 기본으로 켜져 있습니다. 끄고 돌렸을 때 T3 Code 서버 프로세스 자체는 바깥과 연결하지 않았고, 바깥 연결은 에이전트와 GitHub CLI가 각자 했습니다.
T3 Code는 무엇인가
T3 Code의 FAQ는 자신을 이렇게 비유합니다. 모델이 요리사, Claude Code나 Codex 같은 하네스가 주방이라면, T3 Code는 원하는 주방을 들여와 쓰는 식당입니다. 하네스 없이는 동작하지 않습니다.
t3 명령으로 실행합니다.FAQ 기준으로 T3 Code 자체는 무료이고, 에이전트 비용은 원래 쓰던 구독으로 나갑니다. Claude는 Anthropic의 Agent SDK로 구동하는데, FAQ에 따르면 이 경로는 Claude Code를 직접 쓸 때보다 5시간 사용 한도가 더 빨리 줄어듭니다. T3 Code 쪽은 이를 Anthropic 측 버그로 보고 제보했다고 적고 있습니다. 로컬 모델은 지원하지 않습니다.
설치
# 설치 없이 한 번 써 보기 (Node.js 필요)
npx t3@latest
# 명령줄 설치
curl -fsSL https://t3.codes/install.sh | sh
# 데스크톱 앱 (macOS)
brew install --cask t3-code미리 에이전트 하나 이상을 설치하고 로그인해 둬야 합니다. Claude는 claude auth login, Codex는 codex login입니다.
npx t3로 받는 npm 패키지는 32KB짜리 런처입니다. 런처가 GitHub 릴리스에서 실행 파일을 내려받아 SHA256을 확인한 뒤 ~/.t3에 둡니다. Apple Silicon Mac에서 이 실행 파일이 336MB였습니다. Intel Mac용 t3 실행 파일은 없어서 데스크톱 앱을 써야 합니다.
직접 써 본 환경
- 2026년 11월 9~10일, T3 Code 0.1.7(
npx t3@0.1.7). 글을 쓰는 사이 0.1.8이 나왔습니다. - 빈 폴더에 버그를 하나 심은 파이썬 프로젝트(
add()가a - b를 반환)를 만들고 "test_calc.py가 실패해. 원인을 찾아서 고치고 테스트를 돌려 줘."라고 요청했습니다. - 사용 데이터 전송은
T3CODE_TELEMETRY_ENABLED=false로 껐고, 데이터 폴더는--base-dir로 따로 뒀습니다. - 웹 앱은 자동화 브라우저로 조작했고, 브라우저가 바깥으로 보내는 요청은 막고 기록했습니다.
처음 실행할 때 보이는 것
서버를 띄우면 터미널에 접속 주소, 일회용 토큰, 휴대폰용 QR 코드가 나옵니다. 처음 기동은 실행 파일 다운로드를 포함해 약 19초, 다음부터는 약 6초였습니다.
브라우저로 붙으면 설정 마법사가 세 단계로 진행됩니다. 컴퓨터 연결, 에이전트 확인, 프로젝트 가져오기입니다. 에이전트 단계에서는 설치된 Codex와 Claude를 자동으로 찾아 "Ready"로 표시했습니다.
세 번째 단계에서는 T3 Code가 기존 Claude Code·Codex 대화 기록을 읽어 프로젝트 18개를 찾아냈고, 그중 4개가 이미 선택된 상태였습니다. 그대로 Continue를 누르면 프로젝트와 대화를 가져옵니다. 저는 "Do not import projects"를 골랐습니다. 회사 프로젝트가 섞여 있다면 목록을 먼저 확인하는 편이 좋습니다.
프로젝트를 추가하는 로컬 폴더 경로 입력칸에는 ~/가 미리 채워져 있어서, 그 뒤에 절대 경로를 이어 치면 ~//tmp/...가 되고 버튼이 "Create & Add"로 바뀝니다. 그대로 누르면 홈 폴더 아래에 새 폴더가 생깁니다. 입력칸을 비우고 경로를 다시 넣어야 버튼이 "Add"로 바뀝니다.
기본 권한은 Full access
프로젝트를 열면 입력창 아래에 권한이 표시됩니다. 처음 값은 "Full access"였습니다. 소스 코드에서도 기본값이 full-access로 정해져 있습니다(packages/contracts/src/providerPolicy.ts).
첫 대화를 Supervised로 바꿔 진행한 뒤 새 대화를 열었더니 다시 Full access로 시작했습니다. 문서에도 새 대화는 보고 있던 대화가 아니라 설정의 기본값을 따른다고 적혀 있습니다. 승인 모드로 쓰려면 설정에서 기본값 자체를 바꿔야 합니다.
Claude와 Codex로 같은 버그 고치기
두 에이전트 모두 Supervised 모드로 같은 요청을 보냈습니다. Claude는 현재 작업 폴더(Current checkout)에서, Codex는 별도 워크트리(New worktree)에서 돌렸습니다.
a - b를 a + b로 고치고 테스트 통과를 확인했습니다.t3/fix-test-calc로 자동으로 붙었습니다.두 에이전트의 진행 화면은 거의 같았습니다. 실행할 명령을 보여 주고 Approve·Decline 버튼을 띄우고, 끝나면 바뀐 파일과 줄 수를 요약합니다. 승인 대신 메시지를 입력하면 그 요청을 거절하면서 에이전트에게 다른 방향을 알려 줄 수 있습니다. FAQ의 "어느 하네스를 써도 거의 같게 느껴진다"는 설명과 맞았습니다.
Claude 대화를 시작하자마자 프로젝트에 .omc/ 폴더가 생겼습니다. 이 폴더는 제가 평소 Claude Code에 설치해 둔 플러그인이 만든 것이었습니다. T3 Code가 띄우는 Claude도 내 전역 Claude Code 설정, 플러그인, 훅을 그대로 불러온다는 뜻입니다. Codex 쪽도 평소 Codex 설정을 그대로 썼습니다.
체크포인트와 되돌리기
대화를 시작하면 프로젝트 저장소에 refs/t3/orchestration-v2/checkpoints/.../ordinal/0 같은 숨은 ref가 생기고, 턴이 끝나면 ordinal/1이 추가됐습니다. main 브랜치에는 커밋이 하나도 늘지 않았습니다. 사용자의 브랜치 기록을 건드리지 않고 작업 상태를 저장하는 방식입니다.
되돌리기는 보낸 메시지 아래의 "Edit from here"에서 합니다. "Revert and keep changes"는 대화만 되감고, "Revert files too"는 파일까지 체크포인트로 돌립니다. 결과는 작업 위치에 따라 갈렸습니다.
a - b로 돌아갔습니다.워크트리는 T3 Code 데이터 폴더 아래(worktrees/)에 만들어집니다. FAQ에는 워크트리가 쌓여 500GB를 정리한 사용자 사례가 나옵니다. 설정의 Worktrees → Cleanup에서 자동 정리를 켜 두는 편이 좋습니다.
사용 데이터와 외부 연결
사용 데이터 문서에 따르면 서버는 기본으로 ingest.t3.codes에 사용 이벤트를 보내고, 이 데이터는 PostHog로 전달됩니다. 이벤트에는 에이전트 종류, 모델, 권한 모드, 토큰 수가 들어가고, 설치 수를 세기 위해 해시 처리한 Claude·OpenAI 계정 식별자도 보냅니다. 프롬프트, 응답, 파일 내용은 보내지 않는다고 밝힙니다. 소스 코드에서도 기본값이 켜짐(withDefault(true))입니다.
전송을 끄고 Codex 작업이 도는 동안 2초 간격으로 프로세스별 네트워크 연결을 기록했습니다. 앞서 연 Claude 대화의 프로세스도 이때 함께 떠 있었습니다.
gh를 씁니다.코드와 프롬프트가 T3 서버로 가지 않는다는 FAQ 설명대로였습니다. 사용 데이터를 보내고 싶지 않다면 서버를 띄우기 전에 T3CODE_TELEMETRY_ENABLED=false를 설정하세요. 데스크톱 앱은 macOS·Linux에서 셸 설정 파일(예: ~/.zshrc)의 값을 읽습니다.
자원 사용량은 서버가 대기 중 약 50MB, 기동 직후 약 100MB였고, 에이전트마다 Claude 프로세스 약 95MB, Codex App Server 약 85MB가 따로 떴습니다.
누구에게 맞을까
- Claude Code와 Codex를 번갈아 쓰면서 터미널 창을 여러 개 띄워 두는 사람
- 집이나 서버의 컴퓨터에서 에이전트를 돌리고 휴대폰으로 승인만 하고 싶은 사람
- 에이전트 작업을 워크트리로 나눠 여러 개 동시에 돌리고 싶은 사람
반대로 Claude Code 하나만 쓰고 터미널이 편하다면 굳이 옮길 이유는 적습니다. Claude의 5시간 한도가 더 빨리 준다는 점도 감안해야 합니다. README도 "아주 초기 단계이니 버그를 예상하라"고 적고 있습니다.
자주 묻는 질문 (FAQ)
T3 Code는 무료인가요?
T3 Code 자체는 무료이고 MIT 오픈소스입니다. 에이전트 사용료는 원래 쓰던 Claude, ChatGPT 등의 구독이나 API 요금으로 나갑니다. 원격 접속용 T3 Connect는 계정당 컴퓨터 3대까지 무료이고, 더 필요하면 유료 T3 Chat 계정을 연결합니다.
내 코드가 T3 서버로 가나요?
문서상으로는 가지 않습니다. 코드와 프롬프트는 내 컴퓨터에서 각 에이전트 회사로 바로 갑니다. 이번 측정에서도 사용 데이터 전송을 끈 T3 Code 서버는 바깥과 연결하지 않았습니다. 다만 사용 데이터 전송은 기본으로 켜져 있어서, 끄지 않으면 해시 처리한 계정 식별자와 사용 통계가 전송됩니다.
기본 권한을 Supervised로 바꾸려면?
설정의 Threads → New threads → Permissions에서 바꿉니다. 대화 안에서만 바꾸면 그 대화에만 적용되고, 새 대화는 다시 기본값(Full access)으로 시작합니다.
에이전트가 고친 파일을 되돌릴 수 있나요?
메시지 아래 "Edit from here"에서 "Revert files too"를 고르면 됩니다. 다만 이번 실험에서는 New worktree로 시작한 대화에서만 동작했고, 현재 작업 폴더에서 한 대화는 오류로 거부됐습니다.
처음 써 볼 때
- Claude Code나 Codex에 먼저 로그인합니다.
- 사용 데이터 전송을 끄려면
export T3CODE_TELEMETRY_ENABLED=false후npx t3@latest를 실행합니다. - 설정 마법사의 프로젝트 가져오기 단계에서 목록을 확인하고, 필요 없으면 "Do not import projects"를 고릅니다.
- 설정에서 새 대화의 기본 권한을 Supervised로 바꿉니다.
- 되돌릴 가능성이 있는 작업은 New worktree로 시작합니다.
다른 에이전트 도구와의 차이는 Claude Cowork와 Claude Code 비교에, 에이전트 스킬 찾기는 skills.sh 스킬 검색에 정리해 두었습니다.
참고: pingdotgg/t3code · T3 Code FAQ · 권한 모드 문서