개요
한 줄 요약: 내가 모든 프로젝트에 박아두고 쓰는 settings.json 옵션 4개. 각각이 주는 편의는 — 깔끔한 git 히스토리 (꼬리말 X), 매 턴 시스템 프롬프트 토큰 절감 (git 지침·스냅샷 X), 외부 터미널에서 IDE MCP 자동 연결 차단 (의도 명시), 조용한 세션 (설문·텔레메트리·오류 보고 X). 효과 4종 → 옵션 4종 의 1:1 매핑으로 보는 글임.
Claude Code 의 기본 설정은 “에디터·git 까지 자동으로 챙겨주는” 방향으로 잡혀 있음. 편의 자체는 좋지만 그 결과로 매 커밋·PR 본문 끝에 AI 출처 꼬리말이 박히고, 매 턴 시스템 프롬프트에 git workflow 안내문과 git status 스냅샷이 따라 붙고, 세션 종료 시 가끔 품질 설문이 뜨며, 백그라운드에서는 OTEL 메트릭·오류 리포팅이 송출됨. 네 가지 다 개별로는 사소하지만 한 번 깨끗한 환경에 익숙해지면 다시 켜기 싫어지는 종류임. 이 글은 그래서 내가 끄거나 박아두는 옵션 4개를 얻는 편의 → 그에 대응하는 옵션 순서로 정리함.
| 얻는 편의 | 끄거나 박아두는 옵션 | 작동하는 곳 |
|---|---|---|
| 깔끔한 git 히스토리·PR 본문 — AI 꼬리말 없음 | attribution.commit = "" / attribution.pr = "" | 출력 (커밋·PR 메시지) |
매 턴 입력 토큰 절감 — git 안내문·git status 스냅샷 빠짐 | includeGitInstructions: false | 입력 (시스템 프롬프트) |
| 외부 터미널에서 IDE MCP 차단 — 의도를 settings 에 박음 | autoConnectIde: false | 입력 (IDE MCP 컨텍스트) |
| 조용한 세션 — 설문·OTEL 메트릭·오류 보고 송출 안함 | env 의 CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY / DISABLE_TELEMETRY / DISABLE_ERROR_REPORTING | 외부 트래픽 / UI |
전부 ~/.claude/settings.json 또는 프로젝트의 .claude/settings.json 에 한 파일로 들어감. env 객체에 적은 키·값은 매 세션의 환경 변수로 그대로 주입됨.
결론
네 가지 효과를 모두 챙기려면 user settings 한 곳에 아래 블록을 박아두면 끝남.
{
"attribution": {
"commit": "",
"pr": ""
},
"includeGitInstructions": false,
"autoConnectIde": false,
"env": {
"CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1",
"DISABLE_TELEMETRY": "1",
"DISABLE_ERROR_REPORTING": "1"
}
}원하는 편의별로 조합하면 됨. 위에서 아래로 갈수록 더 깊이 정리하는 순서임.
| 원하는 편의 | 그에 필요한 설정 |
|---|---|
| 깔끔한 git 히스토리만 | attribution.commit/pr: "" |
| + 매 턴 시스템 프롬프트도 줄이고 싶음 | + includeGitInstructions: false |
| + 외부 터미널에서 IDE MCP 자동 연결을 잠그고 싶음 | + autoConnectIde: false |
| + 세션 설문·텔레메트리·오류 보고까지 끄고 싶음 | + env 에 세 변수 (또는 단축형 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1" — 단, 자동 업데이트·/feedback 도 함께 꺼짐) |
| 회사 정책상 AI 출처 표기 형식이 따로 있음 | attribution.commit 에 사내 형식 문자열 (PR 은 "" 가능) |
과거 includeCoAuthoredBy: false 사용 중 | 키 제거 후 attribution 으로 교체 |
부작용이 있는 옵션은 includeGitInstructions: false 하나임 — 시스템 프롬프트에서 git status 스냅샷이 빠지므로 Claude 가 커밋 작업 직전에 스스로 git status/git diff 를 호출해야 정확한 메시지를 만들 수 있음. 자체 git skill 이나 /commit 같은 슬래시 커맨드가 그 일을 대신해 주는 환경이면 손실이 없고, 그렇지 않으면 도구 호출 횟수가 늘어남. 나머지 셋은 부작용이라 부를 만한 게 없음.
상세
깔끔한 git 히스토리·PR 본문 — attribution
왜 켜뒀나: git log 와 PR 화면 양쪽에서 마케팅·자동 출처 문구를 영구히 빼기 위함. 한 번 커밋된 트레일러는 rebase 하지 않으면 영구히 남고, PR 본문은 머지된 뒤에도 GitHub 화면에 그대로 노출됨.
attribution 은 객체 키이고 그 아래 commit 과 pr 두 문자열을 가짐. 적용 지점이 다름.
commit—git commit메시지 본문 끝에 추가됨. 트레일러(Co-Authored-By:같은 git trailer) 도 이 문자열에 포함됨.git log에 영구히 남는 부분.pr—gh pr create가 만드는 PR description 끝에 추가됨. 본문 텍스트라 PR 편집 화면에서 그대로 보임. 커밋 메시지에는 영향 없음.
기본값(공식 문서 기준):
# commit 기본값
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com># pr 기본값
🤖 Generated with [Claude Code](https://claude.com/claude-code)빈 문자열("") 을 주면 위 블록이 통째로 사라짐. 임의 문자열을 주면 그 문자열로 교체됨 — 줄바꿈은 \n 으로 표현함.
includeCoAuthoredBy 와의 관계
이전에는 includeCoAuthoredBy: false 한 줄로 같은 효과를 낼 수 있었음. 현재는 두 가지 차이로 attribution 이 표준이 됨.
- 세분화 — 커밋과 PR 을 따로 끌 수 있음. 과거 옵션은 둘이 한꺼번에 묶여 있었음.
- 문구 교체 — 끄는 것뿐 아니라 임의 문구로 바꾸는 것도 가능함. 사내 정책상 “AI 사용 표기” 를 다른 형식으로 해야 하는 환경에 유용함.
공식 문서에 명시:
The
attributionsetting takes precedence over the deprecatedincludeCoAuthoredBysetting. To hide all attribution, setcommitandprto empty strings. — Claude Code Settings — Attribution settings
두 옵션이 동시에 있으면 attribution 이 이김. 마이그레이션할 때는 includeCoAuthoredBy 를 지우고 attribution 만 남기는 게 깔끔함.
매 턴 입력 토큰 절감 — includeGitInstructions
왜 켜뒀나: 모든 턴에서 시스템 프롬프트에 따라붙는 git workflow 안내문과 git status 스냅샷을 빼서 입력 토큰을 줄이기 위함. 자체 git skill·/commit 슬래시 커맨드를 갖춰 둔 환경에서는 안내문이 사실상 중복임.
기본값 true 일 때 Claude Code 는 매 세션의 시스템 프롬프트에 두 가지를 함께 넣음.
- commit·PR workflow 지침 — “커밋 메시지는 어떻게 쓰고”, “PR 은 어떤 형식으로 만들고” 같은 작업 절차문. 일반적으로 수백 토큰 분량.
git status스냅샷 — 세션 시작 시점의 브랜치·스테이징·미추적 파일 목록. 변경 파일 수에 비례해 토큰이 늘어남.
false 로 두면 위 두 블록이 시스템 프롬프트에서 통째로 빠짐. 즉 모든 턴에서 입력 토큰이 줄어드는 효과가 있음.
공식 문서 설명:
Include built-in commit and PR workflow instructions and the git status snapshot in Claude’s system prompt (default:
true). Set tofalseto remove both, for example when using your own git workflow skills. TheCLAUDE_CODE_DISABLE_GIT_INSTRUCTIONSenvironment variable takes precedence over this setting when set. — Claude Code Settings (전체 키 표)
끄기 전에 알아둘 것
- 커밋 메시지를 작성하라는 지시를 받았을 때 Claude 가 현재 변경 상태를 모르고 시작함. 정확한 메시지를 쓰려면 본인이 먼저
git status/git diff를 호출해야 함. 자체 git skill 이나 슬래시 커맨드(예:/commit) 가 그 일을 대신해 주는 환경이라면 손실이 없음. - 환경 변수
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS가 이 설정보다 우선함. CI 등 일시적으로 끄고 싶은 곳에서는 환경 변수를 쓰는 편이 가벼움.
외부 터미널에서 IDE MCP 차단 — autoConnectIde
왜 켜뒀나: 외부 터미널에서 일할 때 떠 있던 IDE 인스턴스에 자동으로 붙어 IDE MCP 가 동작 가능 도구 목록에 들어오는 것을 막기 위함. 기본값이 이미 false 이지만 user settings 에 명시해 두면 managed/local 스코프에서 누군가 true 로 덮어도 다시 잠기는 효과가 있어 일종의 “내 의도 박제” 용도로 켜둠.
이 옵션은 기본값이 이미 false 임. /config 화면에는 Auto-connect to IDE (external terminal) 로 노출됨.
- VS Code·JetBrains 의 내장 터미널에서
claude를 실행하면 이 설정과 무관하게 IDE 와 연결됨 — 같은 프로세스 트리에서 떠 있기 때문. - 외부 터미널(일반 터미널 앱) 에서
claude를 실행할 때 이미 떠 있는 IDE 인스턴스에 자동 연결할지 여부가 이 옵션의 적용 범위. false로 두면 외부 터미널에서는 IDE MCP 가 자동으로 붙지 않음 —mcp__ide__getDiagnostics같은 IDE 측 도구가 동작 가능 목록에서 빠지므로 그만큼의 컨텍스트가 시스템 프롬프트에서도 빠짐.
기본값이 이미
false인데 굳이 적는 이유는 두 가지뿐임. (1) 의도를 settings.json 에 명시해서 다른 사람이 보고 헷갈리지 않게 함. (2) managed/local 등 상위 스코프에서true로 덮였을 가능성을 user 스코프에서 다시 잠그고 싶을 때.
내장 터미널에서 일하면서 IDE 진단·열린 파일 정보 자체를 끊고 싶으면 이 옵션이 아니라 /ide 로 직접 disconnect 하거나 IDE 확장 자체를 비활성화해야 함. autoConnectIde 만 꺼서는 효과가 없음.
조용한 세션 — env 로 설문·텔레메트리·오류 보고 끄기
왜 켜뒀나: 세션 종료 시 가끔 뜨는 품질 설문 팝업, 백그라운드 OTEL 메트릭 송출, 크래시·오류 보고 — 셋 다 작업 흐름과는 무관한 부가 트래픽임. 한 번 다 끄고 나면 세션이 조용해지고 외부로 나가는 패킷도 줄어듦. 토큰 사용량을 직접 줄이는 효과는 아니라 위 세 옵션과는 결이 다르지만, 같은 settings.json 한 파일로 관리되니 한 묶음에 넣음.
env 는 settings.json 의 객체 키임. 여기에 적은 키·값은 매 세션의 환경 변수로 그대로 적용됨 — 공식 문서가 “Environment variables that will be applied to every session” 으로 정의함.
세 변수의 역할.
-
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1— 세션 종료 시 가끔 노출되는 품질 설문을 끔. 공식 문서:Set to
1to disable the “How is Claude doing?” session quality surveys. Surveys are also disabled whenDISABLE_TELEMETRY,DO_NOT_TRACK, orCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICis set, unlessCLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTELopts back in. — Claude Code — Environment VariablesDISABLE_TELEMETRY만 켜도 설문은 같이 꺼지지만, OTEL 환경(CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL) 이 다시 켤 수 있으므로 명시적으로 박아두는 편이 안전함. 설문 빈도만 조절하고 싶으면 끄는 대신feedbackSurveyRate옵션으로 샘플 비율을 낮추는 방법도 있음. -
DISABLE_TELEMETRY=1— OpenTelemetry 기반 사용 메트릭 송출을 끔. -
DISABLE_ERROR_REPORTING=1— 크래시·오류 보고 송출을 끔.
뒤의 두 변수는 단독 표 항목으로는 노출되지 않고 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 의 등가 집합 안에서 정의됨:
Equivalent of setting
DISABLE_AUTOUPDATER,DISABLE_FEEDBACK_COMMAND,DISABLE_ERROR_REPORTING, andDISABLE_TELEMETRY— Claude Code — Environment Variables
단축형 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 과의 선택
세 변수 + 자동 업데이터 + /feedback 슬래시 커맨드까지 한꺼번에 끄고 싶다면 아래 한 줄로 대체할 수 있음.
{
"env": {
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}선택 기준은 단순함. 자동 업데이트는 받고 싶다 면 NONESSENTIAL 단축형은 부적합함 — DISABLE_AUTOUPDATER 까지 함께 켜지므로 매번 수동 업데이트가 필요해짐. 텔레메트리·오류 리포팅·설문만 끄고 자동 업데이트와 /feedback 은 살리고 싶으면 세 변수를 개별로 지정하는 편이 맞음.
값은 문자열로 적기
env 객체의 값은 그대로 환경 변수로 주입되므로 모두 문자열로 적어야 함. "1" 대신 1 (숫자) 로 적지 않도록 주의. 변수를 끄고 싶다면 빈 문자열을 채우기보다 키 자체를 settings.json 에서 빼는 편이 의도가 분명함.
설정 파일 우선순위
위 네 항목(attribution/includeGitInstructions/autoConnectIde/env) 모두 같은 우선순위 규칙을 따름. 좁은 쪽이 우선임.
- Managed settings (조직 차원, MDM 등으로 배포)
- Local settings —
.claude/settings.local.json - Project settings —
.claude/settings.json - User settings —
~/.claude/settings.json
개인적으로 모든 레포에서 끄고 싶으면 user settings, 회사 레포 한정이면 project settings 에 두는 식으로 분기 가능. attribution 만 회사 레포에서 다르게 가져가고 나머지는 전역에서 끄는 식의 혼합도 자연스러움. env 도 같은 규칙이라 user 에 텔레메트리 차단을 박아두고, 회사 레포의 .claude/settings.json 에서 사내 OTEL 엔드포인트로 다시 켜는 식으로 덮어쓸 수 있음.
.claude.json(파일명) 과~/.claude/settings.json(디렉토리 + settings.json) 은 다른 파일임. 위 옵션들은 모두 후자에 들어감 — 전자에 적으면 무시됨.
테스트
Claude Code 2.x 기준 (공식 문서 https://code.claude.com/docs/en/settings 의 “Attribution settings” 섹션 및
includeGitInstructions·autoConnectIde·env항목, 그리고 https://code.claude.com/docs/en/env-vars 의CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY/CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC정의를 참조).
1. 효과 적용 전 — settings.json 비어 있는 기본 상태
~/.claude/settings.json 이 비어 있는 상태에서 Claude Code 가 만든 커밋:
fix(parser): handle trailing comma
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>PR description:
## Summary
- handle trailing comma in expression list
🤖 Generated with [Claude Code](https://claude.com/claude-code)시스템 프롬프트에는 git workflow 지침 + git status 스냅샷이 포함돼 있음 (외부에서 직접 출력 비교는 어려우나 공식 문서가 default true 로 명시).
2. 효과 적용 후 — 네 옵션 모두 켠 상태
{
"attribution": {
"commit": "",
"pr": ""
},
"includeGitInstructions": false,
"autoConnectIde": false,
"env": {
"CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1",
"DISABLE_TELEMETRY": "1",
"DISABLE_ERROR_REPORTING": "1"
}
}같은 작업의 커밋:
fix(parser): handle trailing commaPR description:
## Summary
- handle trailing comma in expression list꼬리말이 사라지고 작성자가 직접 쓴 본문만 남음. 시스템 프롬프트에서는 git 관련 블록이 빠지므로 매 턴 입력 토큰이 줄어듦. 단, Claude 가 커밋 직전에 git status/git diff 를 스스로 호출하는 패턴이 늘어남 — 메시지 작성에 필요한 컨텍스트를 직접 모아야 하기 때문. env 쪽 세 변수는 외부 트래픽·UI 차단이라 커밋 결과물에는 영향이 없음. 적용 확인은 새 세션에서 env | grep -E 'CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY|DISABLE_TELEMETRY|DISABLE_ERROR_REPORTING' 가 세 줄을 반환하는지로 검증함.
3. PR 만 숨기고 commit 은 사내 형식으로
{
"attribution": {
"commit": "Reviewed-by: bot <bot@example.com>",
"pr": ""
}
}커밋:
fix(parser): handle trailing comma
Reviewed-by: bot <bot@example.com>PR description: 꼬리말 없음 (위 2번과 동일).
commit 에 트레일러 형식(Key: Value) 을 그대로 넣으면 git log --format=%(trailers) 같은 트레일러 파서가 인식함. 단순 문장으로 넣으면 트레일러로는 잡히지 않으니 자동화 스크립트가 트레일러 파싱을 쓰는지에 따라 형식을 맞춰야 함.
4. includeCoAuthoredBy 와 attribution 동시 설정
{
"includeCoAuthoredBy": false,
"attribution": {
"commit": "",
"pr": ""
}
}커밋·PR 꼬리말 모두 제거됨 — attribution 이 우선이므로 결과는 위 2번과 같음. includeCoAuthoredBy 는 deprecated 경고와 함께 무시됨. 정리할 때 함께 지우는 편이 안전함.
5. includeGitInstructions: false 만 적용 시 커밋 메시지 흐름
{
"includeGitInstructions": false
}시스템 프롬프트에서 git 지침과 상태 스냅샷이 빠짐. 사용자가 “커밋 메시지 작성해줘” 라고 시키면 Claude 는 다음 순서로 동작함.
1. git status 호출 → 변경 파일 확인
2. git diff --staged 호출 → 변경 내용 파악
3. git log 호출 → 기존 메시지 스타일 참조
4. 메시지 초안 작성 후 사용자에게 확인기본값에서는 1~3 단계가 시스템 프롬프트의 스냅샷·지침으로 대체되므로 도구 호출이 줄어들지만, false 로 두면 매번 직접 호출함. 입력 토큰은 줄어들고 도구 호출 토큰은 늘어나는 트레이드오프가 있음 — 변경 파일이 많은 세션에서 절감 효과가 큼.
참고
- Claude Code — Settings (Attribution settings) —
attribution객체 키·기본값·우선순위 정의 - Claude Code — Settings (전체 키 표) —
includeGitInstructions,autoConnectIde,env,includeCoAuthoredBy(deprecated) 항목 위치 - Claude Code — Environment Variables —
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC(=DISABLE_AUTOUPDATER+DISABLE_FEEDBACK_COMMAND+DISABLE_ERROR_REPORTING+DISABLE_TELEMETRY),CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS등 - git-interpret-trailers(1) —
commit문자열을 트레일러로 인식시키려는 경우 형식 참조