6P by GN⁺ 13시간전 | ★ favorite | 댓글 1개
  • Gemini CLI는 Google의 Gemini 모델을 터미널에서 직접 활용할 수 있는 오픈소스 AI 도우미로, 자연어 명령을 통해 코드 작성, 디버깅, 자동화 작업을 수행하는 대화형 명령줄 도구
  • 약 30개의 전문가용 팁을 통해 지속적 컨텍스트 관리(GEMINI.md), 사용자 정의 명령, MCP 서버 확장, 메모리 기능, 체크포인트 복원 등 고급 기능을 다룸
  • 파일·이미지 참조(@), YOLO 모드(자동 승인), 헤드리스 실행, 다중 디렉터리 작업, IDE 통합(VS Code) 등 개발 워크플로우 최적화 기능 제공
  • GitHub Action, 확장(Extensions), 텔레메트리, 토큰 캐싱 등 자동화·관찰·확장성 중심의 최신 기능 포함
  • Gemini CLI는 단순한 AI 채팅이 아닌 개발 환경 전반을 통합 제어하는 에이전틱 개발 플랫폼으로 진화 중

Gemini CLI 개요

  • Gemini CLI는 Google Gemini 모델을 터미널에서 직접 사용할 수 있는 AI 기반 명령줄 인터페이스
    • Node.js/TypeScript 기반으로 모든 주요 OS에서 동작
    • 자연어로 명령을 입력하면 코드 생성, 디버깅, 시스템 설정 등 다단계 작업 수행
  • 설치는 npm install -g @google/gemini-cli 또는 npx @google/gemini-cli로 가능
  • 인증은 Google 계정 로그인(무료) 또는 API 키(유료/엔터프라이즈) 방식 지원
    • 무료 계정은 분당 약 60회, 하루 1,000회 요청 가능
    • API 키 사용 시 데이터 보호 강화 및 로그 보존 정책 적용
  • 기본 실행은 gemini 명령으로 시작하며, / 명령(세션 제어)과 ! 명령(셸 실행)을 지원
    • 시스템 변경 시 사용자 승인(Y/n)을 요청하는 안전 모드 기본 활성화

Tip 1 — GEMINI.md를 통한 지속적 컨텍스트 관리

  • 프로젝트별 지침이나 배경 정보를 GEMINI.md 파일에 저장해 AI가 항상 동일한 컨텍스트로 응답
    • 예: 코딩 스타일, 아키텍처, 함수 규칙 등
  • 전역(~/.gemini/GEMINI.md)과 프로젝트별 .gemini/GEMINI.md를 계층적으로 병합
  • /memory show로 현재 로드된 컨텍스트 확인, /memory refresh로 갱신
  • /init 명령으로 기본 템플릿 생성 가능, @include로 다중 파일 불러오기 지원

Tip 2 — 사용자 정의 슬래시 명령 생성

  • 반복 작업을 자동화하는 커스텀 명령을 TOML 파일로 정의
    • 예: /test:gen → 요구사항 기반 Jest 테스트 생성
  • 전역(~/.gemini/commands/) 또는 프로젝트별(.gemini/commands/)로 등록 가능
  • 명령은 프롬프트 템플릿 기반으로 작동하며, 팀 간 공유 가능
  • 일관된 포맷팅, 역할 지정(예: /review:security) 등 워크플로우 표준화에 유용

Tip 3 — MCP 서버로 Gemini 확장

  • Model Context Protocol(MCP) 서버를 통해 외부 시스템과 연동
    • 예: Figma, Google Docs, Clipboard, 사내 DB 등
  • gemini mcp add 명령으로 서버 등록, settings.json에 구성 저장
  • /mcp 명령으로 등록된 서버와 도구 목록 확인
  • OAuth 2.0 지원으로 안전한 API 연결 가능

Tip 4 — 메모리 추가 및 호출

  • /memory add "<text>"로 중요한 정보를 장기 메모리에 저장
    • 예: “RabbitMQ 포트는 5673”
  • /memory show로 전체 메모리 확인, /memory refresh로 갱신
  • 결정 로그나 개인 설정(예: 말투, 이름 등) 저장에 유용

Tip 5 — 체크포인트 및 /restore 복원 기능

  • 파일 변경 전 자동 스냅샷 생성, /restore로 이전 상태로 복귀
  • --checkpointing 옵션 또는 설정 파일에서 활성화
  • /restore list로 체크포인트 목록 확인, /restore <id>로 복원
  • Git과 병행 사용 시 AI 작업의 안전망 역할

Tip 6 — Google Docs·Sheets 읽기

  • Workspace MCP 서버 설정 시 Google Docs/Sheets 링크를 직접 읽어 요약 가능
  • OAuth 인증 필요, /read_google_doc 등 명령으로 접근
  • 문서·시트·Drive 파일을 링크로 참조하여 복사 없이 컨텍스트 주입

Tip 7 — @ 문법으로 파일·이미지 참조

  • @파일경로로 코드·문서·이미지를 직접 프롬프트에 첨부
    • 예: Explain this code: @./src/main.js
  • .gitignore.geminiignore 규칙을 자동 반영
  • 이미지 인식(OCR 포함) 및 다중 파일 비교 지원

Tip 8 — 즉석 도구 생성

  • Gemini가 필요 시 임시 스크립트나 MCP 서버를 직접 생성
    • 예: JSON 파서, 로그 분석기 등
  • 생성된 코드는 diff로 검토 후 승인 가능
  • 유용한 스크립트는 커스텀 명령으로 승격 가능

Tip 9 — 시스템 문제 해결 및 설정

  • 프로젝트 외부에서도 사용 가능, 개발 환경 관리 도우미 역할
    • 예: .bashrc 수정, 오류 로그 분석, 도커 설치 자동화
  • 명령 실행 전 항상 승인 요청, 안전한 시스템 조정 지원

Tip 10 — YOLO 모드 (자동 승인)

  • --yolo 또는 Ctrl+Y로 모든 도구 실행 자동 승인
  • 반복 작업 속도 향상에 유용하지만 위험성 존재
  • 특정 명령만 자동 승인하도록 화이트리스트 설정 가능

Tip 11 — 헤드리스 및 스크립트 모드

  • gemini -p "prompt"로 비대화형 실행
  • GEMINI_SYSTEM_MD로 시스템 프롬프트 교체 가능
  • JSON 출력(--format=json) 및 세션 요약 파일(--session-summary) 지원
  • CI/CD, 자동화 스크립트 통합에 적합

Tip 12 — 채팅 세션 저장 및 재개

  • /chat save <name>으로 세션 저장, /chat resume <name>으로 복원
  • /chat list로 목록 확인, /chat share로 공유 가능
  • 장시간 디버깅이나 다중 프로젝트 병행 시 유용

Tip 13 — 다중 디렉터리 워크스페이스

  • --include-directories 또는 설정 파일로 여러 폴더를 하나의 작업공간으로 통합
  • /directory show로 현재 포함 폴더 확인
  • 프런트엔드·백엔드 동시 수정 등 폴리레포 환경 지원

Tip 14 — AI 기반 파일 정리

  • 디렉터리 내 파일을 유형별로 분류·이동
    • 예: 이미지→Images, PDF→Documents
  • 이미지 내용 기반 자동 이름 변경 가능
  • 실행 전 명령 미리보기로 안전 검토 권장

Tip 15 — 대화 압축으로 컨텍스트 유지

  • /compress 명령으로 긴 대화를 요약해 컨텍스트 공간 확보
  • 핵심 정보만 유지하며 세션 지속 가능
  • 자동 압축 임계값 설정 가능

Tip 16 — !로 셸 명령 실행

  • !command로 터미널 명령 직접 실행
  • !만 입력 시 셸 모드 진입, 다시 !로 종료
  • AI 대화와 시스템 명령을 한 인터페이스에서 통합

Tip 17 — 모든 CLI 도구를 Gemini 도구로 활용

  • $PATH 내 모든 명령을 AI가 호출 가능
    • 예: convert, docker, ffmpeg, git
  • 환경에 따라 PATH 제한 또는 화이트리스트 설정 권장

Tip 18 — 멀티모달 입력 활용

  • 이미지·PDF·오디오 파일을 @로 첨부해 분석 가능
    • 예: UI 스크린샷 설명, 오류 이미지 분석, OCR 처리
  • 시각 자료 기반 코드 생성·데이터 추출 지원

Tip 19 — $PATH 및 도구 접근 제어

  • 제한된 PATH로 실행해 안정성과 보안 강화
  • settings.jsonexcludeTools로 위험 명령 차단 가능
  • --sandbox 옵션으로 Docker 격리 환경 실행 지원

Tip 20 — 토큰 캐싱 및 사용량 추적

  • API 키 또는 Vertex 인증 시 토큰 재사용으로 비용 절감
  • /stats 명령으로 캐시 적중률과 토큰 사용량 확인
  • --session-summary로 세션별 JSON 리포트 저장 가능

Tip 21 — /copy로 클립보드 복사

  • 마지막 출력(코드 등)을 즉시 클립보드에 복사
  • macOS(pbcopy), Windows(clip), Linux(xclip) 지원

Tip 22 — Ctrl+C 단축키 제어

  • 한 번 누르면 작업 중단, 두 번 누르면 CLI 종료
  • 셸 모드에서는 Ctrl+C 또는 Esc로 빠져나오기 가능

Tip 23 — settings.json으로 사용자 설정

  • 테마, 샌드박스, 자동 승인, Vim 모드 등 세부 설정 가능
  • /settings 명령으로 인터랙티브 편집 지원
  • 전역(~/.gemini/)과 프로젝트별 설정 병합

Tip 24 — VS Code 통합

  • VS Code 확장(Companion Extension)으로 파일·커서·선택 영역 자동 인식
  • 코드 변경 제안 시 VS Code diff 뷰어 자동 표시
  • /ide install, /ide enable, /ide status로 관리

Tip 25 — GitHub Action 자동화

  • Gemini CLI GitHub Action으로 이슈 분류, PR 리뷰 자동화
  • @gemini-cli 멘션으로 테스트 코드 생성 등 요청 가능
  • /setup-github 명령으로 워크플로우 파일 자동 생성

Tip 26 — 텔레메트리(Observability)

  • OpenTelemetry 기반으로 세션 메트릭·로그·트레이스 수집
  • "telemetry.enabled": true 설정 또는 --telemetry 플래그로 활성화
  • 로컬 파일, GCP, Prometheus 등 다양한 백엔드로 전송 가능

Tip 27 — 로드맵 모니터링

  • GitHub 공개 Gemini CLI 로드맵에서 향후 기능 확인
    • 예: 백그라운드 에이전트, 모델 확장, UI 개선 등
  • 커뮤니티 피드백 및 기능 제안 참여 가능

Tip 28 — 확장(Extensions)

  • gemini extensions install <URL>로 외부 서비스 통합
    • 예: Cloud Run, BigQuery, Figma, Stripe 등
  • 확장은 MCP 도구·명령·컨텍스트를 추가하는 모듈형 구조
  • /extensions 명령으로 활성 확장 목록 확인

추가 기능 — Corgi Mode 🐕

  • /corgi 명령으로 터미널에 코기 애니메이션 실행
  • 단순한 이스터에그 기능으로 CLI 사용 중 휴식 제공

결론

  • Gemini CLI는 코드 작성부터 시스템 관리, 자동화, 협업까지 아우르는 AI 기반 개발 인터페이스
  • GEMINI.md, MCP, 확장, IDE 연동 등으로 지속적 컨텍스트와 도구 확장성 확보
  • 오픈소스 생태계와 빠른 업데이트를 통해 개발자 워크플로우의 중심 AI 플랫폼으로 발전 중
Hacker News 의견
  • 나는 이런 세팅들을 전혀 하지 않음
    이유는 너무 빠르게 구식이 되고, 80%는 제대로 작동하지 않기 때문임
    LLM이 신뢰성 있게 호출할지도 모르는 상황에서 굳이 MCP 서버를 짤 필요가 없다고 생각함
    내 규칙은 단순함 — 스스로를 위한 문서화(템플릿, 체크리스트 등) 를 직접 작성하고, AI에게 한 번 시도할 기회를 줌
    한 번에 제대로 못 하면 문서를 수정하거나 그냥 내가 직접 처리함

    • LLM을 통계적 문서 생성기로 보는 관점이 도움이 되었음
      결국 유용성은 학습 데이터와 모델 진화에 달려 있고, 형식 문법이 없는 제약 프로그래밍처럼 다루는 게 맞다고 생각함
      자연어의 주관성을 고려하면, 제약 문장을 반복적으로 다듬는 빠른 반복(iteration)이 최선임
      예시로 Gemini를 4번 반복해 완전 자동으로 동작하는 bash 스크립트를 얻은 적이 있음
      관련 개념은 Constraint programming 참고
    • 최근 에이전트들이 빌드-테스트-수정 사이클을 스스로 수행하는 능력이 생겨서 큰 도움이 되었음
      주니어 개발자 수준의 작업을 맡기고 나는 다른 일을 할 수 있게 됨
    • AI 에이전트를 팀의 신입 개발자처럼 대하는 접근이 효과적임
      한 번에 실패하면 문서(.md 파일)를 개선하고 다시 시도함
      MCP는 보안 리스크 때문에 잘 안 쓰지만, 이 반복 루프가 꽤 효율적임
      반대로 “한 번에 안 되면 내가 직접 한다”는 건 신입을 바로 해고하는 것과 같음
    • 지금은 소프트웨어 개발이 새로운 플래토(plateau) 로 향하는 중이라고 느낌
      아직 그 지점에 도달하지는 않았고, 지금 쌓는 기술은 경사면 위에 세우는 것과 같음
    • 나는 두 접근 모두 유용하다고 봄
      1. 새 세션으로 시작해 문맥 오염을 피하고,
      2. 다양한 도구를 연결해 작업을 쉽게 함 (Anthropic의 최근 글 참고)
        현재 프롬프트 평가 방법이 신뢰할 만하지 않아, 이를 개선하는 agentic 세팅을 직접 만들고 있음
        어제는 Dagger 기반의 세션 타임 트래블 기능을 추가했고, 오늘은 포크·클론·레지스트리 기능을 넣을 예정임
  • Gemini CLI는 아직 복잡한 코딩 작업에는 약함
    단순한 ReAct 루프와 약한 도구 호출 능력 때문임
    그래도 오픈소스로 활발히 개발 중이라 잠재력이 큼
    1M 컨텍스트 윈도(곧 2M 예정)와 넉넉한 무료 쿼터 덕분에 “마구 써야 한다(ABUSE IT) ”고 생각함
    나는 이를 TUI/CLI 오케스트레이션 도구로 사용 중이며, 다른 툴이 생성한 코드를 평가하는 데도 꽤 유용했음
    최근에는 Homebrew와 MCP를 연결하고, 로컬 LLM 기반 Knowledge Manager(Nowledge Mem)와 연동함
    재미있게도 Gemini CLI를 SubAgent로 써서 메인 컨텍스트 오염을 피한 사례도 봤음
    관련 트윗

    • Gemini CLI는 정말 야생의 짐승 같음
      “코드 수정하지 말고 제안만 해”라고 해도 바로 파일을 수정해버림
      Pro 3는 똑똑하지만 지시 따르기는 여전히 불안정함
    • Gemini 3 Pro를 간단히 테스트했는데, 기초 코딩 작업조차 어려워함
      Antigravity를 통해 시도했지만, 제한된 쿼터 때문에 복잡한 테스트는 힘들었음
      자세한 인상은 이 글 참고
  • Addy Osmani는 Google Chrome과 Gemini를 담당하는 아일랜드 출신 소프트웨어 엔지니어로, 25년 경력의 베테랑임
    웹 성능 개선과 AI 보조 개발 도구에 열정을 가지고 있으며, 『Learning JavaScript Design Patterns』 등 여러 저서를 냈음

    • Patrick Collison보다 2년 먼저 Irish Young Scientist 대회에서 수상한 경력이 있음
      대회 링크
    • 웹 성능 커뮤니티에서 매우 높은 평판을 얻고 있음
    • 최근 5년간 11권의 책을 냈다는데, 혹시 AI 보조 집필을 쓰는지 궁금함
  • 나는 LLM 비종속적(agnostic) 코딩 에이전트가 표준으로 자리 잡길 바람
    Codex나 Gemini CLI처럼 각자 휠을 다시 만드는 대신, LLM 공급자를 플러그인 형태로 교체할 수 있으면 좋겠음
    지금은 Claude Code가 최고지만, Anthropic이 그 방향으로 가지는 않을 듯함
    결국 다음 세대의 오픈소스 코딩 에이전트를 기다려야 할 것 같음

    • 이미 그런 툴로 Aider(aider.chat)가 있음
      다만 이런 CLI들은 실제 도구보다 구독형 모델을 위한 인터페이스에 가까움
      최신 모델은 토큰 소모가 너무 커서 API 과금보다 월 구독이 현실적임
    • Opencode(SST 제작)는 그런 비전을 잘 구현한 예임
      최근 며칠 써봤는데 꽤 만족스러웠음
      GitHub 링크
      Crush, Aider, Amp Code, Emacs+gptel, Editor Code Assistant 등 다양한 대안도 존재함
      다만 LLM과 코딩 에이전트의 공진화(co-design) 가 중요하기 때문에 완전한 분리는 아직 비현실적임
    • 나는 Claude Code가 최고인 이유가 바로 비종속적이지 않기 때문이라고 생각함
    • Cursor도 좋은 대안임
      아이러니하게도 이제 자체 LLM을 도입했음
      Cursor Composer 소개
    • 모델 비종속 툴로는 Roo Code나 그 포크인 Kilo를 추천함
  • 나는 몇 달째 Gemini CLI를 사용 중임
    회사에서 무료 구독이 있어서 계속 써봄
    GEMINI.md 파일을 인식한다고 하지만 실제로는 무시하는 경우가 많음
    그래도 Tip 12, Tip 16 같은 팁은 유용했음
    AI의 환각(hallucination) 문제는 여전하지만, 처음으로 AI를 진짜 ‘재미있게’ 느끼게 해준 경험이었음
    특히 K8s PoC 클러스터를 자율적으로 디버깅하게 했을 때, 로그를 가져오고 오류를 찾아내는 과정이 정말 놀라웠음
    가끔 너무 멍청하게 굴면 /quit 치고 내가 직접 하지만, 여전히 즐겁게 쓰고 있음

    • Gemini CLI가 K8s 클러스터를 실시간으로 디버깅한다니 정말 초현실적
      나도 RKE2 클러스터를 막 만들었는데 꼭 시도해보고 싶음
  • 나는 AI를 매우 좋아함
    인터넷이나 아이폰처럼 나를 더 효율적인 인간으로 만들어주는 필수 도구라고 느낌
    다만 “AI 사용법”을 알려주는 튜토리얼 피로감이 심함
    대부분 품질이 낮고, 이번 글은 그나마 나은 편임
    마치 JS 개발자들이 매주 새로운 프레임워크를 소개하는 느낌임

    • 요즘 “LLM을 이렇게 써라” 류의 글은 정말 지루함
      누가 쓰든, 진심이든, 단순한 참여 유도든 이제 흥미가 없음
  • 솔직히 이런 복잡한 세팅은 과함
    나는 그냥 AI에게 소리 지르는 수준의 프롬프트로도 충분히 잘 됨
    LazyVim과 몇 가지 툴(git, ask, ripgrep)만으로도 충분히 생산적임
    특히 Gemini 3는 토큰 밀도가 높고 컨텍스트가 커서 매우 유용함
    컨텍스트가 과도해지면 README.MD에 요약을 쓰게 하고 새 에이전트를 시작함
    ask 도구 링크

    • 나도 비슷한 방식으로 쓰는데, Gemini 3가 압도적으로 잘함
      다른 모델로는 생산성이 안 나왔는데, 지금은 복잡한 작업도 80%는 한 번에 성공함
  • 수동 스크립팅과 LLM 보조 워크플로의 대조가 흥미로움
    제약 조건이 명확하지 않으면 둘 다 실패하지만, 명확하면 LLM이 놀라울 정도로 신뢰성 있게 작동함

  • 요즘 AI/Agentic/Vibe 코딩의 문제는 너무 빠른 진화 속도
    베스트 프랙티스가 자리 잡기도 전에 구식이 되어버림
    언어와 프레임워크는 바뀌어도 문제를 쪼개고 코드베이스를 이해하는 방식은 비교적 안정적이었는데,
    지금은 그 균형점이 어디일지 모르겠음

  • 나는 Gemini CLI가 별로라고 느낌
    써야 한다면 Opencode를 추천함
    Google도 Codex처럼 CLI를 처음부터 다시 만들어야 함

    • 사람마다 다르겠지만, 내 경우 Gemini CLI는 빠르고 안정적이라 주력 도구로 씀
    • Opencode도 최근 TUI를 완전히 교체했음
      참고로 Gemini 3는 현재 Copilot을 통해 Opencode에서 작동하지 않음
      이슈 링크
    • Opencode를 쓰려면 특정 터미널 에뮬레이터(WezTerm, Alacritty, Ghostty, Kitty) 가 필요하다고 되어 있음
      단순 TUI에 이런 제약이 필요한지 의문이었음
      공식 문서를 보면 Gemini는 직접 언급되지 않고,
      Google Vertex AI를 통해 제공되는 듯함
      아마 Google Workspace 구독을 통해 Gemini를 연결할 수 있을지도 모르겠음
    • Codex는 어떻게 된 건지 궁금함 — 정말 다시 만든 건가?