Gemini CLI v0.37.0: 브라우저 에이전트·Hooks·권한 계층화로 터미널 도구가 풀스택 에이전트로

Gemini CLI v0.37.0의 headless 브라우저 에이전트 아키텍처, 조건부 Hooks 시스템, 4단계 권한 레벨과 감사 로그, /rewind 컨텍스트 롤백을 Claude Code의 MCP 방식과 비교해 정리한다.

2026-08-14 · 최초 발행 2026-05-05

Google이 2025년 5월 공개한 Gemini CLI v0.37.0은 단순한 마이너 업데이트를 넘어 터미널 기반 AI 에이전트의 새로운 설계 방향을 제시한다. 실험적 브라우저 에이전트 기능, 이벤트 기반 Hooks 시스템, /rewind 명령어, Agent Skills 지원이 동시에 도입됐으며, Gemini 3 모델과의 통합은 Google AI Ultra 구독자부터 단계적으로 롤아웃된다. 이 릴리스는 CLI 도구가 단순 코드 생성 보조에서 벗어나 브라우저 조작·파일 시스템 접근·외부 서비스 호출을 자율적으로 수행하는 풀스택 에이전트로 진화하는 전환점을 보여준다.

한 릴리스에 몰린 기능들

v0.37.0은 이전 버전 대비 가장 많은 수의 기능이 동시에 투입된 릴리스다. 실험적(Experimental) 범주에는 headless Chrome/Chromium을 통한 웹 자동화인 브라우저 에이전트(Browser Agent)와, 대화 컨텍스트 롤백·분기 재실행을 담당하는 /rewind 명령어가 들어간다. 정식 기능(General Availability)으로는 사전·사후 이벤트 기반 자동화 파이프라인인 Hooks 시스템, 재사용 가능한 에이전트 능력 모듈을 등록·호출하는 Agent Skills, 샌드박스 실행·권한 최소화·감사 로그로 구성된 보안 강화가 포함된다. 구독 기반 롤아웃으로는 Google AI Ultra 구독자에게 우선 제공되는 Gemini 3 모델 통합이 있고, 이후 Google One AI Premium과 기업 고객으로 순차 확대된다. 이 조합은 CLI 에이전트가 로컬 개발 환경 안에서 브라우저 조작, 조건부 워크플로우, 역할별 스킬 분리를 모두 처리할 수 있는 기반이 된다.

Gemini 3는 멀티모달 추론 성능과 긴 컨텍스트 처리 능력이 이전 세대보다 크게 향상된 모델이다. Gemini CLI와의 통합에서 특히 주목할 점은 브라우저 에이전트가 생성하는 대용량 DOM 스냅샷과 스크린샷 데이터를 컨텍스트로 처리하는 데 긴 컨텍스트 윈도우가 직접 활용된다는 것이다. Ultra 구독자 우선 롤아웃 전략은 고부하 실험 기능의 안정성 검증을 위한 단계적 배포다. 브라우저 에이전트처럼 외부 네트워크와 상호작용하는 기능은 예상치 못한 엣지 케이스가 많기 때문에, 헤비 유저 집단에서 먼저 피드백을 모은 뒤 일반 사용자로 확대하는 방식은 기술적으로 합리적인 선택이다.

화면 전체 대신 접근성 트리만 읽는다

Gemini CLI의 브라우저 에이전트는 Playwright 또는 Puppeteer 기반의 headless Chrome 인스턴스를 로컬에서 제어하는 방식으로 동작한다. 에이전트가 "이 페이지에서 로그인하고 대시보드 데이터를 가져와라"는 지시를 받으면 내부적으로 다음과 같은 액션 실행 루프가 돈다.

없음있음클릭입력스크롤대기아니오사용자 자연어 명령Gemini 3 LLM의도 파싱·액션 계획 수립브라우저 세션활성 여부?headless Chrome인스턴스 생성기존 세션 재사용페이지 탐색navigator.goto()DOM 스냅샷 캡처Accessibility Tree 추출LLM 컨텍스트 주입다음 액션 결정액션 유형?element.click()element.fill()page.scroll()waitForSelector()액션 결과 관찰목표 달성?결과 추출·반환사용자에게 출력

액션 실행 루프의 핵심은 DOM 스냅샷을 LLM이 이해할 수 있는 구조로 변환하는 단계다. 전체 HTML을 그대로 LLM에 넣는 것은 토큰 낭비와 노이즈 문제를 일으키기 때문에, Accessibility Tree(접근성 트리)를 우선 추출해 인터랙티브 요소의 역할·이름·상태만 압축 전달한다. 이 방식은 시각 장애인용 스크린리더가 페이지를 이해하는 방식과 동일하며, 토큰 효율을 3~5배 높이는 효과가 있다.

브라우저 에이전트의 정확도는 DOM 파싱 품질에 크게 좌우된다. Gemini CLI는 세 레이어의 정보를 계층적으로 추출한다. 레이어 1인 구조적 컨텍스트는 페이지 제목·URL·주요 랜드마크(header, main, nav, footer)의 계층 구조로, LLM이 현재 어느 페이지의 어느 섹션에 있는지 파악하는 기반이 된다. 레이어 2인 인터랙티브 요소 인덱스는 버튼·링크·입력 필드·선택 박스 등 클릭·입력 가능한 모든 요소를 순번과 함께 열거해, LLM이 [12]번 요소 클릭 형태의 구조화된 액션을 생성하도록 한다. 레이어 3인 텍스트 콘텐츠 스니펫은 에이전트가 읽어야 하는 가격·상태 값·에러 메시지 같은 데이터가 포함된 영역의 텍스트를 추출한다. 이 계층 분리 전략은 LLM이 불필요한 스타일 속성이나 스크립트 태그를 처리하는 데 토큰을 낭비하지 않도록 한다.

현재 v0.37.0에서 브라우저 에이전트는 명시적으로 --experimental 플래그가 필요하며, JavaScript 헤비 SPA(React, Vue, Angular)에서 동적 요소 감지 정확도가 낮을 수 있고, CAPTCHA·2FA·생체인증 기반 페이지는 자동화가 불가능하며, 세션 쿠키 관리와 보안 토큰 갱신은 개발자가 별도 처리해야 하고, 병렬 탭 제어는 아직 지원되지 않는다는 제약이 있다. 이런 한계는 향후 릴리스에서 단계적으로 해소될 예정이며, 현재는 단순 데이터 조회·폼 자동화·반복적 웹 작업에 활용하는 것이 현실적이다.

조건에 따라 발동하는 Hooks와 재사용 가능한 Skills

Hooks 시스템은 Gemini CLI가 실행하는 특정 이벤트 시점에 사용자 정의 스크립트나 명령어를 자동으로 실행하는 메커니즘이다. Claude Code의 Hooks 시스템과 개념적으로 유사하며, AI 에이전트의 행동을 외부 시스템과 연결하는 통합 계층 역할을 한다.

있음없음Gemini CLI세션 시작pre-session hook환경 초기화·인증 확인사용자 입력프롬프트 수신pre-tool hook도구 실행 검증도구 실행(파일·브라우저·명령어)post-tool hook결과 로깅·알림추가 작업?post-session hook정리·보고서 생성세션 종료

pre-session hook은 세션 시작 전 .env 파일 유효성 검사, API 키 만료 여부 확인, 작업 디렉토리 백업 생성, 팀 슬랙 채널에 "에이전트 세션 시작" 알림 발송 같은 용도로 쓰인다. pre-tool hook은 파일 삭제 명령 실행 전 확인 메시지 표시, 외부 API 호출 전 비용 예상액 계산, 네트워크 요청 전 허용 도메인 화이트리스트 검사에 쓰인다. post-tool hook은 변경된 파일 자동 git commit, 생성된 코드 lint·포맷터 자동 실행, 작업 결과를 JIRA 티켓에 코멘트로 기록하는 데 쓰인다. post-session hook은 세션 중 수행된 모든 액션의 감사 보고서 생성, 비용 집계·팀 예산 시스템 연동, 임시 파일 정리를 담당한다.

v0.37.0의 Hooks 시스템은 단순 스크립트 실행을 넘어 조건부 실행(Conditional Execution)을 지원한다. 훅 설정 파일(.gemini/hooks.yaml)에서 조건식을 정의하면 특정 조건이 충족될 때만 훅이 발동한다.

hooks:
  pre-tool:
    - condition: "tool.name == 'shell' && tool.command.startsWith('rm')"
      action: "confirm"
      message: "파일 삭제 명령이 감지되었습니다. 계속하시겠습니까?"
    - condition: "tool.name == 'browser' && session.cost > 0.5"
      action: "notify"
      channel: "slack"
      message: "브라우저 에이전트 비용이 $0.5를 초과했습니다."
  post-tool:
    - condition: "tool.name == 'write_file'"
      action: "exec"
      command: "git add -A && git commit -m 'auto: gemini agent changes'"

훅 체이닝(Hook Chaining)은 한 훅의 출력이 다음 훅의 입력이 되는 파이프라인 구성을 가능하게 한다. 예를 들어 post-tool 훅에서 코드 품질 검사를 실행하고, 그 결과가 특정 임계값을 하회하면 추가 리뷰 훅을 트리거하는 방식이다.

Agent Skills는 특정 작업 영역에 특화된 에이전트 행동 패턴을 모듈로 패키징해 재사용하는 시스템으로, Claude Code의 커스텀 슬래시 커맨드나 .claude/skills 디렉토리 구조와 개념이 비슷하다. Skills는 .gemini/skills/ 디렉토리에 YAML 형식으로 정의되며, 각 스킬은 자연어 키워드나 명시적 /skill-name 호출인 트리거 조건, 특정 도메인에 최적화된 지시문인 시스템 프롬프트 오버라이드, 해당 스킬이 사용할 수 있는 도구를 제한하는 허용 도구 목록, 결과를 구조화된 형태로 반환하는 출력 형식 템플릿으로 구성된다. 예를 들어 "코드 리뷰" 스킬은 파일 읽기와 쓰기 도구만 허용하고 브라우저나 셸 실행 도구를 비활성화함으로써, 코드 리뷰 작업이 의도치 않게 외부 시스템에 접근하는 것을 막는다.

권한을 계층화하고 불변 감사 로그를 남긴다

v0.37.0의 보안 강화는 크게 세 축으로 나뉜다. 첫 번째는 샌드박스 실행이다. 에이전트가 실행하는 셸 명령어와 스크립트는 기본적으로 제한된 컨테이너 환경 또는 chroot jail 내에서 실행되어 호스트 시스템에 대한 직접적인 접근을 차단한다.

파일 읽기파일 쓰기 명령어브라우저네트워크 요청Gemini CLI에이전트 요청실행 유형?샌드박스 없음직접 접근 허용허용 경로 화이트리스트검증 실행샌드박스 컨테이너또는 chroot jail격리된 Chrome 프로필쿠키·스토리지 분리도메인 화이트리스트아웃바운드 필터링실행 결과 캡처감사 로그 기록에이전트 컨텍스트로 반환

파일 시스템 접근의 경우 사용자가 지정한 워크스페이스 디렉토리 외부로의 접근을 기본 차단한다. 에이전트가 /etc/passwd나 SSH 키 파일에 접근하려는 시도는 권한 오류로 차단되며, 이 시도 자체가 감사 로그에 기록된다.

Gemini CLI v0.37.0은 최소 권한 원칙(Principle of Least Privilege)을 에이전트 레벨에서 구현한다. 각 에이전트 세션은 작업 유형에 따라 필요한 권한만 부여받으며, 권한 에스컬레이션은 명시적 사용자 승인 없이 불가능하다. 권한은 네 레벨로 계층화된다. READ-ONLY는 파일 읽기, 브라우저 스크린샷, 환경변수 조회만 허용하며 코드 분석·문서 요약·진단 작업에 쓰인다. READ-WRITE는 READ-ONLY 권한에 파일 쓰기를 더해 코드 생성·리팩토링 작업에 쓰인다. EXECUTE는 READ-WRITE 권한에 셸 명령어 실행을 더해 테스트 실행·빌드 자동화에 쓰인다. FULL은 브라우저 에이전트·네트워크 요청·외부 API 호출을 포함한 모든 도구를 허용하며 명시적 활성화가 필요하다. 기본 세션은 READ-ONLY로 시작하며, 사용자가 명시적으로 승인할 때마다 권한 레벨이 상승한다. 이 접근법은 에이전트가 실수로 중요 파일을 삭제하거나 예상치 못한 외부 API를 호출하는 사고를 예방한다.

v0.37.0의 감사 로그(Audit Log)는 에이전트가 수행한 모든 액션의 불변(immutable) 기록을 남긴다. 로그는 ~/.gemini/audit/ 디렉토리에 JSON Lines 형식으로 저장되며, 각 항목에는 ISO 8601 밀리초 정밀도의 타임스탬프, 세션 ID와 사용자 식별자, 요청된 도구 이름과 인자, 권한 검사 결과(허용/거부), 실행 결과(성공/실패, 출력 해시), 소요 시간과 토큰 비용이 포함된다. 이 로그는 보안 감사와 디버깅 목적 외에도 에이전트의 비용 추적과 성능 분석에 활용되며, 기업 환경에서는 SIEM(보안 정보 및 이벤트 관리) 시스템에 연동해 이상 행동 패턴을 실시간 탐지할 수 있다.

되돌아가는 명령과 CLI별로 다른 브라우저 자동화 선택

/rewind 명령어는 현재 대화 컨텍스트를 특정 시점으로 되돌리는 기능이다. 에이전트가 잘못된 방향으로 작업을 진행했을 때 전체 세션을 재시작하지 않고 분기점으로 돌아가 다른 접근법을 시도할 수 있다. 예를 들어 에이전트가 리팩토링 작업 중 "함수를 클래스로 변환" 방향을 선택했지만 개발자가 "컴포지션 패턴으로 가야 한다"고 판단했을 때, /rewind 3 명령으로 3번의 AI 응답 이전 상태로 돌아가 다른 설계 방향을 지시할 수 있다. Claude Code의 대화 내역 관리 방식과 비교하면 선택적 롤백이 가능하다는 점에서 탐색적 코딩(Exploratory Coding) 시나리오에서 유용하다. 다만 현재는 실험적 기능으로, 파일 시스템에 가해진 실제 변경 사항(파일 생성·삭제·수정)은 롤백되지 않고 컨텍스트 윈도우만 되돌아간다는 점을 명확히 이해해야 한다.

두 CLI 도구는 브라우저 자동화를 서로 다른 방식으로 접근한다. Gemini CLI의 브라우저 에이전트는 LLM이 직접 브라우저 액션 계획을 수립하고 실행하는 완전 자율 루프 방식인 반면, Claude Code는 MCP(Model Context Protocol) 서버를 통해 Playwright 또는 Chrome DevTools MCP를 연결하는 도구 위임 방식을 취한다. 트레이드오프는 명확하다. Gemini CLI 방식은 설정이 단순하고 자연어 지시가 즉시 브라우저 액션으로 변환되는 장점이 있지만, 복잡한 인증 플로우나 동적 SPA에서 안정성이 낮다. Claude Code의 MCP 방식은 초기 MCP 서버 설정이 필요하지만 Playwright의 안정적인 셀렉터 시스템과 대기 메커니즘을 그대로 활용할 수 있어 복잡한 웹 자동화에 더 신뢰할 수 있다. 실용적 선택 기준은 작업의 복잡도와 반복성이다 — 일회성 데이터 조회나 단순 폼 자동화는 Gemini CLI의 브라우저 에이전트가 빠르고 편리하며, 정교한 웹 스크래핑이나 E2E 테스트 자동화는 MCP 기반 접근이 더 안정적이다.

Gemini CLI v0.37.0은 터미널 기반 AI 에이전트가 브라우저 조작, 이벤트 기반 자동화, 계층적 보안 모델을 한 도구 안에서 통합하는 방향으로 진화하고 있음을 보여준다. 실험적 브라우저 에이전트와 Hooks 시스템은 아직 성숙도가 낮지만, 이 설계 방향은 AI 코딩 에이전트가 코드 생성 보조를 넘어 실제 업무 워크플로우 전체를 자율적으로 처리하는 풀스택 에이전트로 전환되는 흐름을 명확히 가리킨다. Google AI Ultra 구독자를 선두로 한 단계적 롤아웃은 기능 안정성을 보장하면서도 조기 채택자에게 경쟁 우위를 제공하는 전략적 선택이며, Gemini 3의 긴 컨텍스트 처리 능력은 브라우저 에이전트가 복잡한 웹 시나리오를 처리하는 데 결정적 역할을 할 것으로 기대된다.

Sources

Gemini CLI브라우저 에이전트Hooks 시스템Agent Skills터미널 AI 에이전트