개요

한 줄 요약: 내가 모든 프로젝트에 박아두고 쓰는 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 메트릭·오류 보고 송출 안함envCLAUDE_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 은 객체 키이고 그 아래 commitpr 두 문자열을 가짐. 적용 지점이 다름.

  • commitgit commit 메시지 본문 끝에 추가됨. 트레일러(Co-Authored-By: 같은 git trailer) 도 이 문자열에 포함됨. git log 에 영구히 남는 부분.
  • prgh 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 이 표준이 됨.

  1. 세분화 — 커밋과 PR 을 따로 끌 수 있음. 과거 옵션은 둘이 한꺼번에 묶여 있었음.
  2. 문구 교체 — 끄는 것뿐 아니라 임의 문구로 바꾸는 것도 가능함. 사내 정책상 “AI 사용 표기” 를 다른 형식으로 해야 하는 환경에 유용함.

공식 문서에 명시:

The attribution setting takes precedence over the deprecated includeCoAuthoredBy setting. To hide all attribution, set commit and pr to empty strings. — Claude Code Settings — Attribution settings

두 옵션이 동시에 있으면 attribution 이 이김. 마이그레이션할 때는 includeCoAuthoredBy 를 지우고 attribution 만 남기는 게 깔끔함.

매 턴 입력 토큰 절감 — includeGitInstructions

왜 켜뒀나: 모든 턴에서 시스템 프롬프트에 따라붙는 git workflow 안내문과 git status 스냅샷을 빼서 입력 토큰을 줄이기 위함. 자체 git skill·/commit 슬래시 커맨드를 갖춰 둔 환경에서는 안내문이 사실상 중복임.

기본값 true 일 때 Claude Code 는 매 세션의 시스템 프롬프트에 두 가지를 함께 넣음.

  1. commit·PR workflow 지침 — “커밋 메시지는 어떻게 쓰고”, “PR 은 어떤 형식으로 만들고” 같은 작업 절차문. 일반적으로 수백 토큰 분량.
  2. git status 스냅샷 — 세션 시작 시점의 브랜치·스테이징·미추적 파일 목록. 변경 파일 수에 비례해 토큰이 늘어남.

false 로 두면 위 두 블록이 시스템 프롬프트에서 통째로 빠짐. 즉 모든 턴에서 입력 토큰이 줄어드는 효과가 있음.

공식 문서 설명:

Include built-in commit and PR workflow instructions and the git status snapshot in Claude’s system prompt (default: true). Set to false to remove both, for example when using your own git workflow skills. The CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS environment 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 1 to disable the “How is Claude doing?” session quality surveys. Surveys are also disabled when DISABLE_TELEMETRY, DO_NOT_TRACK, or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set, unless CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL opts back in. — Claude Code — Environment Variables

    DISABLE_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, and DISABLE_TELEMETRYClaude 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) 모두 같은 우선순위 규칙을 따름. 좁은 쪽이 우선임.

  1. Managed settings (조직 차원, MDM 등으로 배포)
  2. Local settings.claude/settings.local.json
  3. Project settings.claude/settings.json
  4. 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-varsCLAUDE_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 comma

PR 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. includeCoAuthoredByattribution 동시 설정

{
  "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 로 두면 매번 직접 호출함. 입력 토큰은 줄어들고 도구 호출 토큰은 늘어나는 트레이드오프가 있음 — 변경 파일이 많은 세션에서 절감 효과가 큼.

참고