출처 : https://github.com/google-gemini/gemini-cli
- gemini-CLI를 사용하기 위해선 node.js 18버전 이상이 필요하다.
https://nodejs.org/ko/download/current
- node.js 전용 installer인 npx, npm을 사용하면된다. npx는 터미널을 껏다키면 초기화되니 조심하세요.
#powershell을 실행 후 npm install -g @google/gemini-cli gemini
- 방향키를 조작하여 theme을 원하는 것으로 바꿔서 실행하면 바닐라 설정을 끝난다.
gemini-cli auth
- gemini-cli의 인증 방법은 2가지가 있다.
- 1) 구글 계정으로 로그인 하는 방법(*추천) : 하루 1000번의 request 사용가능
- 2) aistudio에서 발급받은 토큰을 사용하는 방법 : 하루 100번의 request 사용가능
- 원하는 방법을 이용하면 된다.
- gemini-cli는 새로운 프로젝트를 맡아서 할 수 있다.
11-1. (파일시스템이 접근가능하기 때문에 보안상 sandboxing을 거쳐야해서)cd new-project/ gemini #gemini에 제공할 예시 프롬프트 Write me a Gemini Discord bot that answers questions using a FAQ.md file I will provide
- gemini에서 드디어 mcp를 지원해준다. gemini에서 mcp를 사용하는 방법은 다음과 같다.
- 프로젝트 폴더 하위의 .gemini/settings.json 생성후 claude나 cursor와 마찬가지로 mcp 설정을 작성해주면 된다.
- setting.json에 $VAR_NAME or ${VAR_NAME} 와 같이 환경변수를 작성해줄 경우 gemini-cli가 이를 읽을 수 있다. api-token을 사용할 때 활용하면 좋다.
- gemini-cli는 파일시스템과 shell을 사용할 수 있다. 보안상 취약할 수밖에 없는 gemini-cli의 특성상 격리공간을 만들어주는게 필요하다.
- docker나 vm을 사용하는 것도 가능하지만 gemini-cli가 제공하는 방법으로는 sandboxing이 있다.
- 그래서 사용자의 pc에 docker가 설치되어있어야한다. sandboxing하는 방법은 다음과 같다.
#simplest way gemini -s
- .gemini/sandbox.Dockerfile 을 작성하면 원하는 실행 환경을 구성할 수 있다.
#<sandbox.Dockerfile의 예시> FROM gemini-cli-sandbox # Add your custom dependencies or configurations here # For example: # RUN apt-get update && apt-get install -y some-package # COPY ./my-config /app/my-config
- 그럼 샌드박싱을 위한 환경 구성을 해보자
prerequisite
- wsl2 구성
- docker desktop 설치
- docker-desktop 실행 > settings > general > use wsl2 를 하면 된다.
- gemini를 sandbox 환경에서 실행한다.
#gemini를 샌드박스 환경에서 실행한다. gemini -s
gemini sandbox와 로컬 dir을 연결하는 방법
- settings.json에 다음을 추가하면 local pc의 디렉토리에 sandbox를 mount할 수 있다.
{ "sandbox.mounts": [ { "type": "bind", "source": "/path/to/your/local/directory", "target": "/workspace" } ] }
gemini sandbox를 사용하더라도 .gemini 하위의 폴더는 접근권한을 가지고 있다.
예를 들어)채팅기록은 .gemini/tmp에 log폴더로 저장된다.
권한에 대한 수정사항은 gemini-cli sandbox를 재시작해야 적용되기 때문에 malicious한 행동을 할 걱정은 미뤄둘 수 있다.
gemini의 사용이력을 공개하지 않는 옵션을 .gemini/setting.json에 추가할 수 있다.
{ "usageStatisticsEnabled": false }