Chat On Steroids: 승인한 폴더 내에서 ChatGPT가 파일과 터미널을 다루도록 하는 로컬 MCP 앱

Chat On Steroids 소개

브라우저에서 쓰는 대화형 모델은 코드를 잘 읽고 잘 고쳐 주지만, 그 결과를 실제 프로젝트에 반영하는 일은 사람이 직접 합니다. 대화창에 붙여 넣을 파일을 고르고, 답으로 돌아온 코드를 편집기에 옮기고, 테스트를 돌린 뒤 그 출력을 다시 대화창에 붙여 넣는 왕복이 반복됩니다. 코드를 고치는 능력은 이미 대화 쪽에 있는데 파일과 터미널에 닿는 통로가 없어서 생기는 간극입니다.

이번에 소개할 Chat On Steroids (이하 CoS)는 그 통로를 로컬 데스크톱 앱으로 만든 프로젝트입니다. 앱이 MCP(Model Context Protocol) 서버를 자기 컴퓨터에 띄우고, 사용자가 그것을 ChatGPT의 개발자 모드에 커스텀 앱으로 등록하면, 대화 중인 모델이 사용자가 승인한 폴더의 파일을 읽고 고치거나 터미널 명령을 실행할 수 있게 됩니다. 함께 제공되는 Chrome 확장 프로그램이 대화 화면과 로컬 앱을 짝지어, 어느 대화가 어떤 로컬 세션에 속하는지 확인합니다.

CoS는 Electron 기반 데스크톱 앱으로 Windows와 macOS, Linux용 패키지가 함께 배포됩니다. 저장소는 프로젝트가 OpenAI와 무관한 독립 프로젝트이며 ChatGPT와 Codex가 OpenAI의 상표라는 점, 그리고 현재 한 명이 유지보수하는 베타라는 점을 문서 여러 곳에 적어 두었습니다. 별도의 API 키를 발급받는 대신 사용자가 이미 쓰고 있는 ChatGPT 계정의 대화를 그대로 쓰는 구조여서, 계정에 걸린 모델 가용 범위와 사용량 한도, 컨텍스트 한도가 그대로 적용됩니다.

Chat On Steroids와 다른 연결 방식의 차이

브라우저의 대화와 로컬 작업을 잇는 방법은 여러 갈래로 나뉘어 있고, 갈리는 지점은 모델이 실행되는 곳과 로컬에 쓰기 권한을 주는지입니다. 세 가지 접근을 비교하면 다음과 같습니다:

접근 방식 모델이 도는 곳 로컬 쓰기와 명령 실행
Chat On Steroids 브라우저의 ChatGPT 대화 승인한 폴더 안에서 파일 수정, 셸 명령은 폴더 제한 없음 이 글의 프로젝트
읽기 전용 연결 브라우저의 ChatGPT 대화 없음, 필요한 줄만 읽어 감 Codex with ChatGPT
독립 코딩 에이전트 로컬에서 도는 별도 프로세스 에이전트 자신의 권한 체계를 따름 Codex CLI

이 가운데 읽기 전용 연결은 대화에 설계와 검토를 맡기고 실제 수정은 다른 에이전트가 하도록 역할을 나눕니다. CoS는 반대 방향으로, 수정과 실행까지 같은 대화 안에서 끝내는 대신 권한 경계를 앱 쪽에 두고 사용자가 직접 켜고 끄게 합니다. 데스크톱 화면을 보고 조작하는 능력까지 필요하다면 pi-computer-useopen-computer-use처럼 컴퓨터 사용에만 집중한 도구도 있는데, CoS는 그 기능을 선택형 커넥터로 함께 담고 있습니다.

Chat On Steroids는 누구에게 맞는가

ChatGPT 구독을 이미 쓰고 있고 대화창과 편집기 사이를 오가는 복사 붙여넣기를 줄이고 싶은 개인 개발자라면 CoS가 그 간극을 바로 메워 줍니다. 승인 폴더 단위로 권한을 주고 읽기 전용 모드로 쓰기를 통째로 막을 수 있어서, 처음에는 좁게 열어 두고 필요할 때 넓히는 방식이 가능합니다.

반대로 조직의 관리 정책 아래 배포해야 하는 팀에게는 현재 시점의 CoS가 적절한 선택이 아닙니다. 저장소는 릴리즈 바이너리가 게시자 서명을 받지 않았고 macOS 빌드는 공증도 되어 있지 않다고 명시하면서, 실행 전에 릴리즈의 SHA-256 체크섬을 확인하라고 안내합니다. 한 명이 유지보수하는 베타라 버그 바운티나 응답 시간 보장이 없다는 점, 그리고 셸 명령 실행 권한은 승인 폴더로 제한되지 않고 로그인 사용자의 권한을 그대로 갖는다는 점도 저장소가 직접 밝혀 둔 내용입니다. Linux에서는 데스크톱 제어 커넥터를 쓸 수 없습니다.

Chat On Steroids의 세 가지 커넥터

CoS가 ChatGPT에 등록하는 커넥터는 세 갈래이고, 각각 별도의 탐색 경계와 권한 경계를 가지며 서로 다른 비밀 경로를 씁니다. 커넥터마다 열리는 능력은 다음과 같습니다:

Core 커넥터는 모든 플랫폼에서 제공되는 기본 통로로, 승인한 폴더의 파일 읽기와 이미지 보기, 패치 적용, 명령 실행, 표준 입력 쓰기, 세션 기록 조회, 작업자 관리 도구를 담당합니다. 파일 수정 도구는 V4A 패치 형식을 쓰고 여러 파일을 한꺼번에 고칠 때 먼저 예행 검사를 돌리며, 생성과 편집, 이동, 삭제 권한을 각각 따로 확인합니다. 디렉토리 삭제와 임의의 이진 파일 쓰기는 패치 연산에 넣지 않았다고 도구 문서가 밝히고 있습니다.

Desktop 커넥터는 화면 관찰과 마우스, 키보드, 클립보드를 다루는 선택형 통로입니다. Windows와 macOS에서만 제공되고 macOS에서는 기본으로 꺼진 상태이며, 운영체제의 화면 기록과 손쉬운 사용 권한을 따로 허용해야 동작합니다. Plugins 커넥터는 외부 MCP 서버를 붙이는 세 번째 통로로, Blender MCPPlaywright 브라우저, 지식 메모리, 웹 가져오기, Unity 에디터 같은 사전 검증된 레시피와 사용자가 지정한 로컬 실행 파일 또는 원격 MCP 주소를 지원합니다.

Chat On Steroids의 권한 경계

CoS가 스스로를 규정하는 방식은 ChatGPT와 로그인한 운영체제 사용자 사이에 놓인 권한 경계입니다. 설정 화면에서 어떤 능력을 열지와 어느 폴더를 승인할지를 직접 고르게 되어 있습니다:

파일 도구는 사용자가 승인한 폴더를 기준으로 경로를 검증하고, 읽기 전용 모드를 켜면 파일 쓰기와 명령 실행, 데스크톱 제어, 클립보드 쓰기가 모두 막힙니다. MCP 서버는 루프백에만 바인딩되고 비밀 토큰 경로를 쓰므로, 외부에서 닿을 수 있는 경로는 사용자가 직접 설정한 터널뿐입니다. 저장된 자격 증명은 Electron의 safeStorage를 거쳐 Windows DPAPI와 macOS 키체인, Linux의 보안 저장소에 들어갑니다.

다만 저장소가 한계로 미리 적어 둔 항목도 함께 봐야 합니다. 앱의 경로 검사는 커널이나 가상 머신 수준의 격리가 아니어서 같은 사용자 권한으로 도는 다른 프로세스와의 경합은 남아 있고, 세션 기록은 의도적으로 상세하며 safeStorage로 암호화되지 않아 같은 운영체제 계정에 접근할 수 있는 사람은 읽을 수 있습니다. 새로 설치하면 Core 권한이 켜진 상태로 시작하고 읽기 전용 모드는 꺼져 있으므로, ChatGPT에 연결하기 전에 권한을 한 번 훑어보는 편이 좋습니다.

Chat On Steroids의 세션과 작업자

CoS의 세션 기록은 특정 ChatGPT 탭이 아니라 로컬 세션에 속합니다. 확장 프로그램이 주고받은 메시지와 실제 로컬 도구 실행 결과를 함께 기록해 두기 때문에, 앱과 모델이 나중에 이전 작업을 다시 읽을 수 있습니다. 기록은 로컬에 저장되고 기본 보관 기간은 30일입니다.

대화가 길어져 컨텍스트가 차면 Compact & Resume이 인수인계 요약을 만들고 새 대화를 시작한 뒤 같은 세션에 다시 묶습니다. 작업과 작업자 기록이 함께 옮겨 가므로 이어서 지시할 수 있습니다. 작업자(worker)는 독립적인 일을 나눠 맡는 단위로, 끝난 뒤에도 자기 대화를 유지해 후속 지시를 받으면 그 맥락에서 이어 갑니다. 기본값은 계열당 두 개이고 여덟 개까지 늘릴 수 있습니다. 이 밖에 Goal은 남은 작업을 따라가다 완료로 판단하면 아무것도 보내지 않고 멈추며, Loop는 사용자가 끌 때까지 주어진 범위 안에서 계속 작업합니다.

Chat On Steroids 설치와 사용

설치는 운영체제에 맞는 패키지를 릴리즈 페이지에서 받는 방식이며, Windows 10과 11, macOS 13 Ventura 이상, 최신 데스크톱 Linux를 지원합니다. Chrome 116 이상 또는 최신 Edge, 그리고 개발자 모드와 커스텀 MCP 앱을 쓸 수 있는 ChatGPT 계정이 필요합니다. 저장소가 안내하는 첫 실행 순서는 다섯 단계입니다.

  1. CoS를 설치해 실행한 뒤 Settings → Workspace 에서 프로젝트 폴더를 승인하고 도구 권한을 확인합니다.
  2. Settings → Setup 에서 터널을 설정하고 연결을 누릅니다.
  3. ChatGPT의 개발자 모드에서 Core 앱을 추가하고 동작을 검토해 활성화합니다.
  4. Open extension folder 로 확장 프로그램 폴더를 열고, chrome://extensions 에서 개발자 모드를 켠 뒤 압축 해제된 확장 프로그램으로 불러옵니다. 짝짓기는 자동으로 이뤄집니다.
  5. 프로젝트와 모델을 고르고 요청을 작성해 보냅니다.

여기서 터널은 OpenAI의 Secure MCP Tunnel을 쓰는 경로가 기본입니다. ChatGPT에서 쓰는 것과 같은 워크스페이스에 터널을 만들고, Tunnels: ReadTunnels: Use 권한만 가진 제한된 API 키를 발급해 CoS에 입력합니다. Cloudflare의 빠른 터널이나 사용자가 직접 운영하는 HTTPS 터널도 쓸 수 있는데, 이때 표시되는 무작위 경로는 비밀번호처럼 다뤄야 합니다. Core와 Desktop, Plugins는 각각 별도 커넥터이므로 쓰려는 통로마다 설정을 따로 해야 합니다.

소스에서 직접 빌드하려면 저장소를 받아 다음 명령으로 개발 환경을 준비합니다:

npm ci
npm run dev
npm run verify

패키지 빌드는 대상 운영체제에서 수행해야 하며, 목표 플랫폼별로 명령이 나뉘어 있습니다:

npm run dist:x64          # Windows x64
npm run dist:arm64        # Windows ARM64
npm run dist:mac:x64      # macOS Intel
npm run dist:mac:arm64    # macOS Apple silicon
npm run dist:linux:x64    # Linux x64
npm run dist:linux:arm64  # Linux ARM64

앱을 고치기 전에는 AGENTS.md를, 풀 리퀘스트를 열기 전에는 CONTRIBUTING.md를 읽으라고 저장소가 안내하고 있습니다. 업데이트한 뒤에는 확장 프로그램을 다시 불러오는 것과 ChatGPT 쪽 앱을 새로 고치는 것이 서로 다른 두 단계라는 점에 주의해야 합니다.

Chat On Steroids의 라이선스

Chat On Steroids는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

단, 배포 패키지에는 다른 라이선스를 따르는 구성 요소가 함께 들어 있습니다. 저장소의 docs/licenses/ 아래에 네이티브 구성 요소의 GPL-3.0과 LGPL-3.0, MPL-2.0 전문과 구성 요소별 고지, 소스 빌드 안내가 따로 정리되어 있으므로, 패키지를 재배포하려면 이 디렉토리를 먼저 확인해야 합니다.

:books: Chat On Steroids 설정과 도움말 문서

:github: Chat On Steroids 프로젝트 GitHub 저장소

:wrapped_gift: Chat On Steroids 내려받기

더 읽어보기




이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:은 이런 글들을 한국어로 정리해 나누고 있습니다. 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드리고, 텔레그램(Telegram)Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 다음 글을 정리하는 데 힘이 됩니다~ :star_struck: