ChatGPT와 Claude가 화면을 봤다

발행: (2026년 6월 18일 PM 07:48 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

ChatGPT와 Claude는 훌륭합니다. 하지만 화면에 표시되는 내용을 볼 수 없습니다.
기본 워크플로우는 다음과 같습니다: 스크린샷을 촬영하고, ChatGPT로 전환하고, 붙여넣고, 질문하고, 다시 돌아가세요. 하루에 30번 하면 몇 시간이 소모됩니다.

이 문제를 해결하기 위해 Crade를 출시했습니다. macOS와 Windows용 앱으로, 화면 위에 떠 다니며 필요할 때 스크린샷을 촬영하고, 자체 ChatGPT 또는 Claude 계정으로 전송합니다. 스크린샷도 없고, 탭 전환도 없습니다.

이것이 바로 우리가 구축하면서 배운 것입니다.

AI를 어떤 방식으로 가져오느냐에 따라 세 가지 흐름があります:

** ChatGPT (free or paid OpenAI account)**: we OAuth into OpenAI, spawn the codex CLI as a subprocess. Each prompt becomes:
codex -p "your prompt" --image screenshot.png

The AI usage is billed by OpenAI directly to your account.

Claude (Pro/Max account): same pattern with the claude CLI:
claude -p "your prompt"
`—allowedTools “Read,Write,Edit,Bash,Glob,Grep,WebFetch” \—output-format stream-json —verbose`

Streaming JSON을 사용하면 도구 사용 이벤트를 실시간으로 표시할 수 있습니다.

내장된 계층: HTTP를 우리의 Cloudflare 워커로 보내고, 이를 통해 OpenAI(무료) 또는 Anthropic(프로)로 프록시합니다. 자체 AI를 사용하고 싶지 않은 사용자를 위해.

핵심은 BYO 모드에서는 우리는 중간에서 전혀 개입하지 않는다는 점입니다. 스크린샷이 사용자 기계에서 바로 OpenAI 또는 Anthropic로 전송됩니다.

수정: 창 레벨을 1500(kCGAssistiveTechHighWindowLevel)로 올립니다. VoiceOver와 같은 접근성 도구에서 사용하는 레벨이며, NSScreenSaverWindowLevel보다 높아서 우위에 있습니다.
window.setWindowLevel(1500) # kCGAssistiveTechHighWindowLevel

일부 앱이 저항하기 때문에 500ms 간격으로 정기적으로 다시 확인해 재확인합니다.

윈도우에서는 Qt.WindowStaysOnTopHint만 있으면 충분합니다. 브라우저는 같은 방식으로 경쟁하지 않습니다.

이곳에서 일부 독자를 화나게 만드는 부분은 우리가 Electron 대신 Python + PyQt6를 선택했다는 것입니다.

이유:

  • 윈도우 제어: macOS의 NSWindow에 직접 접근해 별도의 네이티브 모듈 없이 구현
  • 작은 설치 파일 크기: ~50MB(설치 파일) vs Electron의 100MB 이상
  • 서브프로세스 관리: Python에서 Claude와 Codex를 스폰하는 것이 매우 간단합니다.
  • 스크린샷 캡처는 Python 내에서 pyautogui와 네이티브 바인딩만 사용해 IPC 없이 진행

트레이드오프: PyInstaller 배포가 까다롭고, 기본 PyQt6 UI는 dated(실제 스타일시트를 적용해야 함)하며, 데스크톱 Python 개발자 인재 풀이 Electron보다 작습니다.
우리의 사용 사정에 맞춰 Worth it합니다. 여러분의 경우와는 다를 수 있습니다.

CLI 번들링: 초기에는 Claude와 Codex를 별도로 설치하도록 요구했으나, 앱 내에 번들링해 두니 온보딩이 10배 원활해졌습니다.

서명 및 notarization은 커밋 1부터 적용: macOS는 서명되지 않은 앱을 악성코드처럼 간주합니다. 우리는 그 점을 고통스럽게 배웠습니다.

OAuth 흐름에는 엣지 케이스가 있습니다: Anthropic의 “Grove notice”(2025년 10월 소비자 약관 업데이트)는 CLI에서 아직 수락하지 않은 사용자의 최초 실행에 문제를 일으킵니다. 현재는 연결 시 자동으로 수락합니다.

macOS의 파일 데스크립터 제한: GUI에서 시작된 앱은 기본적으로 256개의 파일 데스크립터 제한을 상속받습니다. Anthropic CLI는 더 많은 데스크립터가 필요합니다. 서브프로세스를 스폰하기 전에 rlimit을 올립니다.

Crade는 crade.ai에 있습니다. 무료 티어는 일상적인 사용을 커버합니다. Pro($7.99/월)과 Premium($19.99/월)은 더 높은 제한과 에이전트 모드(파일 시스템 + 셸 접근 권한)를 제공합니다.

다른 개발자들이 이 패턴을 기반으로 무엇을 구축할지 궁금합니다. 데스크톱 AI 도구를 위한 CLI-as-subprocess 접근법은 아직 충분히 탐구되지 않은 것 같습니다.

0 조회
Back to Blog

관련 글

더 보기 »

코드 리뷰가 잘못됐다

!Cover image for Code Review Gone Wronghttps://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Flavkesh.com%2F...