ChatGPT 컨테이너, 이제 bash 실행·패키지 설치·파일 다운로드 지원
(simonwillison.net)- ChatGPT의 컨테이너 실행 환경이 대규모로 확장되어, 이제 Bash 명령 실행, pip/npm 패키지 설치, 파일 다운로드가 가능해짐
- Python 중심이던 기존 환경에 Node.js, Ruby, Go, Java, Swift, Kotlin, C, C++ 등 10여 개 언어가 추가되어 다중 언어 코드 실행 지원
- 외부 네트워크 접근은 여전히 제한되지만, OpenAI 내부 프록시를 통해
pip install과npm install이 작동하도록 구성됨 - 새 도구
container.download는 공개 URL에서 파일을 가져와 컨테이너 내부에 저장할 수 있으며, 보안 검증 절차를 거침 - 이 업그레이드는 ChatGPT의 코드 실행·데이터 처리 능력을 크게 확장하며, 공식 문서화 필요성이 강조됨
ChatGPT 컨테이너의 주요 확장 기능
- ChatGPT는 이제 Bash 명령을 직접 실행할 수 있으며, 이전에는 Python 코드만 가능했음
- Python의
subprocess모듈을 통한 간접 실행에서 벗어나, 명령줄 수준의 제어 가능
- Python의
-
Node.js 환경이 추가되어 JavaScript 실행이 가능하며, Ruby, Perl, PHP, Go, Java, Swift, Kotlin, C, C++ 등도 테스트 성공
- Rust는 아직 지원되지 않음
- 컨테이너는 여전히 외부 네트워크 요청을 직접 수행하지 못하지만,
pip install과npm install이 프록시를 통해 작동 -
container.download도구를 사용해 웹상의 파일을 지정 경로로 다운로드 가능- ChatGPT가 URL을 식별하고, 해당 파일을 샌드박스 환경에 저장 후 처리 가능
container.download 기능
-
container.download는 공개 접근 가능한 URL에서 파일을 가져와 컨테이너 파일시스템에 저장하는 도구- 입력 형식은
{"url": "https://example.com/file.zip", "filepath": "/mnt/data/file.zip"}형태
- 입력 형식은
- 다운로드된 파일은 컨테이너 내에서 압축 해제, 파싱, 변환 등 후처리 가능
- 테스트 결과, 요청 헤더에는
User-Agent: ChatGPT-User/1.0이 포함되며, IP는 Microsoft Azure Cloud (아이오와주 Des Moines) 로 확인됨
보안 검증: 데이터 유출 가능성 여부
-
container.download가 데이터 유출 취약점이 될 수 있는지 실험 진행- 쿼리 문자열을 포함한 URL 호출 시 “url not viewed in conversation before” 오류 발생
- 이는 Claude의 Web Fetch와 유사한 URL 접근 제한 안전장치로, 사용자 입력 또는 검색 결과로 확인된 URL만 접근 가능
-
web.run을 통한 일부 쿼리 문자열 전달은 가능했으나, 이전 대화 이력을 포함한 긴 문자열은 필터에 의해 차단됨 - 현재까지의 실험에서는 데이터 유출 위험이 낮은 것으로 판단, 추가 보안 연구 필요성 언급
Bash 및 다중 언어 실행
- Bash 실행 지원으로 ChatGPT는 시스템 수준 명령 수행이 가능해짐
- 예:
npm install명령 실행 및 결과 확인 가능
- 예:
- Activity 패널의 실행 로그(흑백 콘솔 로그) 를 통해 실제 명령 실행 여부 검증 가능
- 다양한 언어에서 “Hello World” 실행 테스트 성공, 다중 언어 코드 실행 환경 확인
pip 및 npm 패키지 설치 메커니즘
- 컨테이너는 외부 네트워크 차단 상태에서도 OpenAI 내부 프록시(applied-caas-gateway1.internal.api.openai.org) 를 통해 패키지 설치 수행
-
PIP_INDEX_URL,NPM_CONFIG_REGISTRY등 환경변수가 해당 프록시를 가리킴
-
-
pip,uv,npm등 주요 패키지 관리자가 이 프록시를 통해 작동 - 환경 변수에는 CAAS_ARTIFACTORY_* 접두어를 가진 다양한 레지스트리 경로 포함
- PyPI, npm, Go, Maven, Gradle, Cargo, Docker 등 다수의 내부 저장소 경로 존재
- Rust와 Docker는 아직 설치되어 있지 않지만, 향후 확장 가능성을 시사
통합 활용 및 향후 과제
- ChatGPT는 이제 Python·Node.js 패키지를 설치하고, 업로드 또는 다운로드한 파일에 적용 가능
- 코드 작성, 실행, 데이터 처리, 파일 입출력까지 완전한 개발 환경 수준의 기능 확보
- 가장 큰 부족점은 공식 문서 부재로, 릴리스 노트 및 세부 제한사항 공개 필요
- OpenAI가 이 기능군에 적절한 명칭을 부여해야 하며, 임시로 “ChatGPT Containers”로 명명됨
ChatGPT 도구 전체 목록 요약
- GPT-5.2 환경에서 사용 가능한 도구 목록이 공개됨
- python.exec, web.run, container.exec, container.download, image_gen.text2im 등 포함
- 각 도구는 명확한 설명(description) 과 시그니처(signature) 를 가짐
-
container.exec은 명령 실행,container.feed_chars는 인터랙티브 세션 입력,container.open_image는 이미지 표시 기능 제공 -
bio.update,personal_context.search,user_settings.set_setting등 사용자 맞춤형 기능도 포함 - 전체적으로 ChatGPT는 코드 실행·웹 접근·파일 처리·사용자 컨텍스트 관리를 통합한 복합형 AI 환경으로 진화
Hacker News 의견들
-
나는 기술 지원 직군에서 일하면서 Python에 익숙하지만 개발자는 아님
그런데 최근 몇 주 사이에 Gemini와 Claude가 나에게 “컴퓨터를 사용할 수 있나요?”라고 물어봤음
나는 “어떤 컴퓨터? 내 컴퓨터? 아니면 너희가 가진 컴퓨터?”라고 되물었음
무료 브라우저 버전을 쓰고 있어서 내 컴퓨터를 직접 쓸 수 있을 거라곤 생각 못 했는데, 알고 보니 그들만의 환경에서 Python 스크립트를 실행하고 있었음
계산 문제를 해결하기 위해 LLM에게 실제 컴퓨터를 제공한 아이디어가 누가 처음 생각한 건지 궁금해졌음
또 Nano Banana를 프롬프트로 돌릴 때 Gemini가 이미지 생성기를 3인칭으로 언급하길래 “거북이 위의 거북이” 같은 느낌이었음 -
우리 경험상 에이전트에게 Linux 환경을 주면 복합적인 이점이 생김
일반 도구로는 처리하기 어려운 이상한 상황을 스스로 해결함
예를 들어, .png로 이름 붙은 파일이 실제로는 jpeg일 때 매직 바이트를 읽어 올바르게 처리함- 나도 프린트 온 디맨드 워크플로에서 비슷한 경험을 했음
Vision 모델로 ICC 프로파일이나 잉크 밀도를 검증하려 했지만 자주 헛소리를 함
결국 에이전트에게 ImageMagick 접근 권한을 줘서 직접 분석하게 했고, 그게 유일하게 신뢰할 수 있는 방법이었음
그렇지 않으면 실패한 인쇄물 비용을 내가 떠안게 됨 - 매직 바이트 읽기는 사실 간단한 기능임
대부분의 Linux 이미지 뷰어나 편집기는 이미 확장자 대신 매직 바이트로 파일 형식을 판별함
Microsoft의 확장자 의존 설계가 이런 문제를 만든 원인이라고 생각함 - 이런 일을 LLM이 해야 할 정도로 특별한 건지 모르겠음
사람이라면 일반적인 Unix 도구로 몇 초 만에 할 수 있는 일임
- 나도 프린트 온 디맨드 워크플로에서 비슷한 경험을 했음
-
기본 ChatGPT도 이제 Node.js, Ruby, Perl, PHP, Go, Java, Swift, Kotlin, C, C++ 등에서 코드를 실행할 수 있음
공식 릴리스 노트에는 없지만 무료 계정에서도 확인됨- 나는 .deb 파일을 제공해서 D 언어 컴파일러 DMD를 설치할 수 있었음
공유 링크 - 아쉽게도 C# 은 목록에 없음
- 나는 .deb 파일을 제공해서 D 언어 컴파일러 DMD를 설치할 수 있었음
-
“gmail (read-only)” 같은 항목이 보여서 놀랐음
ChatGPT Android 앱은 그런 권한이 없다고 하는데, Gmail 읽기 접근은 어떤 맥락에서 가능한 건지 궁금함- 나는 ChatGPT 웹앱에서 그걸 봤음
iPhone 앱에서도 gmail.과 gcal. 기능이 보였음
공유 예시
아마 Mashable 기사에 나온 기능일 듯함
사용자가 직접 옵트인 설정을 해야 활성화되는 것 같음
- 나는 ChatGPT 웹앱에서 그걸 봤음
-
요즘 모든 회사가 툴 호출(tool calling) 기능을 자사 플랫폼 안에 묶어두려는 경쟁을 하는 것 같음
결국 로컬 환경에서 모델이 거의 모든 작업을 수행할 수 있게 되면 샌드박스 논의도 의미가 줄어들 것 같음
지속형 가상 개발 환경을 언제쯤 제공할지 궁금함- 나는 vibebin 프로젝트를 진행 중인데,
AI 코딩 툴이나 에이전트를 격리된 환경에서 운영하는 시도는 여전히 가치 있다고 생각함
대부분의 개발자는 일반 GPT 웹 UI보다 이런 특화된 코딩 도구를 쓸 것 같음 -
Claude Code for the web은 이미 일종의 지속형 가상 개발 환경임
세션을 시작해 작업하다가 하루 뒤에 돌아와도 파일 시스템 상태가 그대로 유지됨
아마도 객체 스토리지를 활용해 비용을 낮추는 구조일 듯함
참고로 Fly의 Sprites.dev 설계 글도 흥미로움 - 이런 흐름 때문에 Anthropic이 Bun을 인수한 것 같음
- 많은 기업이 이런 방향으로 가고 있음
로컬 하드웨어 대신 얇은 클라이언트만 두고, 실제 워크로드는 Microsoft 같은 곳에 맡기는 구조임
개인적으로는 로컬 개발 환경이 없는 건 지옥 같지만, 시대의 흐름이 그쪽으로 가는 듯함
- 나는 vibebin 프로젝트를 진행 중인데,
-
이 기능은 시간을 엄청 절약하거나, 아니면 교육적인 장애(outage) 를 만들어낼 것 같음
- 만약 에이전트가 스스로 모델을 업데이트할 수 있다면, 그건 모델에게만 교육이 될 뿐일 것임
-
Simon의 탐정 같은 발견이 멋짐
이런 “발견형 포스트”는 공식 발표보다 훨씬 흥미로움- 맞음, 사람들이 직접 찾아내고 공유할 때 생기는 창의적 에너지가 있음
단순한 보도자료보다 훨씬 영감을 줌
- 맞음, 사람들이 직접 찾아내고 공유할 때 생기는 창의적 에너지가 있음
-
곧 ChatGPT가 일회용 앱(single-use app) 을 즉석에서 만들어주는 시대가 올 것 같음
브라우저 안에서 클라우드 샌드박스 앱을 생성해 목표를 달성하고, 끝나면 바로 폐기하는 식임- 이미 이런 기능을 구현한 사례가 있음
- 예를 들어 exe.dev나 sprites.dev 같은 대안이 존재함