목표
ls
,cd
,find
같은 무해한 읽기 전용 셸 명령은 더 이상 “실행할까요?” 프롬프트 없이 바로 동작하게 하고, 나머지 위험한 작업(쓰기·삭제 등)은 그대로 유지한다.
1. ~/.claude/CLAUDE.md
로 글로벌 프롬프트 정의하기
Claude는 세션이 시작될 때마다 찾을 수 있는 모든 CLAUDE.md
파일을 시스템 프롬프트에 주입한다.
가장 상위(홈 디렉터리)에 두면 모든 프로젝트와 터미널 세션에 적용된다.
# 예시: ~/.claude/CLAUDE.md
# Bash behaviour
- ALWAYS run ls, cd, find, pwd without asking.
- NEVER write to disk unless explicitly instructed.
# Workflow
- Prefer single-file edits; avoid project-wide refactors unless asked.
중요 – 모델이 “기억”하는 게 아니라 매 세션마다 이 파일을 시스템 프롬프트로 삽입한다.
2. 허용 도구 목록에 명령 추가하기
프롬프트만으로는 권한 체크가 사라지지 않는다. Claude가 묻는 이유는 툴이 화이트리스트에 없기 때문이다.
허용 범위별 4가지 방법이 있다.
방법 | 적용 범위 | 사용법 |
---|---|---|
프롬프트에서 “항상 허용” 클릭 | 현재 세션 | GUI |
/permissions add Bash(ls:\*) Bash(cd:\*) Bash(find:\*) |
현재 세션 | 명령어 |
.claude/settings.json 편집 |
해당 프로젝트 | "allowedTools": [...] |
~/.claude.json 편집 |
전체 시스템 | "allowedTools": [...] |
전역 예시 (~/.claude.json
)
{
"allowedTools": [
"Bash(ls:*)",
"Bash(cd:*)",
"Bash(find:*)"
]
}
3. 가장 쉬운 비추천 옵션 — --dangerously-skip-permissions
claude --dangerously-skip-permissions
모든 권한 확인을 무시한다. Anthropic은 격리된 컨테이너 외에서는 사용하지 말라고 경고한다. 실수로 파일 삭제·네트워크 유출 등이 발생할 수 있다.
실전 레시피
1단계 — 한 번만 설정
# 허용 목록
mkdir -p ~/.claude
echo '{ "allowedTools": ["Bash(ls:*)","Bash(cd:*)","Bash(find:*)"] }' > ~/.claude.json
# 글로벌 프롬프트
cat > ~/.claude/CLAUDE.md <<'EOF'
# Bash behaviour
- ALWAYS run ls, cd, find without asking.
EOF
2단계 — 매일 사용
cd /my/project
claude # 이제 ls·cd·find는 묵묵히 실행, 다른 명령은 여전히 보호
필요하면 두 파일을 수정하거나 삭제하면 즉시 원래대로 돌아간다(세션 재시작 필요).
주의할 점
- 쓰기/삭제 계열은 별도 허용 설정을 하지 않는 이상 계속 확인 창이 뜬다.
CLAUDE.md
와~/.claude.json
을 수정한 뒤엔 새 세션을 열어야 반영된다.- 전역 설정은 강력한 만큼 위험도 크다. 프로젝트별 설정(
.claude/settings.json
)로 제한하는 편이 안전할 수 있다.
아래는 “읽기 전용·무해(or 쉽게 되돌릴 수 있음)” 기준으로 다시 추려 정리한 화이트리스트 최종본입니다.cd
를 포함했고, 실전에서 자주 쓰이지만 위험 요소가 거의 없는 명령만 남겼습니다.
refined ~/.claude.json
{
"allowedTools": [
// 디렉터리 이동·탐색
"Bash(cd:*)", // 경로 탐색
"Bash(pwd)",
"Bash(ls:*)",
"Bash(tree:*)",
// 파일 내용·미리보기
"Bash(cat:*)",
"Bash(head:*)",
"Bash(tail:*)",
// 검색·패턴 매칭
"Bash(grep:*)",
"Bash(rg:*)",
"Bash(find:*)",
// 집계·통계
"Bash(wc:*)",
"Bash(sort:*)",
"Bash(uniq:*)",
"Bash(du -sh:*)",
"Bash(df -h)",
// 시스템 정보
"Bash(uname -a)",
"Bash(lscpu)",
"Bash(uptime)",
// Git (읽기 전용)
"Bash(git status:*)",
"Bash(git diff --stat:*)",
"Bash(git log --oneline:*)",
// 테스트·빌드 드라이런
"Bash(npm run lint)",
"Bash(npm run test:*)",
"Bash(make -n:*)",
// CLI 통합 (읽기 전용 호출)
"Bash(gh issue view:*)",
"Bash(docker ps)"
]
}
메모
카테고리 | 포함 이유 |
---|---|
cd |
프로젝트 루트·서브디렉터리 전환 시 반복 확인 방지. 실수해도 cd - 로 복구 가능, 쓰기·삭제 없음. |
검색/집계 | 코드·로그 탐색과 간단한 통계 파악은 “읽기” 범주. |
Git 읽기 | 코드를 건드리지 않고 diff·log 정보만 확인. |
테스트 드라이런 | npm run lint , make -n 등은 실제 빌드/변경 없이 구조만 점검. |
시스템 정보 | 컨테이너/VM 사양 파악용. |
제외한 것
rm
,mv
,cp
,chmod
,curl
,wget
,docker run
등은 여전히 묻도록 유지.sed -i
,awk -i inplace
등 “쓰기” 가능성이 있는 변형 플래그도 제외.- 네트워크 접근·패키지 설치 계열(
apt
,pip install
)은 프로젝트마다 정책이 달라 위험.
적용 & 운영 팁
- 파일 생성·세션 재시작
~/.claude.json
저장 후 새claude
세션을 열어야 반영됨. - 프로젝트 전용 범위
리포마다 다르게 관리하고 싶으면.claude/settings.json
에 동일 형식으로 작성. - 임시 실험
세션 중/permissions add Bash(stat:*)
로 시험해 본 뒤 유용하면 화이트리스트에 편입. - 토큰 관리
cat
으로 거대 파일 전체 출력은 토큰 폭증 → 보통head
,tail
,grep -n
으로 범위 좁힘. - 롤백
규칙 삭제 후 세션 재시작하면 즉시 원래 권한 확인 단계로 돌아간다.
이 정도만 추가해 두면 탐색·검색·상태 점검 루프가 더 이상 권한 프롬프트에 끊기지 않고,
위험 작업(쓰기·삭제·네트워크·퍼미션 변경)은 그대로 보호막을 유지할 수 있다.
결론
~/.claude/CLAUDE.md
에 상시 지시문 작성.~/.claude.json
또는/permissions
로 읽기 전용 명령을 화이트리스트에 추가.- 필요 시 프로젝트별 설정으로 범위 축소.
- 극단적으로 번거로우면
--dangerously-skip-permissions
, 하지만 추천하지 않는다.
이렇게 하면 ls
, cd
, find
는 더 이상 귀찮게 묻지 않으면서도, 삭제·쓰기 같은 위험 작업은 그대로 확인 절차를 거치게 된다.
'UX 개발 > 개발도구와 환경' 카테고리의 다른 글
컨텍스트7(Context7)이란 무엇인가? 웹 개발 워크플로우에 적용하는 법 (1) | 2025.07.25 |
---|---|
유튜브 프리미엄 가족 요금제 구독 위한 구글 계정 국가 변경 (1) | 2025.07.16 |
Gmail(지메일) 안 읽은 메일 확인하고 정리하기 (0) | 2025.05.27 |
ChatGPT(챗지피티) 답변 마크다운(Markdown, MD)로 복사하기 (0) | 2025.04.29 |
가장 아름다운 웹 브라우저 SigmaOS (시그마오에스) (0) | 2025.04.11 |