AI CLI 환경 설정 가이드

다른 컴퓨터에서 이 컴퓨터와 동일한 Claude Code / Gemini CLI 환경을 구성하는 절차를 정리한다. 업데이트: 2026-03-10


핵심 요약

구분내용
대상새 컴퓨터에 Claude Code + Gemini CLI 환경을 동일하게 세팅하려는 경우
소요 시간약 15~20분
필요 조건Node.js 설치, Anthropic 계정, Google 계정
Claude 설정 위치~/.claude/
Gemini 설정 위치~/.gemini/
에이전트 수4개 (gemini-researcher, git-pusher, md-doctor, task-review-auditor)

목차

  1. Claude Code CLI 설치
  2. settings.json 설정
  3. agents 설정
  4. Gemini CLI 설치 및 규칙 설정
  5. Obsidian CSS snippet 설정
  6. 트리거 키워드
  7. 설정 확인

1. Claude Code CLI 설치

npm install -g @anthropic-ai/claude-code

설치 후 로그인:

claude

최초 실행 시 Anthropic 계정으로 로그인 절차가 진행된다.


2. settings.json (전역 설정)

파일 위치: ~/.claude/settings.json

기본 설정

항목설명
modelsonnet기본 모델 (Claude Sonnet)
autoUpdatesChannellatest자동 업데이트 채널
effortLevelhigh응답 품질 수준

권한 설정 (permissions)

권한을 allow에 추가하면 해당 도구 실행 시 매번 묻지 않고 자동 허용된다. deny에 추가하면 어떤 경우에도 실행을 차단한다.

형식: "도구이름(패턴)"*는 모든 인자를 허용한다는 뜻이다.

주의: WebFetch, WebSearch, Write, Edit 등 Claude 내장 도구는 괄호 없이 "WebFetch" 형태로 작성해야 한다. Bash 도구만 "Bash(명령어:*)" 형태를 사용한다. WebFetch(*)처럼 쓰면 권한이 적용되지 않아 매번 허용 확인 팝업이 뜬다.

allow (자동 허용)

구분규칙설명
📂 파일/폴더 탐색Bash(ls:*), Bash(find:*), Bash(grep:*), Bash(cat:*), Bash(head:*), Bash(tail:*), Bash(wc:*), Bash(pwd:*)읽기 전용 명령어
📝 파일/폴더 생성·수정Bash(mkdir:*), Bash(touch:*), Bash(mv:*), Bash(cp:*), Bash(echo:*), Bash(sed:*), Bash(chmod:*)파일 조작 명령어
📦 Node.js / 패키지Bash(npm:*), Bash(npx:*), Bash(node:*), Bash(yarn:*), Bash(pnpm:*)패키지 관리
🐍 PythonBash(python:*), Bash(python3:*), Bash(pip:*), Bash(pip3:*)Python 실행 및 패키지
🌐 네트워크Bash(curl:*), Bash(wget:*), WebFetch, WebSearch웹 요청 및 검색
✏️ Claude 내장 도구Write, Edit파일 생성·편집 (MD 등)
ℹ️ 시스템 정보Bash(which:*), Bash(env:*), Bash(lsof:*), Bash(ps:*)읽기 전용 조회

deny (차단)

규칙설명
Bash(rm:*), Bash(rmdir:*)파일/폴더 삭제
Bash(sudo:*)관리자 권한 실행
Bash(kill:*), Bash(pkill:*)프로세스 종료
Bash(dd:*), Bash(mkfs:*)디스크 직접 쓰기/포맷
Bash(shutdown:*), Bash(reboot:*)시스템 종료/재시작

전체 설정 파일

{
  "model": "sonnet",
  "autoUpdatesChannel": "latest",
  "effortLevel": "high",
  "permissions": {
    "allow": [
      // ── 파일/폴더 탐색 (읽기 전용) ──
      "Bash(ls:*)", "Bash(find:*)", "Bash(grep:*)", "Bash(cat:*)",
      "Bash(head:*)", "Bash(tail:*)", "Bash(wc:*)", "Bash(pwd:*)",
      // ── 파일/폴더 생성·수정 ──
      "Bash(mkdir:*)", "Bash(touch:*)", "Bash(mv:*)", "Bash(cp:*)",
      "Bash(echo:*)", "Bash(sed:*)", "Bash(chmod:*)",
      // ── Node.js / 패키지 관리 ──
      "Bash(npm:*)", "Bash(npx:*)", "Bash(node:*)",
      "Bash(yarn:*)", "Bash(pnpm:*)",
      // ── Python ──
      "Bash(python:*)", "Bash(python3:*)", "Bash(pip:*)", "Bash(pip3:*)",
      // ── 네트워크 ──
      "Bash(curl:*)", "Bash(wget:*)",
      "WebFetch", "WebSearch",
      // ── Claude 내장 도구 ──
      "Write", "Edit",
      // ── 시스템 정보 조회 ──
      "Bash(which:*)", "Bash(env:*)", "Bash(lsof:*)", "Bash(ps:*)"
    ],
    "deny": [
      "Bash(rm:*)", "Bash(rmdir:*)",
      "Bash(sudo:*)",
      "Bash(kill:*)", "Bash(pkill:*)",
      "Bash(dd:*)", "Bash(mkfs:*)",
      "Bash(shutdown:*)", "Bash(reboot:*)"
    ]
  }
}

적용 방법

# macOS / Linux — 위 내용을 복사하여 저장
nano ~/.claude/settings.json
# Windows — 메모장으로 편집
notepad "$env:USERPROFILE\.claude\settings.json"

: 도구 실행 시 권한 프롬프트가 뜨면 “Always allow”를 선택하면 자동으로 settings.json에 추가된다.


3. agents 설정

에이전트 파일 위치: ~/.claude/agents/

~/.claude/
└── agents/
    ├── gemini-researcher.md
    ├── git-pusher.md
    ├── md-doctor.md
    └── task-review-auditor.md

각 에이전트 파일은 이 저장소의 10.0 personalSetting/10.2.agents/ 폴더에 백업되어 있다.

에이전트 목록

파일역할모델주요 도구
gemini-researcher.mdGoogle Search로 웹 리서치 후 MD 파일 저장sonnetWebFetch, WebSearch, Write
git-pusher.mdgit add → commit → push 자동화sonnetBash, Read, Glob, Grep
md-doctor.mdMD 파일 구조·링크·frontmatter 검사 및 수정sonnetGlob, Grep, Read, Edit, Write, WebFetch, Bash
task-review-auditor.md코드 변경사항 리뷰 및 품질 검토 (읽기 전용)sonnetRead, Grep, Glob

에이전트 파일 복사

# macOS / Linux
mkdir -p ~/.claude/agents
cp /path/to/repo/content/10.0\ personalSetting/10.2.agents/*.md ~/.claude/agents/
# Windows (PowerShell)
New-Item -ItemType Directory -Force "$env:USERPROFILE\.claude\agents"
Copy-Item ".\10.0 personalSetting\10.2.agents\*.md" "$env:USERPROFILE\.claude\agents\"

gemini-researcher 추가 요구사항

이 에이전트는 Gemini CLI를 Bash로 호출한다. 별도 설치가 필요하다:

npm install -g @google/gemini-cli
gemini  # Google 계정으로 로그인

4. Gemini CLI 설치 및 규칙 설정

4-1. 설치 및 로그인

npm install -g @google/gemini-cli
gemini  # Google 계정으로 로그인

4-2. 전역 규칙 파일 등록

Gemini CLI는 ~/.gemini/GEMINI.md를 자동으로 읽어 작업 규칙으로 적용한다. 이 저장소의 personalSetting/GEMINI.md를 복사하면 문서 작성 규칙(말투, 템플릿, 번호 체계 등)을 Gemini가 자동으로 따른다.

# macOS / Linux
mkdir -p ~/.gemini
cp /path/to/repo/content/personalSetting/GEMINI.md ~/.gemini/GEMINI.md
# Windows (PowerShell)
New-Item -ItemType Directory -Force "$env:USERPROFILE\.gemini"
Copy-Item ".\content\personalSetting\GEMINI.md" "$env:USERPROFILE\.gemini\GEMINI.md"

4-3. 규칙 업데이트 방법

personalSetting/GEMINI.md가 수정되면 ~/.gemini/GEMINI.md에 다시 복사한다. 두 파일은 항상 동일한 내용을 유지한다.

파일역할
personalSetting/GEMINI.md저장소 백업본 (git으로 관리)
~/.gemini/GEMINI.mdGemini CLI가 실제로 읽는 전역 규칙 파일

5. Obsidian CSS snippet 설정

파일 위치: .obsidian/snippets/

4-1. table-nowrap.css — 테이블 1열 줄바꿈 방지

테이블 1열에서 이모지 + 텍스트가 줄바꿈되어 깨지는 문제를 방지한다.

/* 테이블 1열 줄바꿈 방지 (이모지 + 텍스트 깨짐 방지) */
.markdown-preview-view table td:first-child,
.markdown-preview-view table th:first-child,
.markdown-source-view table td:first-child,
.markdown-source-view table th:first-child,
.markdown-rendered table td:first-child,
.markdown-rendered table th:first-child {
  white-space: nowrap !important;
}

4-2. mermaid-center.css — Mermaid 다이어그램 가운데 정렬 및 크기 통일

Mermaid 다이어그램의 왼쪽 정렬 문제를 해결하고, Quartz와 크기를 일관되게 맞춘다.

/* Mermaid 다이어그램 가운데 정렬 */
 
/* Reading mode (미리보기) */
.markdown-preview-view pre.mermaid {
  text-align: center !important;
}
 
.markdown-preview-view pre.mermaid svg {
  display: inline-block !important;
  max-width: 100%;
}
 
/* Live Preview (실시간 편집) */
.markdown-source-view .cm-preview-code-block {
  display: flex !important;
  justify-content: center !important;
}
 
/* 공통 fallback */
.mermaid {
  display: flex !important;
  justify-content: center !important;
}
 
.mermaid svg {
  max-width: 100%;
  height: auto;
  font-size: 14px;
}

4-3. Quartz Mermaid 테마 설정 — 배경색·텍스트 가시성

Obsidian과 Quartz는 서로 다른 Mermaid 렌더러를 사용하기 때문에 배경색·글자색·크기가 달라진다. Quartz 측에서 아래 두 파일을 수정하여 차이를 줄인다.

문제 원인

항목설명
렌더러 차이Obsidian은 내장 Mermaid, Quartz는 CDN mermaid.js를 사용한다
배경색 문제Quartz 기본 설정에서 보조 노드 배경(secondaryColor)이 진한 색이라 텍스트가 안 보인다
크기 차이컨테이너 너비·폰트 크기가 달라 같은 다이어그램도 비율이 다르게 렌더링된다

수정 파일 1: quartz/components/scripts/mermaid.inline.ts

mermaid.initialize()themeVariables에서 색상 매핑을 수정한다.

변수변경 전변경 후이유
secondaryColor--secondary (진한 파란색)--lightgray (밝은 회색)어두운 배경에 어두운 텍스트 → 글씨 안 보임
tertiaryColor--tertiary--lightgray동일한 가시성 문제

추가된 변수:

변수용도
secondaryTextColor--darkgray보조 노드 텍스트 색상 명시
tertiaryTextColor--darkgray3차 노드 텍스트 색상 명시
clusterBorder--lightgraysubgraph 테두리
noteBkgColor--lightgray노트 배경
noteTextColor--darkgray노트 텍스트
noteBorderColor--gray노트 테두리
actorBkg--lightsequence diagram 액터 배경
actorTextColor--darkgraysequence diagram 액터 텍스트
actorBorder--tertiarysequence diagram 액터 테두리
signalColor--darkgraysequence diagram 시그널 텍스트
labelBoxBkgColor--light라벨 박스 배경
labelTextColor--darkgray라벨 텍스트

수정 파일 2: quartz/styles/custom.scss

CSS로 SVG 크기 제어 및 텍스트 색상 fallback을 추가한다.

// Mermaid 다이어그램 가운데 정렬 및 크기 일관성
.mermaid {
  display: flex;
  justify-content: center;
 
  svg {
    max-width: 100%;
    height: auto;
    font-size: 14px;
  }
}
 
// Mermaid 노드 텍스트 가시성 보장
.mermaid {
  .node .label,
  .nodeLabel,
  .edgeLabel,
  .cluster-label .nodeLabel,
  .label {
    color: var(--darkgray) !important;
  }
 
  .actor {
    fill: var(--light) !important;
    stroke: var(--tertiary) !important;
  }
 
  text.actor {
    fill: var(--darkgray) !important;
  }
}

Claude 자동 설치

이 setup을 읽은 Claude는 아래 두 파일을 Write 도구로 직접 생성한다. 스니펫 폴더 절대경로: D:\git\Quartz\quartz\content\.obsidian\snippets\

생성할 파일 1: table-nowrap.css

/* 테이블 1열 줄바꿈 방지 (이모지 + 텍스트 깨짐 방지) */
.markdown-preview-view table td:first-child,
.markdown-preview-view table th:first-child,
.markdown-source-view table td:first-child,
.markdown-source-view table th:first-child,
.markdown-rendered table td:first-child,
.markdown-rendered table th:first-child {
  white-space: nowrap !important;
}

생성할 파일 2: mermaid-center.css

/* Mermaid 다이어그램 가운데 정렬 */
 
/* Reading mode (미리보기) */
.markdown-preview-view pre.mermaid {
  text-align: center !important;
}
 
.markdown-preview-view pre.mermaid svg {
  display: inline-block !important;
  max-width: 100%;
}
 
/* Live Preview (실시간 편집) */
.markdown-source-view .cm-preview-code-block {
  display: flex !important;
  justify-content: center !important;
}
 
/* 공통 fallback */
.mermaid {
  display: flex !important;
  justify-content: center !important;
}
 
.mermaid svg {
  max-width: 100%;
  height: auto;
  font-size: 14px;
}

파일 생성 후 Obsidian에서 설정 > 외형 > CSS 스니펫 에서 각 스니펫 토글을 켠다.

스니펫용도
table-nowrap테이블 1열 줄바꿈 방지
mermaid-centerMermaid 다이어그램 가운데 정렬 + 크기 통일

6. 트리거 키워드

에이전트는 아래 키워드를 입력하면 Claude가 자동으로 호출한다.

에이전트트리거 키워드
gemini-researcher웹조사, 웹서치, 자료조사, 검색해줘, 조사해줘, 찾아봐, 검색해봐, 서치해줘, 인터넷에서 찾아줘, 최신 정보
git-pushergit에 올려줘, 깃에 올려줘, 커밋해줘, 푸시해줘, git push해줘, 변경사항 올려줘, 커밋하고 올려줘, 깃허브에 올려줘
md-doctormd 확인해줘, 마크다운 확인, 링크 확인해줘, 깨진 링크 찾아줘, MD 구조 점검해줘, 문서 검사해줘, wikilink 확인, frontmatter 체크, 링크 고쳐줘
task-review-auditor코드 리뷰해줘, 리뷰해줘, 검토해줘, 코드 검토, 변경사항 확인해줘, 코드 점검해줘, 오류 확인해줘, 방금 작업 확인해줘

7. 설정 확인

# Claude Code 버전 확인
claude --version
 
# settings.json 확인
cat ~/.claude/settings.json
 
# 에이전트 파일 확인
ls ~/.claude/agents/
 
# Gemini CLI 버전 확인
gemini --version
 
# Gemini 전역 규칙 확인
cat ~/.gemini/GEMINI.md

Claude Code 실행 후 /agents 명령으로 에이전트 목록이 표시되면 설정 완료다. Gemini CLI 실행 후 문서 작성 요청 시 GEMINI.md의 말투·템플릿 규칙을 자동으로 따르면 설정 완료다.


참고 자료