2026.06.19 작업일지 v1.0.0
10:47, Telegram voice가 “안녕하세요”로 전사되며 REPL 브릿지 입력 경로가 넓어졌다. 11:29, setup wizard와 service 설치 흐름이 public repo에 들어가기 시작했다. 23:43, 데스크탑 Codex까지 본진에 인사 보고를 보내며 Codex 노드가 하나 더 운영면에 올라왔다.
전날 구조를 갈아엎었다면, 6월 19일은 그 구조를 제품처럼 다듬은 날이었다. 목표는 분명했다. 내부에서만 아는 스크립트가 아니라, 다른 사람이 설치하고 실행할 수 있는 codex-telegram-bridge로 만드는 것.
1. 설치가 제품의 절반이었다
public repo에는 setup wizard가 들어갔다. token 검증, /start 기반 chat id 자동 감지, 0600 권한의 env config, runner 생성, systemd/launchd 설치, doctor/uninstall 흐름이 정리됐다. bridge_setup.py와 README quickstart가 같이 갱신됐고, 테스트도 따라붙었다.
처음에는 “코드가 동작한다”가 기준이었다. 이날부터 기준은 “처음 쓰는 사람이 설치할 수 있다”로 바뀌었다. 제품화는 기능이 아니라 진입 경로를 만드는 일이라는 점이 드러났다.
2. 텔레그램은 텍스트만 받는 곳이 아니었다
브릿지는 voice/audio/video/video_note/document까지 받아 Codex REPL에 넣는 쪽으로 확장됐다. voice는 별도 ASR 환경으로 전사됐고, 이미지·영상·오디오 답변 attachment도 Telegram 업로드로 보낼 수 있게 됐다.
이 변화는 사용성을 크게 바꿨다. 폰에서 스크린샷을 보내고, 음성으로 지시하고, 답변이 파일이면 다시 폰에서 받는 구조가 가능해졌다. 브릿지는 단순 채팅 중계가 아니라 모바일 조작면이 됐다.
3. approval과 TUI 선택도 Telegram으로 끌어냈다
Codex TUI가 묻는 선택지와 approval prompt도 Telegram 버튼으로 relay됐다. y/n, 숫자 선택, wrapped esc label 같은 경우가 처리됐고, 선택한 버튼은 marked 상태로 남게 했다. v0.3.2 follow-up에서는 generic TUI selection relay까지 들어갔다.
배운 것 — 원격 REPL을 폰으로 가져오려면 “답변 전송”보다 “중간 선택과 승인”이 더 중요하다.
4. 내부 표준화와 public release가 같이 달렸다
내부 5노드에는 codex-repl-bridge-run.sh, runner 환경변수, tmux 세션 표준화가 들어갔다. 동시에 public release는 v0.2.1부터 v0.3.3까지 빠르게 진행됐다. setup wizard, media attachment, approval relay, multi-head runtime foundation, marketing copy, slash command 처리까지 쌓였다.
작업량은 많았지만 방향은 일관됐다. 내부 운영에서 검증된 것을 public package로 밀어내고, public package에서 다듬은 UX를 다시 내부 노드에 표준화했다.
5. 그래서 뭐가 남았나
이날 남은 것은 “Codex를 Telegram에서 실행한다”는 한 줄짜리 설명이 아니었다. 설치, 음성, 이미지, approval, 선택지, service 관리, release note까지 포함한 제품 뼈대였다.
다만 아직 해결해야 할 운영 질문도 있었다. Claude 토큰이 나가는 작업을 어떻게 찾고 끊을지, Codex와 Claude를 어떤 비용 구조로 나눌지, public bridge를 범용 agent bridge로 둘지 Codex-first로 집중할지도 정리가 필요했다. 이 질문들은 다음 날 운영 모델 문서와 비용 backstop으로 이어졌다.
다음 이야기는 Codex-main 운영모델과 비용 게이트를 세우는 이야기.
— 강대종 / @ssamssae