브라우저 자동화 및 세션 재생 검증을 통한 Telegram 기반 OpenAI Codex SDK 원격 접속 도구
요약
Telegram을 인터페이스로 사용하여 OpenAI Codex SDK에 원격으로 접속할 수 있는 도구를 소개합니다. 브라우저 자동화와 세션 재생 기능을 통해 코드 변경 사항을 실시간으로 검증하고, Docker를 통해 간편하게 배포할 수 있는 환경을 제공합니다.
핵심 포인트
- Telegram 봇을 통한 모바일 및 다양한 클라이언트에서의 원격 코딩 지원
- Stagehand MCP를 활용한 브라우저 자동화 및 프론트엔드 테스트 검증 기능
- 사용자별 격리된 세션 관리 및 작업 디렉토리 기반의 스레드 전략
- Docker Compose를 이용한 손쉬운 배포 및 세션 지속성 보장
- 세션 재생 URL을 통해 Codex의 작업 과정을 비디오로 확인 가능
브라우저 자동화(Browser automation) 및 세션 재생(Session replay) 검증을 통해 Telegram으로 OpenAI Codex SDK에 원격 접속할 수 있습니다.
이 Telegram 봇은 OpenAI Codex에 대한 대화형 인터페이스를 제공하여, 어떤 기기에서든 어디서나 코딩할 수 있게 해줍니다. 주요 기능은 다음과 같습니다:
원격 코딩 (Remote Coding): 휴대폰이나 모든 Telegram 클라이언트에서 Codex에 접속
사용자별 세션 (Per-User Sessions): 각 사용자를 위한 격리된 대화 스레드
작업 디렉토리 관리 (Working Directory Management): 프로젝트 간의 원활한 전환
브라우저 자동화 (Browser Automation): Stagehand MCP를 통한 자동 프론트엔드 검증
세션 재생 URL (Session Replay URLs): Codex가 변경 사항을 테스트하는 비디오 재생 시청
실시간 스트리밍 (Real-Time Streaming): Codex의 응답이 생성되는 과정을 실시간으로 확인
Docker 지원 (Docker Ready): docker-compose를 이용한 간편한 배포
✅ 전체 Codex SDK 통합 (Full Codex SDK Integration)
- 작업 디렉토리별 스레드 전략 (Thread-per-working-directory strategy)
- 실시간 업데이트가 포함된 스트리밍 응답 (Streaming responses)
- 재시작 시에도 유지되는 지속적인 세션 (Persistent sessions)
- 자동 승인(설정 가능)을 포함한 전체 쓰기 권한 (Full write permissions)
✅ Stagehand MCP 지원 (선택 사항)
- 브라우저 탐색 및 상호작용
- 자동화된 프론트엔드 테스트 및 검증
- Codex가 변경 사항을 검증하는 모습을 시청할 수 있는 세션 재생 URL
- 미사용 시에도 정상 작동하지만, 자동 검증 기능은 사용할 수 없음
✅ 스마트 세션 관리 (Smart Session Management)
- JSON 기반 사용자 세션
- 디렉토리 변경 시 자동 스레드 생성
- 세션 지속성 (Session persistence)
✅ Telegram 명령어 (Telegram Commands)
/start
- 환영 인사 및 빠른 시작
/help - 명령어 참조
/setcwd - 작업 디렉토리 설정
/getcwd - 현재 디렉토리 표시
/searchcwd - 디렉토리 찾기
/reset - 대화 초기화 (디렉토리는 유지)
✅ 전체 권한 (기본값)
workspace-write 모드 - Codex가 작업 디렉토리 내 파일을 생성/편집할 수 있음
never 승인 - 중단 없이 완전히 자동화됨
- 워크스페이스 격리 - 시스템 파일 보호
Docker & Docker Compose (필수)
Telegram Bot Token (@BotFather로부터 발급)
Codex 인증 (codex login을 통해 발급)
)
GitHub Personal Access Token (저장소 작업을 위한 토큰)
Browserbase Account (선택 사항, 자동화된 프론트엔드 검증용)
# Telegram에서 @BotFather에게 메시지 전송
/newbot
# 안내에 따라 봇 토큰을 발급받으세요
# Codex로 인증
codex login
# auth.json 확인
...
다음 값들을 복사하세요:
tokens.id_token
tokens.access_token
tokens.refresh_token
tokens.account_id
이 단계는 건너뛸 수 있습니다! 봇은 Browserbase 없이도 완벽하게 작동합니다. 다만 세션 재생 (Session Replay) URL을 통한 자동화된 프론트엔드 검증 기능은 사용할 수 없습니다.
Codex가 프론트엔드 변경 사항을 자동으로 검증하도록 설정하려면:
- browserbase.com 방문
- 프로젝트 생성
- API 키와 Project ID 복사
.env파일에 추가
건너뛰는 경우: .env 파일에서 해당 변수들을 주석 처리된 상태로 두세요.
cd codex-telegram-bot
cp .env.example .env
# 본인의 자격 증명으로 .env 수정
필수 변수:
TELEGRAM_BOT_TOKEN
- @BotFather로부터 발급
CODEX_ID_TOKEN
- ~/.codex/auth.json로부터 발급
CODEX_ACCESS_TOKEN
- ~/.codex/auth.json로부터 발급
CODEX_REFRESH_TOKEN
- ~/.codex/auth.json로부터 발급
CODEX_ACCOUNT_ID
- ~/.codex/auth.json로부터 발급
GH_TOKEN
- GitHub Personal Access Token (repo + workflow 권한 필요)
선택 변수 (Stagehand용):
BROWSERBASE_API_KEY
BROWSERBASE_PROJECT_ID
OPENAI_API_KEY
# 빌드 및 시작
docker-compose up --build -d
# 로그 확인
...
다음 내용이 포함된 .env 파일을 생성하세요:
# 필수 - 핵심 봇
TELEGRAM_BOT_TOKEN=your_bot_token
CODEX_ID_TOKEN=your_id_token
...
# 로그 확인
docker-compose logs -f codex-telegram-bot
# 다음과 같이 표시되어야 합니다:
...
./workspace:/workspace
- 사용자의 코드 프로젝트
./telegram_sessions:/app/telegram_sessions
- 사용자 세션
codex_sessions:/root/.codex/sessions
- Codex 스레드 데이터
사용자: 피보나치 수를 계산하는 Python 함수를 만들어줘
봇: [구현 코드가 포함된 fibonacci.py 생성]
사용자: 헤더에 다크 모드 토글을 추가해줘
봇:
✅ 변경 사항이 구현되었으며 스테이징(staging) 환경에 배포되었습니다!
...
사용자: /setcwd /workspace/my-react-app
봇: ✅ 작업 디렉터리(Working directory)가 다음으로 설정되었습니다: /workspace/my-react-app
사용자: 로그인 폼 컴포넌트를 추가해줘
...
봇은 두 개의 MCP (Model Context Protocol) 서버를 사용합니다:
복잡한 작업을 위한 단계별 추론(step-by-step reasoning)을 가능하게 합니다.
프론트엔드 검증을 위한 브라우저 자동화(browser automation)를 제공합니다:
- 스테이징(staging)/프로덕션(production) URL로 이동
- 요소를 클릭하고 기능과 상호작용
- 변경 사항을 보여주기 위해 스크롤
- 기능 시연
Codex가 사용자의 변경 사항을 테스트하는 모습을 보여주는 세션 재생(session replays)을 생성합니다.
codex_config/config.toml.template에서의 설정:
[mcp_servers.stagehand]
command = "npx"
args = ["-y", "@browserbasehq/mcp-server-browserbase"]
...
Codex에게 프론트엔드 변경 사항을 검증하도록 요청할 때:
스테이징에 배포(Deploy to Staging): 봇이 PR(Pull Request)을 생성하고, 머지(merge)하며, 배포를 트리거합니다.
배포 대기(Wait for Deployment): Render가 빌드하는 데 2~3분이 소요됩니다.
검증 요청(Verify Request): 사용자가 "스테이징의 변경 사항을 검증해줘"라고 요청합니다.
이동 및 테스트(Navigate & Test): 봇이 Stagehand를 사용하여 다음을 수행합니다:
- 스테이징 URL로 이동
- 변경 사항을 보여주기 위해 스크롤
- 기능을 테스트하기 위해 새 버튼을 클릭
- 새로운 기능과 상호작용
세션 URL 전송(Send Session URL): 봇이 Browserbase 세션 재생 링크를 제공합니다.
재생 시청(Watch Replay): 사용자는 Codex가 변경 사항을 테스트하는 영상을 시청합니다.
세션 URL은 정적 스크린샷이 아닌 비디오 재생을 보여줍니다.
각 사용자는 JSON 파일로 저장되는 격리된 세션을 할당받습니다:
{
"user_id": 12345,
"cwd": "/workspace/project",
...
}
/setcwd로 작업 디렉터리를 변경할 때:
- 현재
thread_id가 삭제됩니다 - 새로운 작업 디렉터리로 새로운 스레드가 생성됩니다. - 신선한 대화 문맥(conversation context)이 제공됩니다.
- 이전 스레드들은 보존되지만 활성화되지는 않습니다.
사용자 메시지 → Telegram
↓
세션 로드/생성
...
codex-telegram-bot/
├── src/
│ ├── bot/
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기