SpyBara
Go Premium

settings.md 2026-06-24 22:02 UTC to 2026-06-25 06:58 UTC

4 added, 3 removed.

2026
Thu 25 06:58 Wed 24 22:02 Tue 23 22:00 Mon 22 23:59 Fri 19 22:58 Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

Claude Code ์„ค์ •

์ „์—ญ ๋ฐ ํ”„๋กœ์ ํŠธ ์ˆ˜์ค€ ์„ค์ •๊ณผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ Claude Code๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Claude Code๋Š” ์‚ฌ์šฉ์ž์˜ ํ•„์š”์— ๋งž๊ฒŒ ๋™์ž‘์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์„ค์ •์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. /config ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ Claude Code๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์ƒํƒœ ์ •๋ณด๋ฅผ ๋ณด๊ณ  ๊ตฌ์„ฑ ์˜ต์…˜์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํƒญ ํ˜•์‹์˜ ์„ค์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ฝ๋‹ˆ๋‹ค. {/* min-version: 2.1.181 */}v2.1.181๋ถ€ํ„ฐ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ด์ง€ ์•Š๊ณ  /config์— key=value๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ๋‹จ์ผ ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด /config verbose=true์ž…๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ๋ฒ”์œ„

Claude Code๋Š” ๋ฒ”์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ์ด ์–ด๋””์— ์ ์šฉ๋˜๊ณ  ๋ˆ„๊ฐ€ ๊ณต์œ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„๋ฅผ ์ดํ•ดํ•˜๋ฉด ๊ฐœ์ธ ์‚ฌ์šฉ, ํŒ€ ํ˜‘์—… ๋˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด Claude Code๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„

๋ฒ”์œ„ ์œ„์น˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋Œ€์ƒ ํŒ€๊ณผ ๊ณต์œ ?
Managed ์„œ๋ฒ„ ๊ด€๋ฆฌ ์„ค์ •, plist / ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋˜๋Š” ์‹œ์Šคํ…œ ์ˆ˜์ค€ managed-settings.json ์„œ๋ฒ„ ๊ด€๋ฆฌ ์ „๋‹ฌ์„ ์œ„ํ•œ ๋ชจ๋“  ์กฐ์ง ๊ตฌ์„ฑ์›; plist, HKLM ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ฐ ํŒŒ์ผ ์ „๋‹ฌ์„ ์œ„ํ•œ ๋จธ์‹ ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž; HKCU ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ „๋‹ฌ์„ ์œ„ํ•œ ํ˜„์žฌ ์‚ฌ์šฉ์ž ์˜ˆ (IT์—์„œ ๋ฐฐํฌ)
User ~/.claude/ ๋””๋ ‰ํ† ๋ฆฌ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ์ž ์•„๋‹ˆ์˜ค
Project ์ €์žฅ์†Œ์˜ .claude/ ์ด ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ํ˜‘์—…์ž ์˜ˆ (git์— ์ปค๋ฐ‹๋จ)
Local .claude/settings.local.json ์ด ์ €์žฅ์†Œ์—์„œ๋งŒ ์‚ฌ์šฉ์ž ์•„๋‹ˆ์˜ค (gitignored)

๊ฐ ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ

Managed ๋ฒ”์œ„๋Š” ๋‹ค์Œ์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

  • ์กฐ์ง ์ „์ฒด์—์„œ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ณด์•ˆ ์ •์ฑ…
  • ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†๋Š” ๊ทœ์ • ์ค€์ˆ˜ ์š”๊ตฌ ์‚ฌํ•ญ
  • IT/DevOps์—์„œ ๋ฐฐํฌํ•œ ํ‘œ์ค€ํ™”๋œ ๊ตฌ์„ฑ

User ๋ฒ”์œ„๋Š” ๋‹ค์Œ์— ๊ฐ€์žฅ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค:

  • ๋ชจ๋“  ๊ณณ์—์„œ ์›ํ•˜๋Š” ๊ฐœ์ธ ์„ค์ • (ํ…Œ๋งˆ, ํŽธ์ง‘๊ธฐ ์„ค์ •)
  • ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ
  • API ํ‚ค ๋ฐ ์ธ์ฆ (์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋จ)

Project ๋ฒ”์œ„๋Š” ๋‹ค์Œ์— ๊ฐ€์žฅ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค:

  • ํŒ€ ๊ณต์œ  ์„ค์ • (๊ถŒํ•œ, hooks, MCP servers)
  • ์ „์ฒด ํŒ€์ด ๊ฐ€์ ธ์•ผ ํ•  ํ”Œ๋Ÿฌ๊ทธ์ธ
  • ํ˜‘์—…์ž ๊ฐ„ ๋„๊ตฌ ํ‘œ์ค€ํ™”

Local ๋ฒ”์œ„๋Š” ๋‹ค์Œ์— ๊ฐ€์žฅ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค:

  • ํŠน์ • ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๊ฐœ์ธ ์žฌ์ •์˜
  • ํŒ€๊ณผ ๊ณต์œ ํ•˜๊ธฐ ์ „์— ๊ตฌ์„ฑ ํ…Œ์ŠคํŠธ
  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๋จธ์‹  ํŠน์ • ์„ค์ •

๋ฒ”์œ„๊ฐ€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹

๋™์ผํ•œ ์„ค์ •์ด ์—ฌ๋Ÿฌ ๋ฒ”์œ„์—์„œ ๊ตฌ์„ฑ๋˜๋ฉด Claude Code๋Š” ์šฐ์„ ์ˆœ์œ„ ์ˆœ์„œ๋Œ€๋กœ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค:

  1. Managed (์ตœ๊ณ ) - ์•„๋ฌด๊ฒƒ๋„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Œ
  2. ๋ช…๋ น์ค„ ์ธ์ˆ˜ - ์ž„์‹œ ์„ธ์…˜ ์žฌ์ •์˜
  3. Local - ํ”„๋กœ์ ํŠธ ๋ฐ ์‚ฌ์šฉ์ž ์„ค์ • ์žฌ์ •์˜
  4. Project - ์‚ฌ์šฉ์ž ์„ค์ • ์žฌ์ •์˜
  5. User (์ตœ์ €) - ๋‹ค๋ฅธ ๊ฒƒ์ด ์„ค์ •์„ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๋•Œ ์ ์šฉ

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž ์„ค์ •์—์„œ spinnerTipsEnabled๋ฅผ true๋กœ ์„ค์ •ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ false๋กœ ์„ค์ •ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ๊ฐ’์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ ๊ทœ์น™์€ ์žฌ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ๋ฒ”์œ„ ์ „์ฒด์—์„œ ๋ณ‘ํ•ฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ • ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

๋ฒ”์œ„๋Š” ๋งŽ์€ Claude Code ๊ธฐ๋Šฅ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค:

๊ธฐ๋Šฅ ์‚ฌ์šฉ์ž ์œ„์น˜ ํ”„๋กœ์ ํŠธ ์œ„์น˜ Local ์œ„์น˜
Settings ~/.claude/settings.json .claude/settings.json .claude/settings.local.json
Subagents ~/.claude/agents/ .claude/agents/ ์—†์Œ
MCP servers ~/.claude.json .mcp.json ~/.claude.json (ํ”„๋กœ์ ํŠธ๋ณ„)
Plugins ~/.claude/settings.json .claude/settings.json .claude/settings.local.json
CLAUDE.md ~/.claude/CLAUDE.md CLAUDE.md ๋˜๋Š” .claude/CLAUDE.md CLAUDE.local.md

Windows์—์„œ ~/.claude๋กœ ํ‘œ์‹œ๋œ ๊ฒฝ๋กœ๋Š” %USERPROFILE%\.claude๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.


์„ค์ • ํŒŒ์ผ

settings.json ํŒŒ์ผ์€ ๊ณ„์ธต์  ์„ค์ •์„ ํ†ตํ•ด Claude Code๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ณต์‹ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž ์„ค์ •์€ ~/.claude/settings.json์— ์ •์˜๋˜๋ฉฐ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กœ์ ํŠธ ์„ค์ •์€ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค:

    • ์†Œ์Šค ์ œ์–ด์— ์ฒดํฌ์ธ๋˜๊ณ  ํŒ€๊ณผ ๊ณต์œ ๋˜๋Š” ์„ค์ •์„ ์œ„ํ•œ .claude/settings.json
    • ์ฒดํฌ์ธ๋˜์ง€ ์•Š์€ ์„ค์ •์„ ์œ„ํ•œ .claude/settings.local.json์œผ๋กœ, ๊ฐœ์ธ ์„ค์ • ๋ฐ ์‹คํ—˜์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. Claude Code๋Š” .claude/settings.local.json์ด ์ƒ์„ฑ๋  ๋•Œ git์„ ๊ตฌ์„ฑํ•˜์—ฌ ์ด๋ฅผ ๋ฌด์‹œํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์ง์ ‘ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ gitignore์— ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • Managed ์„ค์ •: ์ค‘์•™ ์ง‘์ค‘์‹ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•œ ์กฐ์ง์˜ ๊ฒฝ์šฐ Claude Code๋Š” managed ์„ค์ •์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์ „๋‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ๋™์ผํ•œ JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ๋˜๋Š” ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค:

    • ์„œ๋ฒ„ ๊ด€๋ฆฌ ์„ค์ •: Anthropic์˜ ์„œ๋ฒ„์—์„œ Claude.ai ๊ด€๋ฆฌ ์ฝ˜์†”์„ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ด€๋ฆฌ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

    • MDM/OS ์ˆ˜์ค€ ์ •์ฑ…: macOS ๋ฐ Windows์˜ ๊ธฐ๋ณธ ์žฅ์น˜ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค:

      • macOS: com.anthropic.claudecode managed preferences domain. plist์˜ ์ตœ์ƒ์œ„ ํ‚ค๋Š” managed-settings.json์„ ๋ฐ˜์˜ํ•˜๋ฉฐ, ์ค‘์ฒฉ๋œ ์„ค์ •์€ ๋”•์…”๋„ˆ๋ฆฌ์ด๊ณ  ๋ฐฐ์—ด์€ plist ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. Jamf, Iru (Kandji) ๋˜๋Š” ์œ ์‚ฌํ•œ MDM ๋„๊ตฌ์˜ ๊ตฌ์„ฑ ํ”„๋กœํ•„์„ ํ†ตํ•ด ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
      • Windows: HKLM\SOFTWARE\Policies\ClaudeCode ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ‚ค์™€ JSON์„ ํฌํ•จํ•˜๋Š” Settings ๊ฐ’ (REG_SZ ๋˜๋Š” REG_EXPAND_SZ) (๊ทธ๋ฃน ์ •์ฑ… ๋˜๋Š” Intune์„ ํ†ตํ•ด ๋ฐฐํฌ)
      • Windows (์‚ฌ์šฉ์ž ์ˆ˜์ค€): HKCU\SOFTWARE\Policies\ClaudeCode (์ตœ์ € ์ •์ฑ… ์šฐ์„ ์ˆœ์œ„, ๊ด€๋ฆฌ์ž ์ˆ˜์ค€ ์†Œ์Šค๊ฐ€ ์—†์„ ๋•Œ๋งŒ ์‚ฌ์šฉ)
    • ํŒŒ์ผ ๊ธฐ๋ฐ˜: ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐฐํฌ๋œ managed-settings.json ๋ฐ managed-mcp.json:

      • macOS: /Library/Application Support/ClaudeCode/
      • Linux ๋ฐ WSL: /etc/claude-code/
      • Windows: C:\Program Files\ClaudeCode\

      ํŒŒ์ผ ๊ธฐ๋ฐ˜ managed ์„ค์ •์€ managed-settings.json๊ณผ ๋™์ผํ•œ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ์— managed-settings.d/ ๋“œ๋กญ์ธ ๋””๋ ‰ํ† ๋ฆฌ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณ„๋„์˜ ํŒ€์ด ๋‹จ์ผ ํŒŒ์ผ ํŽธ์ง‘์„ ์กฐ์ •ํ•˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์ธ ์ •์ฑ… ์กฐ๊ฐ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      systemd ๊ทœ์น™์„ ๋”ฐ๋ฅด๋ฉด managed-settings.json์ด ๋จผ์ € ๊ธฐ๋ณธ์œผ๋กœ ๋ณ‘ํ•ฉ๋˜๊ณ , ๋“œ๋กญ์ธ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  *.json ํŒŒ์ผ์ด ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์œ„์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์Šค์นผ๋ผ ๊ฐ’์˜ ๊ฒฝ์šฐ ๋‚˜์ค‘ ํŒŒ์ผ์ด ์ด์ „ ํŒŒ์ผ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ์—ฐ๊ฒฐ๋˜๊ณ  ์ค‘๋ณต ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” ๊นŠ๊ฒŒ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. .๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

      ๋ณ‘ํ•ฉ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•˜๋ ค๋ฉด ์ˆซ์ž ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: 10-telemetry.json ๋ฐ 20-security.json).

    managed ์„ค์ • ๋ฐ Managed MCP ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

    ์ด ์ €์žฅ์†Œ์—๋Š” Jamf, Iru (Kandji), Intune ๋ฐ ๊ทธ๋ฃน ์ •์ฑ…์— ๋Œ€ํ•œ ์‹œ์ž‘ ๋ฐฐํฌ ํ…œํ”Œ๋ฆฟ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ํ•„์š”์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐํƒ€ ๊ตฌ์„ฑ์€ ~/.claude.json์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” OAuth ์„ธ์…˜, MCP server ๊ตฌ์„ฑ (์‚ฌ์šฉ์ž ๋ฐ local ๋ฒ”์œ„), ํ”„๋กœ์ ํŠธ๋ณ„ ์ƒํƒœ (ํ—ˆ์šฉ๋œ ๋„๊ตฌ, ์‹ ๋ขฐ ์„ค์ •) ๋ฐ ๋‹ค์–‘ํ•œ ์บ์‹œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฒ”์œ„ MCP ์„œ๋ฒ„๋Š” .mcp.json์— ๋ณ„๋„๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  },
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.acme.com",
    "Reminder: Code reviews required for all PRs",
    "New security policy in effect"
  ]
}

์œ„์˜ ์˜ˆ์ œ์—์„œ $schema ์ค„์€ Claude Code ์„ค์ •์— ๋Œ€ํ•œ ๊ณต์‹ JSON ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์ด๋ฅผ settings.json์— ์ถ”๊ฐ€ํ•˜๋ฉด VS Code, Cursor ๋ฐ JSON ์Šคํ‚ค๋งˆ ๊ฒ€์ฆ์„ ์ง€์›ํ•˜๋Š” ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ์—์„œ ์ž๋™ ์™„์„ฑ ๋ฐ ์ธ๋ผ์ธ ๊ฒ€์ฆ์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

๊ฒŒ์‹œ๋œ ์Šคํ‚ค๋งˆ๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋ฉฐ ๊ฐ€์žฅ ์ตœ๊ทผ CLI ๋ฆด๋ฆฌ์Šค์—์„œ ์ถ”๊ฐ€๋œ ์„ค์ •์„ ํฌํ•จํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ตœ๊ทผ์— ๋ฌธ์„œํ™”๋œ ํ•„๋“œ์— ๋Œ€ํ•œ ๊ฒ€์ฆ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐ˜๋“œ์‹œ ๊ตฌ์„ฑ์ด ์œ ํšจํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘์ด ์ ์šฉ๋˜๋Š” ์‹œ๊ธฐ

Claude Code๋Š” ์„ค์ • ํŒŒ์ผ์„ ๊ฐ์‹œํ•˜๊ณ  ๋ณ€๊ฒฝ๋  ๋•Œ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ํ‚ค์— ๋Œ€ํ•œ ํŽธ์ง‘์€ ์žฌ์‹œ์ž‘ ์—†์ด ์‹คํ–‰ ์ค‘์ธ ์„ธ์…˜์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” permissions, hooks ๋ฐ apiKeyHelper์™€ ๊ฐ™์€ ์ž๊ฒฉ ์ฆ๋ช… ๋„์šฐ๋ฏธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋กœ๋“œ๋Š” ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ, local ๋ฐ managed ์„ค์ •์„ ํฌํ•จํ•˜๋ฉฐ, ๊ฐ์ง€๋œ ๊ฐ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ConfigChange hook์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ํ‚ค๋Š” ์„ธ์…˜ ์‹œ์ž‘ ์‹œ ํ•œ ๋ฒˆ ์ฝํ˜€์ง€๊ณ  ๋Œ€์‹  ๋‹ค์Œ ์žฌ์‹œ์ž‘์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค:

  • model: ์„ธ์…˜ ์ค‘์— ์ „ํ™˜ํ•˜๋ ค๋ฉด /model์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค
  • outputStyle: ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์˜ ์ผ๋ถ€๋กœ, /clear ๋˜๋Š” ์žฌ์‹œ์ž‘ ์‹œ ๋‹ค์‹œ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค

Managed ์„ค์ •์˜ ์œ ํšจํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ

Managed ์„ค์ •์€ ๊ด€๋Œ€ํ•˜๊ฒŒ ํŒŒ์‹ฑ๋ฉ๋‹ˆ๋‹ค. Managed ๊ตฌ์„ฑ์— ์Šคํ‚ค๋งˆ ๊ฒ€์ฆ์— ์‹คํŒจํ•˜๋Š” ํ•ญ๋ชฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด Claude Code๋Š” ํ•ด๋‹น ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํ•˜๋ฉฐ ๋‚จ์€ ๋ชจ๋“  ์œ ํšจํ•œ ์ •์ฑ…์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์˜คํƒ€๊ฐ€ ์กฐ์ง์˜ ๋‚˜๋จธ์ง€ ์ •์ฑ…์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ์„ธ ๊ฐ€์ง€ ์ „๋‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ชจ๋‘์—์„œ ์ผ๊ด€๋ฉ๋‹ˆ๋‹ค: ์„œ๋ฒ„ ๊ด€๋ฆฌ ์„ค์ •, MDM์„ ํ†ตํ•ด ๋ฐฐํฌ๋œ plist ๋ฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ •์ฑ…, ๊ทธ๋ฆฌ๊ณ  managed-settings.json ํŒŒ์ผ. Claude Code v2.1.169 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ ์ ์šฉ ํ•„๋“œ๋Š” ์ „์ฒด์ ์œผ๋กœ ์ œ๊ฑฐ๋˜๋Š” ๋Œ€์‹  ํ•„๋“œ๋ณ„๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค:

ํ•„๋“œ ์กด์žฌํ•˜์ง€๋งŒ ์œ ํšจํ•˜์ง€ ์•Š์„ ๋•Œ์˜ ๋™์ž‘
allowedMcpServers ๊ฐ’์ด ์ˆ˜์ •๋  ๋•Œ๊นŒ์ง€ MCP ์„œ๋ฒ„๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋„๋ก ๋นˆ ํ—ˆ์šฉ ๋ชฉ๋ก์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์œ ํšจํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์€ ์ œ๊ฑฐ๋˜๊ณ  ์œ ํšจํ•œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
allowManagedMcpServersOnly true๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
availableModels {/* min-version: 2.1.175 */}๊ฐ’์ด ์ˆ˜์ •๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋ณธ ๋ชจ๋ธ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋นˆ ํ—ˆ์šฉ ๋ชฉ๋ก์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ๋น„๋ฌธ์ž์—ด ํ•ญ๋ชฉ์€ ์ œ๊ฑฐ๋˜๊ณ  ์œ ํšจํ•œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. v2.1.175 ์ด์ƒ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
enforceAvailableModels {/* min-version: 2.1.175 */}}true๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. v2.1.175 ์ด์ƒ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
forceLoginOrgUUID ๊ฐ’์ด ์ˆ˜์ •๋  ๋•Œ๊นŒ์ง€ ์กฐ์ง์ด ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
deniedMcpServers ๊ฐœ๋ณ„ ์œ ํšจํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์€ ์ œ๊ฑฐ๋˜๊ณ  ์œ ํšจํ•œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์™„์ „ํžˆ ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์€ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์„œ๋ฒ„๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ฉด ์ •์ฑ…์ด ๋ช…๋ช…ํ•˜์ง€ ์•Š์€ ์„œ๋ฒ„๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
sandbox.credentials {/* min-version: 2.1.191 */}}files ๋˜๋Š” envVars์˜ ๊ฐœ๋ณ„ ์œ ํšจํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์€ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ์ œ๊ฑฐ๋˜๊ณ  ์œ ํšจํ•œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์™„์ „ํžˆ ์œ ํšจํ•˜์ง€ ์•Š์€ credentials ๊ฐ’์€ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ์‚ญ์ œ๋˜์ง€๋งŒ sandbox์˜ ๋‚˜๋จธ์ง€๋Š” ์—ฌ์ „ํžˆ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. v2.1.191 ์ด์ƒ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

requiredMinimumVersion ๋ฐ requiredMaximumVersion์€ ์„ค๊ณ„์ƒ ์‹คํŒจํ•˜๋„๋ก ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค: ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์€ ์ ์šฉ๋˜์ง€ ์•Š๊ณ  ์ œ๊ฑฐ๋˜๋ฏ€๋กœ ์ž˜๋ชป๋œ ์ •์ฑ… ํ‘ธ์‹œ๊ฐ€ Claude Code ์‹œ์ž‘์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ฒ€์ฆ ์˜ค๋ฅ˜๋Š” ์„ธ ๊ณณ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:

  • ๋Œ€ํ™”ํ˜• ์„ธ์…˜์€ ์‹œ์ž‘ ์‹œ ์œ ํšจํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์„ ๋‚˜์—ดํ•˜๋Š” ๋Œ€ํ™”๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • -p๋ฅผ ์‚ฌ์šฉํ•œ ํ—ค๋“œ๋ฆฌ์Šค ์‹คํ–‰์€ stderr์— ์š”์•ฝ์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
  • claude doctor๋Š” ๊ฐ ์œ ํšจํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์„ ์†Œ์Šค ๋ฐ ํ•„๋“œ์™€ ํ•จ๊ป˜ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

์ •์ฑ… ๋ณ€๊ฒฝ์„ ๊ฒ€์ฆํ•˜๋ ค๋ฉด ์ „์‚ฌ ๋ฐฐํฌ ์ „์— ํ…Œ์ŠคํŠธ ๋จธ์‹ ์—์„œ claude doctor๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ด€๋Œ€ํ•จ์€ managed ์„ค์ •์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ ๋ฐ local ์„ค์ • ํŒŒ์ผ์€ ์—„๊ฒฉํ•ฉ๋‹ˆ๋‹ค: ๊ฒ€์ฆ์— ์‹คํŒจํ•˜๋Š” ํŒŒ์ผ์€ ์ „์ฒด์ ์œผ๋กœ ๊ฑฐ๋ถ€๋˜๊ณ  ๋ณด๊ณ ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„ค์ •

settings.json์€ ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

ํ‚ค ์„ค๋ช… ์˜ˆ์ œ
advisorModel {/* min-version: 2.1.98 /}์„œ๋ฒ„ ์ธก advisor ๋„๊ตฌ๋ฅผ ์œ„ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. "opus", "sonnet" ๋˜๋Š” "fable" ({/ min-version: 2.1.170 */}v2.1.170+)๊ณผ ๊ฐ™์€ ๋ชจ๋ธ ๋ณ„์นญ ๋˜๋Š” ์ „์ฒด ๋ชจ๋ธ ID๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. /advisor๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. Advisor๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์„ค์ • ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. Claude Code v2.1.98 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค "opus"
agent ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ๋ช…๋ช…๋œ subagent๋กœ ์‹คํ–‰ํ•˜๊ณ  claude agents์—์„œ ๋””์ŠคํŒจ์น˜๋œ ์„ธ์…˜์˜ ๊ธฐ๋ณธ ์—์ด์ „ํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น subagent์˜ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ, ๋„๊ตฌ ์ œํ•œ ๋ฐ ๋ชจ๋ธ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. subagents ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœ์„ ์ฐธ์กฐํ•˜์„ธ์š” "code-reviewer"
agentPushNotifEnabled {/* min-version: 2.1.119 */}Remote Control์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์„ ๋•Œ Claude๊ฐ€ ์žฅ์‹œ๊ฐ„ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ์™€ ๊ฐ™์ด ํœด๋Œ€ํฐ์— ์‚ฌ์ „ ์˜ˆ๋ฐฉ์  ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false. /config์— Claude๊ฐ€ ๊ฒฐ์ •ํ•  ๋•Œ ํ‘ธ์‹œ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Claude Code v2.1.119 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค true
allowAllClaudeAiMcps (Managed ์„ค์ •๋งŒ) ๋ฐฐํฌ๋œ managed-mcp.json๊ณผ ํ•จ๊ป˜ claude.ai ์ปค๋„ฅํ„ฐ๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋…์ ์  ์ œ์–ด๋ฅผ ์ทจํ•˜๊ณ  ์ด๋ฅผ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค. Managed MCP ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š” true
allowedChannelPlugins (Managed ์„ค์ •๋งŒ) ๋ฉ”์‹œ์ง€๋ฅผ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ„๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ํ—ˆ์šฉ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์„ค์ •๋˜๋ฉด ๊ธฐ๋ณธ Anthropic ํ—ˆ์šฉ ๋ชฉ๋ก์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์Œ = ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ํด๋ฐฑ, ๋นˆ ๋ฐฐ์—ด = ๋ชจ๋“  ์ฑ„๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฐจ๋‹จ. channelsEnabled: true๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฑ„๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹คํ–‰ ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š” [{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]
allowedHttpHookUrls HTTP hooks๊ฐ€ ๋Œ€์ƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” URL ํŒจํ„ด์˜ ํ—ˆ์šฉ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. *๋ฅผ ์™€์ผ๋“œ์นด๋“œ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •๋˜๋ฉด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” URL์„ ๊ฐ€์ง„ hooks๋Š” ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์Œ = ์ œํ•œ ์—†์Œ, ๋นˆ ๋ฐฐ์—ด = ๋ชจ๋“  HTTP hooks ์ฐจ๋‹จ. ๋ฐฐ์—ด์€ ์„ค์ • ์†Œ์Šค ์ „์ฒด์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. Hook ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š” ["https://hooks.example.com/*"]
allowedMcpServers Managed ์„ค์ •์—์„œ ์„ค์ •๋˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” MCP ์„œ๋ฒ„์˜ ํ—ˆ์šฉ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์Œ = ์ œํ•œ ์—†์Œ, ๋นˆ ๋ฐฐ์—ด = ์ž ๊ธˆ. ๋ชจ๋“  ๋ฒ”์œ„์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๋ถ€ ๋ชฉ๋ก์ด ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. Managed MCP ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š” [{ "serverName": "github" }]
allowManagedHooksOnly (Managed ์„ค์ •๋งŒ) Managed hooks, SDK hooks ๋ฐ managed ์„ค์ • enabledPlugins์—์„œ ๊ฐ•์ œ ํ™œ์„ฑํ™”๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ hooks๋งŒ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ ๋ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ hooks๋Š” ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. Hook ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š” true
allowManagedMcpServersOnly (Managed ์„ค์ •๋งŒ) Managed ์„ค์ •์˜ allowedMcpServers๋งŒ ์กด์ค‘๋ฉ๋‹ˆ๋‹ค. deniedMcpServers๋Š” ์—ฌ์ „ํžˆ ๋ชจ๋“  ์†Œ์Šค์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์—ฌ์ „ํžˆ MCP ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ด€๋ฆฌ์ž ์ •์˜ ํ—ˆ์šฉ ๋ชฉ๋ก๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. Managed MCP ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š” true
allowManagedPermissionRulesOnly (Managed ์„ค์ •๋งŒ) ์‚ฌ์šฉ์ž ๋ฐ ํ”„๋กœ์ ํŠธ ์„ค์ •์ด allow, ask ๋˜๋Š” deny ๊ถŒํ•œ ๊ทœ์น™์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. Managed ์„ค์ •์˜ ๊ทœ์น™๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. Managed ์ „์šฉ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š” true
alwaysThinkingEnabled ๋ชจ๋“  ์„ธ์…˜์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™•์žฅ ์‚ฌ๊ณ ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ง์ ‘ ํŽธ์ง‘ํ•˜๊ธฐ๋ณด๋‹ค๋Š” /config ๋ช…๋ น์„ ํ†ตํ•ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๊ณ ๋ฅผ ๊ฐ•์ œ๋กœ ๋„๋ ค๋ฉด env์—์„œ MAX_THINKING_TOKENS=0์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Anthropic API์—์„œ ์‚ฌ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. Fable 5๋Š” ์ œ์™ธ๋˜๋ฉฐ, ์ด๋Š” ์‚ฌ๊ณ ๋ฅผ ๋Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ œ3์ž ๊ณต๊ธ‰์ž์—์„œ ์ด๋Š” thinking ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๋ฉฐ, ์ ์‘ํ˜• ์ถ”๋ก  ๋ชจ๋ธ์€ ์—ฌ์ „ํžˆ ์‚ฌ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค true
apiKeyHelper ์‹œ์Šคํ…œ ์…ธ (/bin/sh on macOS and Linux, cmd on Windows)์„ ํ†ตํ•ด ์‹คํ–‰๋  ์‚ฌ์šฉ์ž ์ •์˜ ๋ช…๋ น์œผ๋กœ ์ธ์ฆ ๊ฐ’์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋ชจ๋ธ ์š”์ฒญ์— ๋Œ€ํ•ด X-Api-Key ๋ฐ Authorization: Bearer ํ—ค๋”๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_API_KEY_HELPER_TTL_MS๋กœ ์ƒˆ๋กœ๊ณ ์นจ ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค /bin/generate_temp_api_key.sh
attribution git ์ปค๋ฐ‹ ๋ฐ pull request์— ๋Œ€ํ•œ attribution์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. Attribution ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š” {"commit": "๐Ÿค– Generated with Claude Code", "pr": ""}
autoCompactEnabled {/* min-version: 2.1.119 */}์ปจํ…์ŠคํŠธ๊ฐ€ ํ•œ๊ณ„์— ์ ‘๊ทผํ•  ๋•Œ ์ž๋™์œผ๋กœ ๋Œ€ํ™”๋ฅผ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. /config์— ์ž๋™ ์••์ถ•์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด env์—์„œ DISABLE_AUTO_COMPACT๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค false
autoMemoryDirectory ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ ˆ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ~/ ์ ‘๋‘์‚ฌ ๊ฒฝ๋กœ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋˜๋Š” local ์„ค์ •์—์„œ ์ด๋Š” ์ž‘์—… ๊ณต๊ฐ„ ์‹ ๋ขฐ ๋Œ€ํ™”๋ฅผ ์ˆ˜๋ฝํ•œ ํ›„์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋œ ์ €์žฅ์†Œ๊ฐ€ ์ด ํŒŒ์ผ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค "~/my-memory-dir"
autoMemoryEnabled ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. false์ผ ๋•Œ Claude๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ฝ๊ฑฐ๋‚˜ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. ์„ธ์…˜ ์ค‘์— /memory๋กœ๋„ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด env์—์„œ CLAUDE_CODE_DISABLE_AUTO_MEMORY๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค false
autoMode ์ž๋™ ๋ชจ๋“œ ๋ถ„๋ฅ˜๊ธฐ๊ฐ€ ์ฐจ๋‹จํ•˜๊ณ  ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. environment, allow, soft_deny ๋ฐ hard_deny ๋ฐฐ์—ด์˜ ์‚ฐ๋ฌธ ๊ทœ์น™์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์— ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ์ž์—ด "$defaults"๋ฅผ ํฌํ•จํ•˜์—ฌ ํ•ด๋‹น ์œ„์น˜์—์„œ ๊ธฐ๋ณธ ์ œ๊ณต ๊ทœ์น™์„ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ๋ชจ๋“œ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๊ณต์œ  ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ๋Š” ์ฝ์ง€ ์•Š์Œ {"soft_deny": ["$defaults", "Never run terraform apply"]}
autoScrollEnabled fullscreen ๋ Œ๋”๋ง์—์„œ ์ƒˆ ์ถœ๋ ฅ์„ ๋Œ€ํ™”์˜ ๋งจ ์•„๋ž˜๋กœ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. /config์— ์ž๋™ ์Šคํฌ๋กค๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊บผ์ ธ ์žˆ์„ ๋•Œ๋„ ๊ถŒํ•œ ํ”„๋กฌํ”„ํŠธ๋Š” ์—ฌ์ „ํžˆ ๋ณด๊ธฐ๋กœ ์Šคํฌ๋กค๋ฉ๋‹ˆ๋‹ค false
autoUpdatesChannel ์—…๋ฐ์ดํŠธ๋ฅผ ๋”ฐ๋ฅผ ๋ฆด๋ฆฌ์Šค ์ฑ„๋„์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์•ฝ 1์ฃผ์ผ ๋œ ๋ฒ„์ „์ด๊ณ  ์ฃผ์š” ํšŒ๊ท€๊ฐ€ ์žˆ๋Š” ๋ฒ„์ „์„ ๊ฑด๋„ˆ๋›ฐ๋Š” "stable"์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฆด๋ฆฌ์Šค์ธ "latest" (๊ธฐ๋ณธ๊ฐ’)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์—…๋ฐ์ดํŠธ๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด env์—์„œ DISABLE_AUTOUPDATER๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค "stable"
availableModels ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”์ธ ์„ธ์…˜, subagents, skills ๋ฐ advisor๋ฅผ ์œ„ํ•ด ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. enforceAvailableModels๋„ ์„ค์ •๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ์˜ต์…˜์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์„ ํƒ ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š” ["sonnet", "haiku"]
awaySummaryEnabled ๋ช‡ ๋ถ„ ๋™์•ˆ ํ„ฐ๋ฏธ๋„์—์„œ ๋–จ์–ด์ ธ ์žˆ๋‹ค๊ฐ€ ๋Œ์•„์˜ฌ ๋•Œ ํ•œ ์ค„ ์„ธ์…˜ ์š”์•ฝ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด false๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ /config์—์„œ ์„ธ์…˜ ์š”์•ฝ์„ ๋•๋‹ˆ๋‹ค. CLAUDE_CODE_ENABLE_AWAY_SUMMARY์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค true
awsAuthRefresh .aws ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํฌ๋ฆฝํŠธ (๊ณ ๊ธ‰ ์ž๊ฒฉ ์ฆ๋ช… ๊ตฌ์„ฑ ์ฐธ์กฐ) aws sso login --profile myprofile
awsCredentialExport AWS ์ž๊ฒฉ ์ฆ๋ช…์ด ํฌํ•จ๋œ JSON์„ ์ถœ๋ ฅํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํฌ๋ฆฝํŠธ (๊ณ ๊ธ‰ ์ž๊ฒฉ ์ฆ๋ช… ๊ตฌ์„ฑ ์ฐธ์กฐ) /bin/generate_aws_grant.sh
axScreenReader {/* min-version: 2.1.181 */}ํ™”๋ฉด ํŒ๋…๊ธฐ ์นœํ™”์  ์ถœ๋ ฅ์„ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค: ์žฅ์‹์  ํ…Œ๋‘๋ฆฌ๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—†๋Š” ํ‰๋ฉด ํ…์ŠคํŠธ. ํ™”๋ฉด ํŒ๋…๊ธฐ ๋ชจ๋“œ๋Š” ํ•ญ์ƒ ํด๋ž˜์‹ ๋ Œ๋”๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š” ๋™์•ˆ tui ์„ค์ •์€ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CLAUDE_AX_SCREEN_READER ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ --ax-screen-reader ํ”Œ๋ž˜๊ทธ๊ฐ€ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. Claude Code v2.1.181 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค true
blockedMarketplaces (Managed ์„ค์ •๋งŒ) ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์†Œ์Šค์˜ ์ฐจ๋‹จ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ถ”๊ฐ€ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜, ์—…๋ฐ์ดํŠธ, ์ƒˆ๋กœ๊ณ ์นจ ๋ฐ ์ž๋™ ์—…๋ฐ์ดํŠธ์— ์ ์šฉ๋˜๋ฏ€๋กœ ์ •์ฑ…์ด ์„ค์ •๋˜๊ธฐ ์ „์— ์ถ”๊ฐ€๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฐจ๋‹จ๋œ ์†Œ์Šค๋Š” ๋‹ค์šด๋กœ๋“œ ์ „์— ํ™•์ธ๋˜๋ฏ€๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋‹ฟ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Managed ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š” [{ "source": "github", "repo": "untrusted/plugins" }]
channelsEnabled (Managed ์„ค์ •๋งŒ) ์กฐ์ง์„ ์œ„ํ•ด channels๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. Claude.ai Team ๋ฐ Enterprise ํ”Œ๋žœ์—์„œ ์„ค์ •๋˜์ง€ ์•Š๊ฑฐ๋‚˜ false์ด๋ฉด ์ฑ„๋„์ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. Anthropic Console ๊ณ„์ •์ด API ํ‚ค ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์กฐ์ง์ด managed ์„ค์ •์„ ๋ฐฐํฌํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฑ„๋„์ด ํ—ˆ์šฉ๋˜๋ฉฐ, ์ด ๊ฒฝ์šฐ ์ด ํ‚ค๋ฅผ true๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค true
claudeMd (Managed ์„ค์ •๋งŒ) ์กฐ์ง ๊ด€๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฃผ์ž…๋œ CLAUDE.md ์Šคํƒ€์ผ ์ง€์นจ์ž…๋‹ˆ๋‹ค. Managed ๋˜๋Š” ์ •์ฑ… ์„ค์ •์—์„œ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ๋˜๋ฉฐ ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ ๋ฐ local ์„ค์ •์—์„œ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์กฐ์ง ์ „์ฒด CLAUDE.md๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” "Always run make lint before committing."
claudeMdExcludes ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋กœ๋“œํ•  ๋•Œ ๊ฑด๋„ˆ๋›ธ CLAUDE.md ํŒŒ์ผ์˜ Glob ํŒจํ„ด ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ํŒจํ„ด์€ ์ ˆ๋Œ€ ํŒŒ์ผ ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ ๋ฐ local ๋ฉ”๋ชจ๋ฆฌ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. managed ์ •์ฑ… ํŒŒ์ผ์€ ์ œ์™ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ["**/vendor/**/CLAUDE.md"]
cleanupPeriodDays ์ด ๊ธฐ๊ฐ„๋ณด๋‹ค ์˜ค๋ž˜๋œ ์„ธ์…˜ ํŒŒ์ผ์€ ์‹œ์ž‘ ์‹œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค (๊ธฐ๋ณธ๊ฐ’: 30์ผ, ์ตœ์†Œ 1). 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๊ฒ€์ฆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹œ์ž‘ ์‹œ ๊ณ ์•„ subagent worktrees์˜ ์ž๋™ ์ œ๊ฑฐ์— ๋Œ€ํ•œ ๋‚˜์ด ๊ธฐ์ค€์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋žœ์Šคํฌ๋ฆฝํŠธ ์“ฐ๊ธฐ๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด CLAUDE_CODE_SKIP_PROMPT_HISTORY ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋น„๋Œ€ํ™”ํ˜• ๋ชจ๋“œ (-p)์—์„œ --no-session-persistence ํ”Œ๋ž˜๊ทธ ๋˜๋Š” persistSession: false SDK ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 20
companyAnnouncements ์‹œ์ž‘ ์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•  ๊ณต์ง€์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ณต์ง€์‚ฌํ•ญ์ด ์ œ๊ณต๋˜๋ฉด ๋ฌด์ž‘์œ„๋กœ ์ˆœํ™˜๋ฉ๋‹ˆ๋‹ค. ["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]
defaultShell ์ž…๋ ฅ ์ƒ์ž ! ๋ช…๋ น์˜ ๊ธฐ๋ณธ ์…ธ์ž…๋‹ˆ๋‹ค. "bash" (๊ธฐ๋ณธ๊ฐ’) ๋˜๋Š” "powershell"์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. "powershell"์„ ์„ค์ •ํ•˜๋ฉด Windows์—์„œ ๋Œ€ํ™”ํ˜• ! ๋ช…๋ น์„ PowerShell์„ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_USE_POWERSHELL_TOOL=1์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. PowerShell ๋„๊ตฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” "powershell"
deniedMcpServers Managed ์„ค์ •์—์„œ ์„ค์ •๋˜๋ฉด ๋ช…์‹œ์ ์œผ๋กœ ์ฐจ๋‹จ๋œ MCP ์„œ๋ฒ„์˜ ๊ฑฐ๋ถ€ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. Managed ์„œ๋ฒ„๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฒ”์œ„์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๋ถ€ ๋ชฉ๋ก์ด ํ—ˆ์šฉ ๋ชฉ๋ก๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. Managed MCP ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š” [{ "serverName": "filesystem" }]
disableAgentView ๋ฐฐ๊ฒฝ ์—์ด์ „ํŠธ ๋ฐ ์—์ด์ „ํŠธ ๋ณด๊ธฐ๋ฅผ ๋„๋ ค๋ฉด true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค: claude agents, --bg, /background ๋ฐ ์˜จ๋””๋งจ๋“œ ๊ฐ๋…์ž. ์ผ๋ฐ˜์ ์œผ๋กœ managed ์„ค์ •์—์„œ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_DISABLE_AGENT_VIEW๋ฅผ 1๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค true
disableAllHooks ๋ชจ๋“  hooks ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ ์ƒํƒœ ์ค„ ๋น„ํ™œ์„ฑํ™” true
disableArtifact Artifact ๋„๊ตฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์„ธ์…˜ ์ถœ๋ ฅ์„ claude.ai์˜ ๋น„๊ณต๊ฐœ ์›น ํŽ˜์ด์ง€๋กœ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_DISABLE_ARTIFACT๋ฅผ 1๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค true
disableAutoMode ์ž๋™ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด "disable"๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Shift+Tab ์ˆœํ™˜์—์„œ auto๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‹œ์ž‘ ์‹œ --permission-mode auto๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. managed ์„ค์ •์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์„ ๋•Œ ๊ฐ€์žฅ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค "disable"
disableBundledSkills skills ๋ฐ Claude Code์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค: ๋ฒˆ๋“ค skills ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์™„์ „ํžˆ ์ œ๊ฑฐ๋˜๊ณ , /init๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ์ œ๊ณต ์Šฌ๋ž˜์‹œ ๋ช…๋ น์€ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ชจ๋ธ์—์„œ ์ˆจ๊ฒจ์ง‘๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ skills, .claude/skills/ ๋ฐ .claude/commands/๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CLAUDE_CODE_DISABLE_BUNDLED_SKILLS๋ฅผ 1๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค true
disableClaudeAiConnectors {/* min-version: 2.1.182 */}claude.ai MCP ์ปค๋„ฅํ„ฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ž๋™ ๊ฐ€์ ธ์˜ค๊ธฐ ๋˜๋Š” ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ค์ • ๋ฒ”์œ„์—์„œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์†Œ์Šค์—์„œ true๊ฐ€ ์šฐ์„ ํ•˜๋ฏ€๋กœ ์ฒดํฌ์ธ๋œ ํ”„๋กœ์ ํŠธ .claude/settings.json์ด ์ €์žฅ์†Œ๋ฅผ ํด๋ผ์šฐ๋“œ ์ปค๋„ฅํ„ฐ์—์„œ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ ์ˆ˜์ค€ false๋Š” ์‚ฌ์šฉ์ž ๋˜๋Š” ์ •์ฑ… ์ˆ˜์ค€ true๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. --mcp-config๋ฅผ ํ†ตํ•ด ๋ช…์‹œ์ ์œผ๋กœ ์ „๋‹ฌ๋œ ์„œ๋ฒ„๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ปค๋„ฅํ„ฐ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋Š” ๋Œ€์‹  ๊ฐœ๋ณ„ ์ปค๋„ฅํ„ฐ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ ค๋ฉด deniedMcpServers๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Claude Code v2.1.182 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค true
disableDeepLinkRegistration Claude Code๊ฐ€ ์‹œ์ž‘ ์‹œ ์šด์˜ ์ฒด์ œ์— claude-cli:// ํ”„๋กœํ† ์ฝœ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด "disable"๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Deep links๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์™ธ๋ถ€ ๋„๊ตฌ๊ฐ€ ์‚ฌ์ „ ์ฑ„์›Œ์ง„ ํ”„๋กฌํ”„ํŠธ๋กœ Claude Code ์„ธ์…˜์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก์ด ์ œํ•œ๋˜๊ฑฐ๋‚˜ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋˜๋Š” ํ™˜๊ฒฝ์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค "disable"
disabledMcpjsonServers .mcp.json ํŒŒ์ผ์—์„œ ๊ฑฐ๋ถ€ํ•  ํŠน์ • MCP ์„œ๋ฒ„ ๋ชฉ๋ก ["filesystem"]
disableRemoteControl {/* min-version: 2.1.128 */}Remote Control ๋น„ํ™œ์„ฑํ™”: claude remote-control, --remote-control ํ”Œ๋ž˜๊ทธ, ์ž๋™ ์‹œ์ž‘ ๋ฐ ์„ธ์…˜ ๋‚ด ์ „ํ™˜์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์žฅ์น˜๋ณ„ MDM ์ ์šฉ์„ ์œ„ํ•ด managed ์„ค์ •์— ๋ฐฐ์น˜๋˜์ง€๋งŒ ๋ชจ๋“  ๋ฒ”์œ„์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Claude Code v2.1.128 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค true
disableSkillShellExecution skills ๋ฐ ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ, ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” ์ถ”๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ ์†Œ์Šค์˜ ์‚ฌ์šฉ์ž ์ •์˜ ๋ช…๋ น์—์„œ !`...` ๋ฐ ```! ๋ธ”๋ก์— ๋Œ€ํ•œ ์ธ๋ผ์ธ ์…ธ ์‹คํ–‰์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์€ ์‹คํ–‰๋˜๋Š” ๋Œ€์‹  [shell command execution disabled by policy]๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ๋ฒˆ๋“ค ๋ฐ managed skills๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. managed ์„ค์ •์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์„ ๋•Œ ๊ฐ€์žฅ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค true
disableWorkflows ๋™์  ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ ๋ฒˆ๋“ค ์›Œํฌํ”Œ๋กœ์šฐ ๋ช…๋ น์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false. CLAUDE_CODE_DISABLE_WORKFLOWS๋ฅผ 1๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค true
editorMode ์ž…๋ ฅ ํ”„๋กฌํ”„ํŠธ์˜ ํ‚ค ๋ฐ”์ธ๋”ฉ ๋ชจ๋“œ: "normal" ๋˜๋Š” "vim". ๊ธฐ๋ณธ๊ฐ’: "normal". /config์— ํŽธ์ง‘๊ธฐ ๋ชจ๋“œ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค "vim"
effortLevel ๋…ธ๋ ฅ ์ˆ˜์ค€์„ ์„ธ์…˜ ๊ฐ„์— ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. "low", "medium", "high" ๋˜๋Š” "xhigh"๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. /effort๋ฅผ ์ด๋Ÿฌํ•œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋กœ ์‹คํ–‰ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. --effort ๋ฐ CLAUDE_CODE_EFFORT_LEVEL์€ ํ•œ ์„ธ์…˜์— ๋Œ€ํ•ด ์ด๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋ ฅ ์ˆ˜์ค€ ์กฐ์ •์—์„œ ์ง€์›๋˜๋Š” ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜์„ธ์š” "xhigh"
enableAllProjectMcpServers ํ”„๋กœ์ ํŠธ .mcp.json ํŒŒ์ผ์— ์ •์˜๋œ ๋ชจ๋“  MCP ์„œ๋ฒ„๋ฅผ ์ž๋™์œผ๋กœ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค true
enabledMcpjsonServers .mcp.json ํŒŒ์ผ์—์„œ ์Šน์ธํ•  ํŠน์ • MCP ์„œ๋ฒ„ ๋ชฉ๋ก ["memory", "github"]
enforceAvailableModels {/* min-version: 2.1.175 */}}true์ด๊ณ  availableModels๊ฐ€ managed ๋˜๋Š” ์ •์ฑ… ์„ค์ •์˜ ๋น„์–ด์žˆ์ง€ ์•Š์€ ๋ชฉ๋ก์ผ ๋•Œ ๊ธฐ๋ณธ ๋ชจ๋ธ๋„ ํ—ˆ์šฉ ๋ชฉ๋ก์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์˜ต์…˜์ด ํ—ˆ์šฉ ๋ชฉ๋ก์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ญ๋ชฉ์œผ๋กœ ํด๋ฐฑ๋ฉ๋‹ˆ๋‹ค. availableModels๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋น„์–ด์žˆ์„ ๋•Œ๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์„ ํƒ ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Claude Code v2.1.175 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค true
env ๋ชจ๋“  ์„ธ์…˜์— ์ ์šฉ๋  ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ Claude Code๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. {/* min-version: 2.1.143 */}v2.1.143๋ถ€ํ„ฐ ์—ฌ๊ธฐ์— ์„ค์ •๋œ NO_COLOR ๋ฐ FORCE_COLOR๋Š” ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค๋กœ ์ „๋‹ฌ๋˜์ง€๋งŒ Claude Code ์ž์ฒด ์ธํ„ฐํŽ˜์ด์Šค ์ƒ‰์ƒ์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Claude๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์…ธ์—์„œ ์ด๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ธํ„ฐํŽ˜์ด์Šค ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค {"FOO": "bar"}
fallbackModel ๊ธฐ๋ณธ ๋ชจ๋ธ์ด ๊ณผ๋ถ€ํ•˜์ด๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ ์ˆœ์„œ๋Œ€๋กœ ์‹œ๋„ํ•  ํด๋ฐฑ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. Claude Code๋Š” ํ„ด์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ฒด์ธ์˜ ๋‹ค์Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋ธ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. "default"๋Š” ๊ธฐ๋ณธ ๋ชจ๋ธ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์ฒด์ธ์€ 3๊ฐœ ๋ชจ๋ธ๋กœ ์ œํ•œ๋˜๋ฉฐ ์ถ”๊ฐ€ ํ•ญ๋ชฉ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋ฐฐ์—ด ์„ค์ •๊ณผ ๋‹ฌ๋ฆฌ ์ด ํ‚ค๋Š” ์„ค์ • ํŒŒ์ผ ์ „์ฒด์—์„œ ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: ์ด๋ฅผ ์ •์˜ํ•˜๋Š” ์ตœ๊ณ  ์šฐ์„ ์ˆœ์œ„ ํŒŒ์ผ์ด ์ „์ฒด ์ฒด์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. --fallback-model ํ”Œ๋ž˜๊ทธ๋Š” ํ•œ ์„ธ์…˜์— ๋Œ€ํ•ด ์ด๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํด๋ฐฑ ๋ชจ๋ธ ์ฒด์ธ์„ ์ฐธ์กฐํ•˜์„ธ์š” ["claude-sonnet-4-6", "claude-haiku-4-5"]
fastModePerSessionOptIn true์ผ ๋•Œ ๋น ๋ฅธ ๋ชจ๋“œ๋Š” ์„ธ์…˜ ๊ฐ„์— ์ง€์†๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ ์„ธ์…˜์€ ๋น ๋ฅธ ๋ชจ๋“œ๊ฐ€ ๊บผ์ง„ ์ƒํƒœ๋กœ ์‹œ์ž‘๋˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ /fast๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋น ๋ฅธ ๋ชจ๋“œ ์„ค์ •์€ ์—ฌ์ „ํžˆ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์„ธ์…˜๋ณ„ ์˜ตํŠธ์ธ ํ•„์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” true
feedbackSurveyRate ์„ธ์…˜ ํ’ˆ์งˆ ์„ค๋ฌธ์กฐ์‚ฌ๊ฐ€ ์ ๊ฒฉ์ผ ๋•Œ ๋‚˜ํƒ€๋‚  ํ™•๋ฅ  (0โ€“1). ์™„์ „ํžˆ ์–ต์ œํ•˜๋ ค๋ฉด 0์œผ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ env์—์„œ CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Bedrock, Vertex ๋˜๋Š” Foundry๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์œ ์šฉํ•˜๋ฉฐ ๊ธฐ๋ณธ ์ƒ˜ํ”Œ ๋ ˆ์ดํŠธ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค 0.05
fileCheckpointingEnabled {/* min-version: 2.1.119 */}๊ฐ ํŽธ์ง‘ ์ „์— ํŒŒ์ผ์„ ์Šค๋ƒ…์ƒทํ•˜์—ฌ /rewind๊ฐ€ ์ด๋ฅผ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. /config์— **์ฝ”๋“œ ๋˜๊ฐ๊ธฐ (์ฒดํฌํฌ์ธํŠธ)**๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด env์—์„œ CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค false
fileSuggestion @ ํŒŒ์ผ ์ž๋™ ์™„์„ฑ์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ œ์•ˆ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š” {"type": "command", "command": "~/.claude/file-suggestion.sh"}
footerLinksRegexes {/* min-version: 2.1.176 */}์ •๊ทœ์‹์ด ํ„ด ์ถœ๋ ฅ๊ณผ ์ผ์น˜ํ•  ๋•Œ ๋ฐ”๋‹ฅ๊ธ€์— ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ๋ฐฐ์ง€๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ•ญ๋ชฉ์—๋Š” pattern, ๋ช…๋ช…๋œ ์บก์ฒ˜ ๊ทธ๋ฃน์—์„œ ์ฑ„์›Œ์ง„ {name} ์ž๋ฆฌ ํ‘œ์‹œ์ž๊ฐ€ ์žˆ๋Š” url ํ…œํ”Œ๋ฆฟ ๋ฐ ์„ ํƒ์  label์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž, --settings ํ”Œ๋ž˜๊ทธ ๋ฐ managed ์„ค์ •์—์„œ๋งŒ ์ฝ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋‹ฅ๊ธ€ ๋งํฌ ๋ฐฐ์ง€์—์„œ URL ์ œ์•ฝ, ์Šคํ‚ค๋งˆ ํ—ˆ์šฉ ๋ชฉ๋ก ๋ฐ ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Claude Code v2.1.176 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค [{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]
forceLoginMethod claudeai๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Claude.ai ๊ณ„์ •์œผ๋กœ๋งŒ ๋กœ๊ทธ์ธ์„ ์ œํ•œํ•˜๊ฑฐ๋‚˜, console์„ ์‚ฌ์šฉํ•˜์—ฌ Claude Console ๊ณ„์ •์œผ๋กœ๋งŒ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. Managed ์„ค์ •์—์„œ ์„ค์ •๋˜๋ฉด ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN ๋˜๋Š” apiKeyHelper๋กœ ์ธ์ฆ๋œ ์„ธ์…˜์€ ์‹œ์ž‘ ์‹œ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์–ด๋А ๊ฐ’๋„ ๋จผ์ € ์ž์‚ฌ OAuth ์—†์ด ๋งŒ์กฑํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Bedrock, Vertex ๋ฐ Foundry์™€ ๊ฐ™์€ ์ œ3์ž ๊ณต๊ธ‰์ž ์„ธ์…˜์€ ์ฐจ๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: ์ด๋“ค์€ Anthropic์ด ์•„๋‹Œ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž์— ๋Œ€ํ•ด ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค claudeai
forceLoginOrgUUID ๋กœ๊ทธ์ธ์ด ํŠน์ • Anthropic ์กฐ์ง์— ์†ํ•˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ UUID ๋ฌธ์ž์—ด์„ ํ—ˆ์šฉํ•˜๋ฉฐ, ์ด๋Š” ๋กœ๊ทธ์ธ ์ค‘์— ํ•ด๋‹น ์กฐ์ง์„ ์‚ฌ์ „ ์„ ํƒํ•˜๊ฑฐ๋‚˜, ๋‚˜์—ด๋œ ์กฐ์ง์ด ์‚ฌ์ „ ์„ ํƒ ์—†์ด ํ—ˆ์šฉ๋˜๋Š” UUID ๋ฐฐ์—ด์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. Managed ์„ค์ •์—์„œ ์„ค์ •๋˜๋ฉด ์ธ์ฆ๋œ ๊ณ„์ •์ด ๋‚˜์—ด๋œ ์กฐ์ง์— ์†ํ•˜์ง€ ์•Š์œผ๋ฉด ๋กœ๊ทธ์ธ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN ๋˜๋Š” apiKeyHelper๋กœ ์ธ์ฆ๋œ ์„ธ์…˜์€ ์‹œ์ž‘ ์‹œ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์กฐ์ง ๋ฉค๋ฒ„์‹ญ์„ ํ™•์ธํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Bedrock, Vertex ๋ฐ Foundry์™€ ๊ฐ™์€ ์ œ3์ž ๊ณต๊ธ‰์ž ์„ธ์…˜์€ ์ฐจ๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: ํด๋ผ์šฐ๋“œ IAM์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ๊ณ„์ •์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ๋ฐฐ์—ด์€ ์‹คํŒจํ•˜๊ณ  ์ž˜๋ชป๋œ ๊ตฌ์„ฑ ๋ฉ”์‹œ์ง€๋กœ ๋กœ๊ทธ์ธ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ๋˜๋Š” ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]
forceRemoteSettingsRefresh (Managed ์„ค์ •๋งŒ) ์›๊ฒฉ managed ์„ค์ •์ด ์„œ๋ฒ„์—์„œ ์ƒˆ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ๊นŒ์ง€ CLI ์‹œ์ž‘์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์บ์‹œ๋œ ๋˜๋Š” ์„ค์ • ์—†์ด ๊ณ„์†ํ•˜๋Š” ๋Œ€์‹  CLI๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์„ค์ •๋˜์ง€ ์•Š์œผ๋ฉด ์‹œ์ž‘์ด ์›๊ฒฉ ์„ค์ •์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ์‹คํŒจ ํ์‡„ ์ ์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š” true
gcpAuthRefresh GCP Application Default Credentials๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ฑฐ๋‚˜ ๋กœ๋“œํ•  ์ˆ˜ ์—†์„ ๋•Œ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค. ๊ณ ๊ธ‰ ์ž๊ฒฉ ์ฆ๋ช… ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š” gcloud auth application-default login
hooks ๋ผ์ดํ”„์‚ฌ์ดํด ์ด๋ฒคํŠธ์—์„œ ์‹คํ–‰ํ•  ์‚ฌ์šฉ์ž ์ •์˜ ๋ช…๋ น์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ˜•์‹์€ hooks ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” hooks ์ฐธ์กฐ
httpHookAllowedEnvVars HTTP hooks๊ฐ€ ํ—ค๋”์— ๋ณด๊ฐ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํ—ˆ์šฉ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์„ค์ •๋˜๋ฉด ๊ฐ hook์˜ ์œ ํšจํ•œ allowedEnvVars๋Š” ์ด ์„ค์ •๊ณผ์˜ ๊ต์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์Œ = ์ œํ•œ ์—†์Œ. ๋ฐฐ์—ด์€ ์„ค์ • ์†Œ์Šค ์ „์ฒด์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. Hook ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š” ["MY_TOKEN", "HOOK_SECRET"]
includeCoAuthoredBy ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ: ๋Œ€์‹  attribution์„ ์‚ฌ์šฉํ•˜์„ธ์š”. git ์ปค๋ฐ‹ ๋ฐ pull request์— co-authored-by Claude ๋ฐ”์ด๋ผ์ธ์„ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€ (๊ธฐ๋ณธ๊ฐ’: true) false
includeGitInstructions Claude์˜ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ๊ธฐ๋ณธ ์ œ๊ณต ์ปค๋ฐ‹ ๋ฐ PR ์›Œํฌํ”Œ๋กœ์šฐ ์ง€์นจ ๋ฐ git ์ƒํƒœ ์Šค๋ƒ…์ƒท์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค (๊ธฐ๋ณธ๊ฐ’: true). ์˜ˆ๋ฅผ ๋“ค์–ด ์ž์‹ ์˜ git ์›Œํฌํ”Œ๋กœ์šฐ skills์„ ์‚ฌ์šฉํ•  ๋•Œ ์ด๋ฅผ false๋กœ ์„ค์ •ํ•˜์—ฌ ๋‘˜ ๋‹ค ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜๋ฉด ์ด ์„ค์ •๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค false
inputNeededNotifEnabled {/* min-version: 2.1.119 */}Remote Control์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์„ ๋•Œ ๊ถŒํ•œ ํ”„๋กฌํ”„ํŠธ ๋˜๋Š” ์งˆ๋ฌธ์ด ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์„ ๋•Œ ํœด๋Œ€ํฐ์— ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false. /config์— ์ž‘์—…์ด ํ•„์š”ํ•  ๋•Œ ํ‘ธ์‹œ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Claude Code v2.1.119 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค true
language Claude์˜ ์„ ํ˜ธ ์‘๋‹ต ์–ธ์–ด๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: "japanese", "spanish", "french"). Claude๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์–ธ์–ด๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์Œ์„ฑ ๋ฐ›์•„์“ฐ๊ธฐ ์–ธ์–ด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. {/* min-version: 2.1.176 */}v2.1.176๋ถ€ํ„ฐ ์„ค์ •๋˜์ง€ ์•Š์œผ๋ฉด ์„ธ์…˜ ์ œ๋ชฉ์ด ๋Œ€ํ™”์˜ ์–ธ์–ด์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค "japanese"
maxSkillDescriptionChars {/* min-version: 2.1.105 */}Claude๊ฐ€ ๊ฐ ํ„ด์— ๋ณด๋Š” skill ๋ชฉ๋ก์˜ ๊ฒฐํ•ฉ๋œ description ๋ฐ when_to_use ํ…์ŠคํŠธ์— ๋Œ€ํ•œ skill๋ณ„ ๋ฌธ์ž ์ œํ•œ (๊ธฐ๋ณธ๊ฐ’: 1536). ์ด ๊ธธ์ด๋ณด๋‹ค ๊ธด ํ…์ŠคํŠธ๋Š” ์ž˜๋ฆฝ๋‹ˆ๋‹ค. ๋” ๊ธด ์„ค๋ช…์„ ์œ ์ง€ํ•˜๋ ค๋ฉด ๋†’์ด๊ณ  ํ„ด๋‹น ๋” ๋งŽ์€ ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. skillListingBudgetFraction์— ๋งž์ถ”๋ ค๋ฉด ๋‚ฎ์ถฅ๋‹ˆ๋‹ค. Claude Code v2.1.105 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค 2048
minimumVersion ๋ฐฐ๊ฒฝ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐ claude update๊ฐ€ ์ด ๋ฒ„์ „ ์•„๋ž˜๋กœ ์„ค์น˜๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ํ•˜ํ•œ์ž…๋‹ˆ๋‹ค. "latest" ์ฑ„๋„์—์„œ "stable"๋กœ ์ „ํ™˜ํ•  ๋•Œ /config๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ๋ฒ„์ „์— ๋จธ๋ฌผ๊ธฐ ๋˜๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ—ˆ์šฉํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋จธ๋ฌผ๊ธฐ๋ฅผ ์„ ํƒํ•˜๋ฉด ์ด ๊ฐ’์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ managed ์„ค์ •์—์„œ ์กฐ์ง ์ „์ฒด ์ตœ์†Œ๊ฐ’์„ ๊ณ ์ •ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘์„ ์™„์ „ํžˆ ์ฐจ๋‹จํ•˜๋Š” ํ•˜๋“œ ํ”Œ๋กœ์–ด๋Š” requiredMinimumVersion์„ ์ฐธ์กฐํ•˜์„ธ์š” "2.1.100"
model Claude Code์— ์‚ฌ์šฉํ•  ๊ธฐ๋ณธ ๋ชจ๋ธ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. --model ๋ฐ ANTHROPIC_MODEL์€ ํ•œ ์„ธ์…˜์— ๋Œ€ํ•ด ์ด๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค "claude-sonnet-4-6"
modelOverrides Anthropic ๋ชจ๋ธ ID๋ฅผ Bedrock ์ถ”๋ก  ํ”„๋กœํ•„ ARN๊ณผ ๊ฐ™์€ ๊ณต๊ธ‰์ž ํŠน์ • ๋ชจ๋ธ ID๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ชจ๋ธ ์„ ํƒ๊ธฐ ํ•ญ๋ชฉ์€ ๊ณต๊ธ‰์ž API๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋งคํ•‘๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „๋ณ„ ๋ชจ๋ธ ID ์žฌ์ •์˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” {"claude-opus-4-6": "arn:aws:bedrock:..."}
otelHeadersHelper ๋™์  OpenTelemetry ํ—ค๋”๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค. ์‹œ์ž‘ ์‹œ ๋ฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS๋กœ ์ƒˆ๋กœ๊ณ ์นจ ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ํ—ค๋”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” /bin/generate_otel_headers.sh
outputStyle ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ถœ๋ ฅ ์Šคํƒ€์ผ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ ์Šคํƒ€์ผ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” "Explanatory"
parentSettingsBehavior {/* min-version: 2.1.133 */}(Managed ์„ค์ •๋งŒ) Agent SDK ๋˜๋Š” IDE ํ™•์žฅ๊ณผ ๊ฐ™์€ embedding host ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ œ๊ณต๋˜๋Š” managed ์„ค์ •์ด ๊ด€๋ฆฌ์ž ๋ฐฐํฌ managed ๊ณ„์ธต๋„ ์žˆ์„ ๋•Œ ์ ์šฉ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. "first-wins": ๋ถ€๋ชจ ์ œ๊ณต ์„ค์ •์ด ์‚ญ์ œ๋˜๊ณ  ๊ด€๋ฆฌ์ž ๊ณ„์ธต๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. "merge": ๋ถ€๋ชจ ์ œ๊ณต ์„ค์ •์ด ๊ด€๋ฆฌ์ž ๊ณ„์ธต ์•„๋ž˜์— ์ ์šฉ๋˜๋ฉฐ, ์ •์ฑ…์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์™„ํ™”ํ•  ์ˆ˜ ์—†๋„๋ก ํ•„ํ„ฐ๋ง๋ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ๊ณ„์ธต์ด ๋ฐฐํฌ๋˜์ง€ ์•Š์œผ๋ฉด ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: "first-wins". Claude Code v2.1.133 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค "merge"
permissions ๊ถŒํ•œ์˜ ๊ตฌ์กฐ๋Š” ์•„๋ž˜ ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
plansDirectory ๊ณ„ํš ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ์œ„์น˜๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋Š” ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— ์ƒ๋Œ€์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: ~/.claude/plans "./plans"
pluginSuggestionMarketplaces (Managed ์„ค์ •๋งŒ) ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ƒํ™ฉ๋ณ„ ์„ค์น˜ ์ œ์•ˆ์œผ๋กœ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ œ์•ˆ์€ ๊ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ํ•ญ๋ชฉ์˜ relevance ์„ ์–ธ์—์„œ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด๋ฆ„์€ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๊ฐ€ ๋จธ์‹ ์— ๋“ฑ๋ก๋˜๊ณ  ๋“ฑ๋ก๋œ ์†Œ์Šค๊ฐ€ managed ์„ค์ •์—์„œ๋„ ์„ ์–ธ๋  ๋•Œ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ด๋ฆ„์— ๋Œ€ํ•œ extraKnownMarketplaces ํ•ญ๋ชฉ์œผ๋กœ ๋˜๋Š” strictKnownMarketplaces์˜ ํ•ญ๋ชฉ์œผ๋กœ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ ๋ชฉ๋ก ์ด๋ฆ„ ์•„๋ž˜์— ๋‹ค๋ฅธ ์†Œ์Šค์—์„œ ๋“ฑ๋ก๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋Š” ์†Œ์Šค ์š”๊ตฌ ์‚ฌํ•ญ์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค: ์ด๋ฆ„๋งŒ ํ—ˆ์šฉ ๋ชฉ๋ก์— ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„์€ ๊ณต์‹ Anthropic ์†Œ์Šค์—์„œ๋งŒ ๋“ฑ๋ก๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ["acme-corp-plugins"]
pluginTrustMessage (Managed ์„ค์ •๋งŒ) ์„ค์น˜ ์ „์— ํ‘œ์‹œ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹ ๋ขฐ ๊ฒฝ๊ณ ์— ์ถ”๊ฐ€๋  ์‚ฌ์šฉ์ž ์ •์˜ ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง ํŠน์ • ์ปจํ…์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๋ถ€ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๊ฒ€์ฆ๋˜์—ˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. "All plugins from our marketplace are approved by IT"
policyHelper {/* min-version: 2.1.136 */}๊ด€๋ฆฌ์ž ๋ฐฐํฌ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์‹œ์ž‘ ์‹œ managed ์„ค์ •์„ ๋™์ ์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. MDM ๋˜๋Š” ์‹œ์Šคํ…œ managed-settings.json ํŒŒ์ผ์—์„œ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ •์ฑ… ๋„์šฐ๋ฏธ๋กœ managed ์„ค์ • ๊ณ„์‚ฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Claude Code v2.1.136 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค {"path": "/usr/local/bin/claude-policy"}
preferredNotifChannel ์ž‘์—… ์™„๋ฃŒ ๋ฐ ๊ถŒํ•œ ํ”„๋กฌํ”„ํŠธ ์•Œ๋ฆผ ๋ฐฉ๋ฒ•: "auto", "terminal_bell", "iterm2", "iterm2_with_bell", "kitty", "ghostty" ๋˜๋Š” "notifications_disabled". ๊ธฐ๋ณธ๊ฐ’: "auto"๋กœ, iTerm2, Ghostty ๋ฐ Kitty์—์„œ ๋ฐ์Šคํฌํ†ฑ ์•Œ๋ฆผ์„ ๋ณด๋‚ด๊ณ  ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์—์„œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ„ฐ๋ฏธ๋„์—์„œ ๋ฒจ ๋ฌธ์ž๋ฅผ ์šธ๋ฆฌ๋ ค๋ฉด "terminal_bell"์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. /config์— ์•Œ๋ฆผ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ๋ฒจ ๋˜๋Š” ์•Œ๋ฆผ ๋ฐ›๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” "terminal_bell"
prefersReducedMotion ์ ‘๊ทผ์„ฑ์„ ์œ„ํ•ด UI ์• ๋‹ˆ๋ฉ”์ด์…˜ (์Šคํ”ผ๋„ˆ, shimmer, flash ํšจ๊ณผ) ๊ฐ์†Œ ๋˜๋Š” ๋น„ํ™œ์„ฑํ™” true
prUrlTemplate PR ๋ฐฐ์ง€์— ๋Œ€ํ•œ URL ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋ฐ”๋‹ฅ๊ธ€ ๋ฐ ๋„๊ตฌ ๊ฒฐ๊ณผ ์š”์•ฝ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. gh์—์„œ ๋ณด๊ณ ํ•œ PR URL์—์„œ {host}, {owner}, {repo}, {number} ๋ฐ {url}์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. github.com ๋Œ€์‹  ๋‚ด๋ถ€ ์ฝ”๋“œ ๊ฒ€ํ†  ๋„๊ตฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Claude์˜ ์‚ฐ๋ฌธ์—์„œ #123 ์ž๋™ ๋งํฌ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค "https://reviews.example.com/{owner}/{repo}/pull/{number}"
remoteControlAtStartup {/* min-version: 2.1.119 */}}๊ฐ ๋Œ€ํ™”ํ˜• ์„ธ์…˜์ด ์‹œ์ž‘๋  ๋•Œ Remote Control์„ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. /remote-control์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋Œ€์‹  true๋กœ ์„ค์ •ํ•˜์—ฌ ํ•ญ์ƒ ์ž๋™ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜, false๋กœ ์„ค์ •ํ•˜์—ฌ ์ ˆ๋Œ€ ์ž๋™ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ์กฐ์ง์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๋”ฐ๋ฅด๋ ค๋ฉด ์„ค์ • ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. /config์— ๋ชจ๋“  ์„ธ์…˜์— ๋Œ€ํ•ด Remote Control ํ™œ์„ฑํ™”๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ธ์…˜์— ๋Œ€ํ•ด Remote Control ํ™œ์„ฑํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” false
requiredMaximumVersion Managed ์„ค์ •๋งŒ. ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ Claude Code ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ๋ฒ„์ „์ด ๋” ์ตœ์‹ ์ด๋ฉด Claude Code๋Š” ์‹œ์ž‘ ์‹œ ์ข…๋ฃŒ๋˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์กฐ์ง์˜ ์Šน์ธ๋œ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์Šน์ธ๋œ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. claude install <version>๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ๊ฒฝ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐ claude update๋Š” ์ฒœ์žฅ ์œ„์˜ ๋ฒ„์ „์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๋ฒ”์œ„ ๋‚ด ์„ค์น˜๋Š” ๋ฒ”์œ„ ๋‚ด๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. claude update, claude install ๋ฐ claude doctor๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒœ์žฅ ์œ„์—์„œ ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •๋ณด๋‹ค ๋จผ์ € ๋‚˜์˜จ ๋ฒ„์ „์€ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค "2.1.150"
requiredMinimumVersion Managed ์„ค์ •๋งŒ. ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ Claude Code ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ๋ฒ„์ „์ด ๋” ์˜ค๋ž˜๋˜๋ฉด Claude Code๋Š” ์‹œ์ž‘ ์‹œ ์ข…๋ฃŒ๋˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์กฐ์ง์˜ ์Šน์ธ๋œ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. claude update, claude install ๋ฐ claude doctor๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ”๋‹ฅ ์•„๋ž˜์—์„œ ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š์ง€๋งŒ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” minimumVersion๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ์„ค์ •๋ณด๋‹ค ๋จผ์ € ๋‚˜์˜จ ๋ฒ„์ „์€ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค "2.1.150"
respondToBashCommands {/* min-version: 2.1.186 */}์ž…๋ ฅ ์ƒ์ž ! ์…ธ ๋ช…๋ น์ด ์‹คํ–‰๋œ ํ›„ Claude๊ฐ€ ์‘๋‹ตํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ์‘๋‹ต ์—†์ด ๋ช…๋ น ์ถœ๋ ฅ์„ ์ปจํ…์ŠคํŠธ์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. ์ ‘๋‘์‚ฌ !๋ฅผ ์‚ฌ์šฉํ•œ ์…ธ ๋ชจ๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. Claude Code v2.1.186 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค false
respectGitignore @ ํŒŒ์ผ ์„ ํƒ๊ธฐ๊ฐ€ .gitignore ํŒจํ„ด์„ ์กด์ค‘ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. true (๊ธฐ๋ณธ๊ฐ’)์ผ ๋•Œ .gitignore ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ํŒŒ์ผ์€ ์ œ์•ˆ์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค false
showClearContextOnPlanAccept ๊ณ„ํš ์ˆ˜๋ฝ ํ™”๋ฉด์—์„œ "์ปจํ…์ŠคํŠธ ์ง€์šฐ๊ธฐ" ์˜ต์…˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false. ์˜ต์…˜์„ ๋ณต์›ํ•˜๋ ค๋ฉด true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค true
showThinkingSummaries ๋Œ€ํ™”ํ˜• ์„ธ์…˜์—์„œ ํ™•์žฅ ์‚ฌ๊ณ  ์š”์•ฝ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •๋˜์ง€ ์•Š๊ฑฐ๋‚˜ false (๋Œ€ํ™”ํ˜• ๋ชจ๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’)์ผ ๋•Œ ์‚ฌ๊ณ  ๋ธ”๋ก์€ API์— ์˜ํ•ด ํŽธ์ง‘๋˜๊ณ  ์ถ•์†Œ๋œ ์Šคํ…์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘์€ ํ‘œ์‹œ๋˜๋Š” ๋‚ด์šฉ๋งŒ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ชจ๋ธ์ด ์ƒ์„ฑํ•˜๋Š” ๋‚ด์šฉ์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ๊ณ  ์ง€์ถœ์„ ์ค„์ด๋ ค๋ฉด ์˜ˆ์‚ฐ์„ ๋‚ฎ์ถ”๊ฑฐ๋‚˜ ์‚ฌ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์„ธ์š”. ์ด ์„ค์ •์€ ๋น„๋Œ€ํ™”ํ˜• ๋ชจ๋“œ (-p), Agent SDK ๋˜๋Š” VS Code์™€ ๊ฐ™์€ IDE ํ™•์žฅ์—์„œ๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค true
showTurnDuration ์‘๋‹ต ํ›„ ํ„ด ์ง€์† ์‹œ๊ฐ„ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: "Cooked for 1m 6s"). ๊ธฐ๋ณธ๊ฐ’: true. /config์— ํ„ด ์ง€์† ์‹œ๊ฐ„ ํ‘œ์‹œ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค false
skillListingBudgetFraction {/* min-version: 2.1.105 */}Claude๊ฐ€ ๊ฐ ํ„ด์— ๋ณด๋Š” skill ๋ชฉ๋ก์„ ์œ„ํ•ด ์˜ˆ์•ฝ๋œ ๋ชจ๋ธ์˜ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ์˜ ๋ถ„์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 0.01 = 1%). ๋ชฉ๋ก์ด ์˜ˆ์‚ฐ์„ ์ดˆ๊ณผํ•˜๋ฉด ๊ฐ€์žฅ ์ ๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” skills์˜ ์„ค๋ช…์ด ๋ฒ ์–ด ์ด๋ฆ„์œผ๋กœ ์ถ•์†Œ๋˜์–ด Claude๊ฐ€ ์—ฌ์ „ํžˆ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด์œ ๋ฅผ ๋ณด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์„ค๋ช…์„ ๋ณด์ด๋ ค๋ฉด ๋†’์ด๊ณ  ํ„ด๋‹น ๋” ๋งŽ์€ ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ skills์„ maxSkillDescriptionChars ์•„๋ž˜์— ๋งž์ถ”๋ ค๋ฉด ๋‚ฎ์ถฅ๋‹ˆ๋‹ค. /doctor๋Š” ํ˜„์žฌ ์ž˜๋ฆผ ์ˆ˜์™€ ์˜ํ–ฅ์„ ๋ฐ›๋Š” skills๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Claude Code v2.1.105 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค 0.02
skillOverrides {/* min-version: 2.1.129 */}skill ์ด๋ฆ„์œผ๋กœ ํ‚ค๊ฐ€ ์ง€์ •๋œ skill๋ณ„ ๊ฐ€์‹œ์„ฑ ์žฌ์ •์˜์ž…๋‹ˆ๋‹ค. ๊ฐ’์€ "on", "name-only", "user-invocable-only" ๋˜๋Š” "off"์ž…๋‹ˆ๋‹ค. SKILL.md๋ฅผ ํŽธ์ง‘ํ•˜์ง€ ์•Š๊ณ  skill์„ ์ˆจ๊ธฐ๊ฑฐ๋‚˜ ์ถ•์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ skills์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ, ์ด๋Š” /plugin์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. /skills ๋ฉ”๋‰ด๋Š” ์ด๋ฅผ .claude/settings.local.json์— ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์—์„œ skill ๊ฐ€์‹œ์„ฑ ์žฌ์ •์˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. Claude Code v2.1.129 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค {"legacy-context": "name-only", "deploy": "off"}
skipWebFetchPreflight WebFetch ๋„๋ฉ”์ธ ์•ˆ์ „ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ์ด ๊ฒ€์‚ฌ๋Š” ๊ฐ ์š”์ฒญ๋œ ํ˜ธ์ŠคํŠธ๋ช…์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์ „์— api.anthropic.com์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. Bedrock, Vertex AI ๋˜๋Š” Foundry ๋ฐฐํฌ์™€ ๊ฐ™์ด Anthropic์œผ๋กœ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฑด๋„ˆ๋›ฐ๋ฉด WebFetch๋Š” ์ฐจ๋‹จ ๋ชฉ๋ก์„ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  URL์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค true
spinnerTipsEnabled Claude๊ฐ€ ์ž‘์—… ์ค‘์ผ ๋•Œ ์Šคํ”ผ๋„ˆ์— ํŒ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํŒ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค (๊ธฐ๋ณธ๊ฐ’: true) false
spinnerTipsOverride ์‚ฌ์šฉ์ž ์ •์˜ ๋ฌธ์ž์—ด๋กœ ์Šคํ”ผ๋„ˆ ํŒ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. tips: ํŒ ๋ฌธ์ž์—ด ๋ฐฐ์—ด. excludeDefault: true์ด๋ฉด ์‚ฌ์šฉ์ž ์ •์˜ ํŒ๋งŒ ํ‘œ์‹œํ•˜๊ณ , false์ด๊ฑฐ๋‚˜ ์—†์œผ๋ฉด ์‚ฌ์šฉ์ž ์ •์˜ ํŒ์ด ๊ธฐ๋ณธ ์ œ๊ณต ํŒ๊ณผ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค { "excludeDefault": true, "tips": ["Use our internal tool X"] }
spinnerVerbs ์Šคํ”ผ๋„ˆ์— ํ‘œ์‹œ๋˜๋Š” ์ž‘์—… ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. mode๋ฅผ "replace"๋กœ ์„ค์ •ํ•˜์—ฌ ๋™์‚ฌ๋งŒ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ "append"๋กœ ์„ค์ •ํ•˜์—ฌ ๊ธฐ๋ณธ๊ฐ’์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค {"mode": "append", "verbs": ["Pondering", "Crafting"]}
sshConfigs Desktop ํ™˜๊ฒฝ ๋“œ๋กญ๋‹ค์šด์— ํ‘œ์‹œํ•  SSH ์—ฐ๊ฒฐ์ž…๋‹ˆ๋‹ค. ๊ฐ ํ•ญ๋ชฉ์—๋Š” id, name ๋ฐ sshHost๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, sshPort, sshIdentityFile ๋ฐ startDirectory๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. Managed ์„ค์ •์—์„œ ์„ค์ •๋˜๋ฉด ์—ฐ๊ฒฐ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ๊ธฐ ์ „์šฉ์ž…๋‹ˆ๋‹ค. Managed ๋ฐ ์‚ฌ์šฉ์ž ์„ค์ •์—์„œ๋งŒ ์ฝ์Œ [{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]
statusLine ์ปจํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ์ƒํƒœ ์ค„์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. statusLine ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” {"type": "command", "command": "~/.claude/statusline.sh"}
strictKnownMarketplaces (Managed ์„ค์ •๋งŒ) ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์†Œ์Šค์˜ ํ—ˆ์šฉ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์Œ = ์ œํ•œ ์—†์Œ, ๋นˆ ๋ฐฐ์—ด = ์ž ๊ธˆ. ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ถ”๊ฐ€ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜, ์—…๋ฐ์ดํŠธ, ์ƒˆ๋กœ๊ณ ์นจ ๋ฐ ์ž๋™ ์—…๋ฐ์ดํŠธ์— ์ ์šฉ๋˜๋ฏ€๋กœ ์ •์ฑ…์ด ์„ค์ •๋˜๊ธฐ ์ „์— ์ถ”๊ฐ€๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Managed ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š” [{ "source": "github", "repo": "acme-corp/plugins" }]
strictPluginOnlyCustomization (Managed ์„ค์ •๋งŒ) ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” managed ์„ค์ •์—์„œ๋งŒ ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉ์ž ๋ฐ ํ”„๋กœ์ ํŠธ ์†Œ์Šค์—์„œ skills, agents, hooks ๋ฐ MCP ์„œ๋ฒ„๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. true๋Š” ๋„ค ๊ฐ€์ง€ ๋ชจ๋‘๋ฅผ ์ž ๊ทธ๊ณ , ๋ฐฐ์—ด์€ ๋ช…๋ช…๋œ ๊ฒƒ๋งŒ ์ž ๊ธ‰๋‹ˆ๋‹ค. strictPluginOnlyCustomization์„ ์ฐธ์กฐํ•˜์„ธ์š” ["skills", "hooks"]
syntaxHighlightingDisabled diffs, ์ฝ”๋“œ ๋ธ”๋ก ๋ฐ ํŒŒ์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—์„œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋น„ํ™œ์„ฑํ™” true
teammateMode ์—์ด์ „ํŠธ ํŒ€ ํŒ€์›์ด ํ‘œ์‹œ๋˜๋Š” ๋ฐฉ์‹: in-process (๊ธฐ๋ณธ๊ฐ’), auto (tmux ๋˜๋Š” iTerm2์—์„œ ๋ถ„ํ•  ์ฐฝ ์„ ํƒ, ๊ทธ ์™ธ์—๋Š” in-process), tmux (tmux ๋˜๋Š” iTerm2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„ํ•  ์ฐฝ ์„ ํƒ, ํ„ฐ๋ฏธ๋„์—์„œ ๊ฐ์ง€๋จ) ๋˜๋Š” {/* min-version: 2.1.186 */}}iterm2 (iTerm2 ๊ธฐ๋ณธ ๋ถ„ํ•  ์ฐฝ via it2 CLI, v2.1.186์—์„œ ์ถ”๊ฐ€๋จ). ๊ธฐ๋ณธ๊ฐ’์€ v2.1.179์—์„œ auto์—์„œ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. --teammate-mode์€ ํ•œ ์„ธ์…˜์— ๋Œ€ํ•ด ์ด๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋””์Šคํ”Œ๋ ˆ์ด ๋ชจ๋“œ ์„ ํƒ์„ ์ฐธ์กฐํ•˜์„ธ์š” "auto"
terminalProgressBarEnabled ์ง€์›๋˜๋Š” ํ„ฐ๋ฏธ๋„์—์„œ ํ„ฐ๋ฏธ๋„ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค: ConEmu, Ghostty 1.2.0+ ๋ฐ iTerm2 3.6.6+. ๊ธฐ๋ณธ๊ฐ’: true. /config์— ํ„ฐ๋ฏธ๋„ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค false
theme {/* min-version: 2.1.119 */}์ธํ„ฐํŽ˜์ด์Šค์˜ ์ƒ‰์ƒ ํ…Œ๋งˆ: "auto", "dark", "light", "dark-daltonized", "light-daltonized", "dark-ansi", "light-ansi" ๋˜๋Š” "custom:<slug>" ๋˜๋Š” "custom:<plugin-name>:<slug>"๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ •์˜ ํ…Œ๋งˆ ์ฐธ์กฐ. ๊ธฐ๋ณธ๊ฐ’: "dark". ์‚ฌ์šฉ์ž ์ •์˜ ํ…Œ๋งˆ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. /config์— ํ…Œ๋งˆ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค "dark"
tui ํ„ฐ๋ฏธ๋„ UI ๋ Œ๋”๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๊นœ๋ฐ•์ž„ ์—†๋Š” alt-screen ๋ Œ๋”๋Ÿฌ๊ฐ€ ์žˆ๋Š” ๊ฐ€์ƒํ™”๋œ ์Šคํฌ๋กค๋ฐฑ์„ ์œ„ํ•ด "fullscreen"์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์‹ ๋ฉ”์ธ ํ™”๋ฉด ๋ Œ๋”๋Ÿฌ๋ฅผ ์œ„ํ•ด "default"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. /tui๋ฅผ ํ†ตํ•ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_NO_FLICKER ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ๋ณด๊ธฐ์—์„œ ์—ด๋ฆฐ ๋ฐฐ๊ฒฝ ์„ธ์…˜์€ ์ด ์„ค์ •๊ณผ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ fullscreen ๋ Œ๋”๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค "fullscreen"
ultracode ์„ธ์…˜์— ๋Œ€ํ•ด ultracode๋ฅผ ์ผญ๋‹ˆ๋‹ค. ์„ธ์…˜ ์ „์šฉ์ด๋ฉฐ settings.json์—์„œ ์ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. /effort ultracode, --settings ๋˜๋Š” Agent SDK ์ œ์–ด ์š”์ฒญ์„ ํ†ตํ•ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค true
useAutoModeDuringPlan ์ž๋™ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ๊ณ„ํš ๋ชจ๋“œ๊ฐ€ ์ž๋™ ๋ชจ๋“œ ์˜๋ฏธ๋ก ์„ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. ๊ณต์œ  ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ๋Š” ์ฝ์ง€ ์•Š์Œ. /config์— "๊ณ„ํš ์ค‘ ์ž๋™ ๋ชจ๋“œ ์‚ฌ์šฉ"์œผ๋กœ ํ‘œ์‹œ๋จ false
verbose {/* min-version: 2.1.119 */}์ž˜๋ฆฐ ์š”์•ฝ ๋Œ€์‹  ์ „์ฒด ๋„๊ตฌ ์ถœ๋ ฅ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false. /config์— ์ƒ์„ธ ์ถœ๋ ฅ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. --verbose ํ”Œ๋ž˜๊ทธ๋Š” ํ•œ ์„ธ์…˜์— ๋Œ€ํ•ด ์ด๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค true
viewMode ์‹œ์ž‘ ์‹œ ๊ธฐ๋ณธ ํŠธ๋žœ์Šคํฌ๋ฆฝํŠธ ๋ณด๊ธฐ ๋ชจ๋“œ: "default", "verbose" ๋˜๋Š” "focus". ์„ค์ •๋˜๋ฉด sticky /focus ์„ ํƒ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. --verbose ํ”Œ๋ž˜๊ทธ๋Š” ํ•œ ์„ธ์…˜์— ๋Œ€ํ•ด ์ด๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค "verbose"
voice ์Œ์„ฑ ๋ฐ›์•„์“ฐ๊ธฐ ์„ค์ •: enabled๋Š” ๋ฐ›์•„์“ฐ๊ธฐ๋ฅผ ์ผœ๊ณ , mode๋Š” "hold" ๋˜๋Š” "tap"์„ ์„ ํƒํ•˜๊ณ , autoSubmit์€ hold ๋ชจ๋“œ์—์„œ ํ‚ค ๋ฆด๋ฆฌ์Šค ์‹œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. /voice๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. Claude.ai ๊ณ„์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค { "enabled": true, "mode": "tap" }
voiceEnabled voice.enabled์— ๋Œ€ํ•œ ๋ ˆ๊ฑฐ์‹œ ๋ณ„์นญ์ž…๋‹ˆ๋‹ค. voice ๊ฐ์ฒด๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค true
wheelScrollAccelerationEnabled {/* min-version: 2.1.174 */}fullscreen ๋ Œ๋”๋ง์—์„œ ๋น ๋ฅธ ์Šคํฌ๋กค ์ค‘์— ๋งˆ์šฐ์Šค ํœ  ์Šคํฌ๋กค ์†๋„๋ฅผ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. ํœ  ๋…ธ์น˜๋‹น ์ผ์ •ํ•œ ์Šคํฌ๋กค ์†๋„๋ฅผ ์›ํ•˜๋ฉด false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Claude Code v2.1.174 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค false
workflowKeywordTriggerEnabled {/* min-version: 2.1.157 */}ํ”„๋กฌํ”„ํŠธ์˜ ๋‹จ์–ด ultracode์ด ๋™์  ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๋‹จ์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ ค๋ฉด false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ultracode ๋…ธ๋ ฅ ์„ค์ •, /workflows ๋ฐ ์ €์žฅ๋œ ์›Œํฌํ”Œ๋กœ์šฐ ๋ช…๋ น์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. /config์— Ultracode ํ‚ค์›Œ๋“œ ํŠธ๋ฆฌ๊ฑฐ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. v2.1.157์—์„œ ์ถ”๊ฐ€๋จ; v2.1.160 ์ด์ „์— ํŠธ๋ฆฌ๊ฑฐ ํ‚ค์›Œ๋“œ๋Š” workflow์˜€์Šต๋‹ˆ๋‹ค false
wslInheritsWindowsSettings (Windows managed ์„ค์ •๋งŒ) true์ผ ๋•Œ WSL์˜ Claude Code๋Š” /etc/claude-code์— ์ถ”๊ฐ€ํ•˜์—ฌ Windows ์ •์ฑ… ์ฒด์ธ์—์„œ managed ์„ค์ •์„ ์ฝ์œผ๋ฉฐ Windows ์†Œ์Šค๊ฐ€ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. Windows ๊ด€๋ฆฌ์ž๊ฐ€ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” HKLM ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ‚ค ๋˜๋Š” C:\Program Files\ClaudeCode\managed-settings.json์—์„œ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. HKCU ์ •์ฑ…๋„ WSL์— ์ ์šฉ๋˜๋ ค๋ฉด ํ”Œ๋ž˜๊ทธ๋ฅผ HKCU ์ž์ฒด์—๋„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ Windows์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค true

์ „์—ญ ๊ตฌ์„ฑ ์„ค์ •

์ด๋Ÿฌํ•œ ์„ค์ •์€ settings.json์ด ์•„๋‹Œ ~/.claude.json์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋“ค์„ settings.json์— ์ถ”๊ฐ€ํ•˜๋ฉด ์Šคํ‚ค๋งˆ ๊ฒ€์ฆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค ์„ค๋ช… ์˜ˆ์ œ
autoConnectIde Claude Code๊ฐ€ ์™ธ๋ถ€ ํ„ฐ๋ฏธ๋„์—์„œ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰ ์ค‘์ธ IDE์— ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false. VS Code ๋˜๋Š” JetBrains ํ„ฐ๋ฏธ๋„ ์™ธ๋ถ€์—์„œ ์‹คํ–‰ํ•  ๋•Œ /config์— **IDE์— ์ž๋™ ์—ฐ๊ฒฐ (์™ธ๋ถ€ ํ„ฐ๋ฏธ๋„)**๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_AUTO_CONNECT_IDE ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜๋ฉด ์ด๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค true
autoInstallIdeExtension VS Code ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰ํ•  ๋•Œ Claude Code IDE ํ™•์žฅ์„ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true. VS Code ๋˜๋Š” JetBrains ํ„ฐ๋ฏธ๋„ ๋‚ด์—์„œ ์‹คํ–‰ํ•  ๋•Œ /config์— IDE ํ™•์žฅ ์ž๋™ ์„ค์น˜๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค false
externalEditorContext Ctrl+G๋กœ ์™ธ๋ถ€ ํŽธ์ง‘๊ธฐ๋ฅผ ์—ด ๋•Œ Claude์˜ ์ด์ „ ์‘๋‹ต์„ # ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ์ปจํ…์ŠคํŠธ๋กœ ์•ž์— ๋ถ™์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false. /config์— ์™ธ๋ถ€ ํŽธ์ง‘๊ธฐ์— ๋งˆ์ง€๋ง‰ ์‘๋‹ต ํ‘œ์‹œ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค true
teammateDefaultModel ์—์ด์ „ํŠธ ํŒ€ ํŒ€์›์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๋ชจ๋ธ๋กœ spawn ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. "sonnet"๊ณผ ๊ฐ™์€ ๋ชจ๋ธ ๋ณ„์นญ์œผ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ lead์˜ ํ˜„์žฌ /model ์„ ํƒ์„ ์ƒ์†ํ•˜๋ ค๋ฉด null๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. /config์— ๊ธฐ๋ณธ ํŒ€์› ๋ชจ๋ธ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค "sonnet"

Worktree ์„ค์ •

--worktree๊ฐ€ git worktrees๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค ์„ค๋ช… ์˜ˆ์ œ
worktree.baseRef ์ƒˆ worktrees๊ฐ€ ๋ถ„๊ธฐํ•˜๋Š” ref์ž…๋‹ˆ๋‹ค. "fresh" (๊ธฐ๋ณธ๊ฐ’)์€ ๊นจ๋—ํ•œ ํŠธ๋ฆฌ์™€ ์ผ์น˜ํ•˜๋Š” ์›๊ฒฉ์— ๋Œ€ํ•ด origin/<default-branch>์—์„œ ๋ถ„๊ธฐํ•ฉ๋‹ˆ๋‹ค. "head"๋Š” ํ˜„์žฌ local HEAD์—์„œ ๋ถ„๊ธฐํ•˜๋ฏ€๋กœ ํ‘ธ์‹œ๋˜์ง€ ์•Š์€ ์ปค๋ฐ‹ ๋ฐ feature-branch ์ƒํƒœ๊ฐ€ worktree์— ์žˆ์Šต๋‹ˆ๋‹ค. --worktree, EnterWorktree ๋„๊ตฌ ๋ฐ subagent ๊ฒฉ๋ฆฌ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค "head"
worktree.symlinkDirectories ๊ฐ worktree์—์„œ ์ค‘๋ณต์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์ธ ์ €์žฅ์†Œ์—์„œ symlinkํ•  ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋Š” symlink๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ["node_modules", ".cache"]
worktree.sparsePaths git sparse-checkout์„ ํ†ตํ•ด ๊ฐ worktree์—์„œ ์ฒดํฌ์•„์›ƒํ•  ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋‚˜์—ด๋œ ๊ฒฝ๋กœ๋งŒ ๋””์Šคํฌ์— ์ž‘์„ฑ๋˜๋ฏ€๋กœ ๋Œ€๊ทœ๋ชจ monorepos์—์„œ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค ["packages/my-app", "shared/utils"]
worktree.bgIsolation {/* min-version: 2.1.143 */}๋ฐฐ๊ฒฝ ์„ธ์…˜์˜ ๊ฒฉ๋ฆฌ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. "worktree" (๊ธฐ๋ณธ๊ฐ’)์€ EnterWorktree๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๊นŒ์ง€ ๋ฉ”์ธ ์ฒดํฌ์•„์›ƒ์—์„œ Edit/Write๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. "none"์€ ๋ฐฐ๊ฒฝ ์ž‘์—…์ด ์ž‘์—… ๋ณต์‚ฌ๋ณธ์„ ์ง์ ‘ ํŽธ์ง‘ํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. Claude Code v2.1.143 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค "none"

worktrees์— .env์™€ ๊ฐ™์€ gitignored ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋ ค๋ฉด ์„ค์ • ๋Œ€์‹  ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์˜ .worktreeinclude ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ถŒํ•œ ์„ค์ •

ํ‚ค ์„ค๋ช… ์˜ˆ์ œ
allow ๋„๊ตฌ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ถŒํ•œ ๊ทœ์น™ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ ์ด๋ฆ„ globs๋Š” mcp__<server>__get_*๊ณผ ๊ฐ™์ด ๋ฆฌํ„ฐ๋Ÿด mcp__<server>__ ์ ‘๋‘์‚ฌ ๋’ค์˜ ๋„๊ตฌ ์œ„์น˜์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์„ธ๊ทธ๋จผํŠธ๋Š” glob ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ„ด ๋งค์นญ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์•„๋ž˜ ๊ถŒํ•œ ๊ทœ์น™ ๊ตฌ๋ฌธ์„ ์ฐธ์กฐํ•˜์„ธ์š” [ "Bash(git diff *)" ]
ask ๋„๊ตฌ ์‚ฌ์šฉ ์‹œ ํ™•์ธ์„ ์š”์ฒญํ•˜๋Š” ๊ถŒํ•œ ๊ทœ์น™ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ํŒจํ„ด ๋งค์นญ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์•„๋ž˜ ๊ถŒํ•œ ๊ทœ์น™ ๊ตฌ๋ฌธ์„ ์ฐธ์กฐํ•˜์„ธ์š” [ "Bash(git push *)" ]
deny ๋„๊ตฌ ์‚ฌ์šฉ์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ๊ถŒํ•œ ๊ทœ์น™ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Claude Code ์•ก์„ธ์Šค์—์„œ ๋ฏผ๊ฐํ•œ ํŒŒ์ผ์„ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ๋„๊ตฌ ์ด๋ฆ„์€ glob ํŒจํ„ด์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค: "*"๋Š” ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ณ  "mcp__*"๋Š” ๋ชจ๋“  MCP ๋„๊ตฌ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ ๊ทœ์น™ ๊ตฌ๋ฌธ ๋ฐ Bash ๊ถŒํ•œ ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š” [ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]
additionalDirectories Claude๊ฐ€ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ .claude/ ๊ตฌ์„ฑ์€ ์ด๋Ÿฌํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [ "../docs/" ]
defaultMode Claude Code๋ฅผ ์—ด ๋•Œ ๊ธฐ๋ณธ ๊ถŒํ•œ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•œ ๊ฐ’: default, acceptEdits, plan, auto, dontAsk, bypassPermissions. {/* min-version: 2.1.142 */}Claude Code v2.1.142๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ ๋˜๋Š” local ์„ค์ • (.claude/settings.json, .claude/settings.local.json)์—์„œ ์„ค์ •๋˜๋ฉด auto๊ฐ€ ๋ฌด์‹œ๋˜๋ฏ€๋กœ ์ €์žฅ์†Œ๊ฐ€ ์ž์‹ ์—๊ฒŒ ์ž๋™ ๋ชจ๋“œ๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ~/.claude/settings.json์—์„œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. --permission-mode CLI ํ”Œ๋ž˜๊ทธ๋Š” ๋‹จ์ผ ์„ธ์…˜์— ๋Œ€ํ•ด ์ด ์„ค์ •์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค "acceptEdits"
disableBypassPermissionsMode bypassPermissions ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด "disable"๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” --dangerously-skip-permissions ๋ช…๋ น์ค„ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ managed ์„ค์ •์— ๋ฐฐ์น˜๋˜์–ด ์กฐ์ง ์ •์ฑ…์„ ์ ์šฉํ•˜์ง€๋งŒ ๋ชจ๋“  ๋ฒ”์œ„์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค "disable"
skipDangerousModePermissionPrompt --dangerously-skip-permissions ๋˜๋Š” defaultMode: "bypassPermissions"๋ฅผ ํ†ตํ•ด bypass permissions ๋ชจ๋“œ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ํ‘œ์‹œ๋˜๋Š” ํ™•์ธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ €์žฅ์†Œ๊ฐ€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์šฐํšŒํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ์„ค์ • (.claude/settings.json)์—์„œ ์„ค์ •๋˜๋ฉด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค true

๊ถŒํ•œ ๊ทœ์น™ ๊ตฌ๋ฌธ

๊ถŒํ•œ ๊ทœ์น™์€ Tool ๋˜๋Š” Tool(specifier) ํ˜•์‹์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๊ทœ์น™์€ ์ˆœ์„œ๋Œ€๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค: ๋จผ์ € ๊ฑฐ๋ถ€ ๊ทœ์น™, ๊ทธ ๋‹ค์Œ ์š”์ฒญ, ๊ทธ ๋‹ค์Œ ํ—ˆ์šฉ. ์ฒซ ๋ฒˆ์งธ ์ผ์น˜ ๊ทœ์น™์ด ์šฐ์Šนํ•ฉ๋‹ˆ๋‹ค. ๊ทœ์น™ ํŠน์ด์„ฑ๊ณผ ๊ด€๊ณ„์—†์ด ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ ๊ทœ์น™ ํ‰๊ฐ€ ์ˆœ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋น ๋ฅธ ์˜ˆ์ œ:

๊ทœ์น™ ํšจ๊ณผ
Bash ๋ชจ๋“  Bash ๋ช…๋ น๊ณผ ์ผ์น˜
Bash(npm run *) npm run์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น๊ณผ ์ผ์น˜
Read(./.env) .env ํŒŒ์ผ ์ฝ๊ธฐ์™€ ์ผ์น˜
WebFetch(domain:example.com) example.com์— ๋Œ€ํ•œ fetch ์š”์ฒญ๊ณผ ์ผ์น˜

Read, Edit, WebFetch, MCP ๋ฐ Agent ๊ทœ์น™์— ๋Œ€ํ•œ ์™€์ผ๋“œ์นด๋“œ ๋™์ž‘, ๋„๊ตฌ ํŠน์ • ํŒจํ„ด ๋ฐ Bash ํŒจํ„ด์˜ ๋ณด์•ˆ ์ œํ•œ์„ ํฌํ•จํ•œ ์™„์ „ํ•œ ๊ทœ์น™ ๊ตฌ๋ฌธ ์ฐธ์กฐ๋Š” ๊ถŒํ•œ ๊ทœ์น™ ๊ตฌ๋ฌธ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Sandbox ์„ค์ •

๊ณ ๊ธ‰ ์ƒŒ๋“œ๋ฐ•์‹ฑ ๋™์ž‘์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ƒŒ๋“œ๋ฐ•์‹ฑ์€ bash ๋ช…๋ น์„ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ๋„คํŠธ์›Œํฌ์—์„œ ๊ฒฉ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Sandboxing์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ‚ค ์„ค๋ช… ์˜ˆ์ œ
enabled bash ์ƒŒ๋“œ๋ฐ•์‹ฑ ํ™œ์„ฑํ™” (macOS, Linux ๋ฐ WSL2). ๊ธฐ๋ณธ๊ฐ’: false true
failIfUnavailable sandbox.enabled๊ฐ€ true์ด์ง€๋งŒ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ (์ข…์†์„ฑ ๋ˆ„๋ฝ, ์ง€์›๋˜์ง€ ์•Š๋Š” ํ”Œ๋žซํผ) ์‹œ์ž‘ ์‹œ ์˜ค๋ฅ˜๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. false (๊ธฐ๋ณธ๊ฐ’)์ผ ๋•Œ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ๋ช…๋ น์ด ์ƒŒ๋“œ๋ฐ•์‹ฑ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. Managed ์„ค์ • ๋ฐฐํฌ์—์„œ ์ƒŒ๋“œ๋ฐ•์‹ฑ์„ ํ•˜๋“œ ๊ฒŒ์ดํŠธ๋กœ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค true
autoAllowBashIfSandboxed ์ƒŒ๋“œ๋ฐ•์‹ฑ๋˜๋ฉด bash ๋ช…๋ น ์ž๋™ ์Šน์ธ. ๊ธฐ๋ณธ๊ฐ’: true true
excludedCommands ์ƒŒ๋“œ๋ฐ•์Šค ์™ธ๋ถ€์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ช…๋ น ["docker *"]
allowUnsandboxedCommands dangerouslyDisableSandbox ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ƒŒ๋“œ๋ฐ•์Šค ์™ธ๋ถ€์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. false๋กœ ์„ค์ •๋˜๋ฉด dangerouslyDisableSandbox ์ด์Šค์ผ€์ดํ”„ ํ•ด์น˜๊ฐ€ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”๋˜๊ณ  ๋ชจ๋“  ๋ช…๋ น์€ ์ƒŒ๋“œ๋ฐ•์‹ฑ๋˜๊ฑฐ๋‚˜ excludedCommands์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—„๊ฒฉํ•œ ์ƒŒ๋“œ๋ฐ•์‹ฑ์ด ํ•„์š”ํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ •์ฑ…์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: true false
filesystem.allowWrite ์ƒŒ๋“œ๋ฐ•์‹ฑ๋œ ๋ช…๋ น์ด ์“ธ ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋ชจ๋“  ์„ค์ • ๋ฒ”์œ„์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค: ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ ๋ฐ managed ๊ฒฝ๋กœ๊ฐ€ ๊ฒฐํ•ฉ๋˜๊ณ  ๋Œ€์ฒด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Edit(...) ํ—ˆ์šฉ ๊ถŒํ•œ ๊ทœ์น™์˜ ๊ฒฝ๋กœ์™€๋„ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ ์ ‘๋‘์‚ฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ["/tmp/build", "~/.kube"]
filesystem.denyWrite ์ƒŒ๋“œ๋ฐ•์‹ฑ๋œ ๋ช…๋ น์ด ์“ธ ์ˆ˜ ์—†๋Š” ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋ชจ๋“  ์„ค์ • ๋ฒ”์œ„์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. Edit(...) ๊ฑฐ๋ถ€ ๊ถŒํ•œ ๊ทœ์น™์˜ ๊ฒฝ๋กœ์™€๋„ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ["/etc", "/usr/local/bin"]
filesystem.denyRead ์ƒŒ๋“œ๋ฐ•์‹ฑ๋œ ๋ช…๋ น์ด ์ฝ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋ชจ๋“  ์„ค์ • ๋ฒ”์œ„์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. Read(...) ๊ฑฐ๋ถ€ ๊ถŒํ•œ ๊ทœ์น™์˜ ๊ฒฝ๋กœ์™€๋„ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ["~/.aws/credentials"]
filesystem.allowRead denyRead ์˜์—ญ ๋‚ด์—์„œ ์ฝ๊ธฐ๋ฅผ ๋‹ค์‹œ ํ—ˆ์šฉํ•  ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. denyRead๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋ชจ๋“  ์„ค์ • ๋ฒ”์œ„์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—… ๊ณต๊ฐ„ ์ „์šฉ ์ฝ๊ธฐ ์•ก์„ธ์Šค ํŒจํ„ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ["."]
filesystem.allowManagedReadPathsOnly (Managed ์„ค์ •๋งŒ) Managed ์„ค์ •์˜ filesystem.allowRead ๊ฒฝ๋กœ๋งŒ ์กด์ค‘๋ฉ๋‹ˆ๋‹ค. denyRead๋Š” ์—ฌ์ „ํžˆ ๋ชจ๋“  ์†Œ์Šค์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false true
credentials.files ์ƒŒ๋“œ๋ฐ•์‹ฑ๋œ ๋ช…๋ น์ด ์ฝ์„ ์ˆ˜ ์—†๋Š” ์ž๊ฒฉ ์ฆ๋ช… ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. filesystem.denyRead์™€ ๋™์ผํ•œ ์ฝ๊ธฐ ๋ธ”๋ก์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ํ‚ค๋Š” ์ž๊ฒฉ ์ฆ๋ช… ๊ฒฝ๋กœ๋ฅผ credentials.envVars์™€ ํ•จ๊ป˜ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์ผ๋ฐ˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ทœ์น™๊ณผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ•ญ๋ชฉ์€ { "path": "...", "mode": "deny" }์ž…๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋Š” filesystem.* ์„ค์ •๊ณผ ๋™์ผํ•œ ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋ชจ๋“  ์„ค์ • ๋ฒ”์œ„์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. deny๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Claude Code v2.1.187 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. [{ "path": "~/.aws/credentials", "mode": "deny" }]
credentials.envVars ์ƒŒ๋“œ๋ฐ•์‹ฑ๋œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์„ค์ • ํ•ด์ œํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ ํ•ญ๋ชฉ์€ { "name": "...", "mode": "deny" }์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋ชจ๋“  ์„ค์ • ๋ฒ”์œ„์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. deny๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Claude Code v2.1.187 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. [{ "name": "GITHUB_TOKEN", "mode": "deny" }]
network.allowUnixSockets (macOS๋งŒ) Unix ์†Œ์ผ“ ๊ฒฝ๋กœ ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ. Linux ๋ฐ WSL2์—์„œ๋Š” ๋ฌด์‹œ๋˜๋ฉฐ, seccomp ํ•„ํ„ฐ๊ฐ€ ์†Œ์ผ“ ๊ฒฝ๋กœ๋ฅผ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  allowAllUnixSockets๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ["~/.ssh/agent-socket"]
network.allowAllUnixSockets ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ๋ชจ๋“  Unix ์†Œ์ผ“ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. Linux ๋ฐ WSL2์—์„œ ์ด๋Š” socket(AF_UNIX, ...) ํ˜ธ์ถœ์„ ์ฐจ๋‹จํ•˜๋Š” seccomp ํ•„ํ„ฐ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋ฏ€๋กœ Unix ์†Œ์ผ“์„ ํ—ˆ์šฉํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false true
network.allowLocalBinding localhost ํฌํŠธ์— ๋ฐ”์ธ๋”ฉ ํ—ˆ์šฉ (macOS๋งŒ). ๊ธฐ๋ณธ๊ฐ’: false true
network.allowMachLookup ์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ XPC/Mach ์„œ๋น„์Šค ์ด๋ฆ„ (macOS๋งŒ). ์ ‘๋‘์‚ฌ ์ผ์น˜๋ฅผ ์œ„ํ•ด ๋‹จ์ผ ํ›„ํ–‰ *๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. iOS Simulator ๋˜๋Š” Playwright์™€ ๊ฐ™์ด XPC๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋Š” ๋„๊ตฌ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ["com.apple.coresimulator.*"]
network.allowedDomains ์•„์›ƒ๋ฐ”์šด๋“œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•  ๋„๋ฉ”์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: *.example.com). ["github.com", "*.npmjs.org"]
network.deniedDomains ์•„์›ƒ๋ฐ”์šด๋“œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•  ๋„๋ฉ”์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. allowedDomains์™€ ๋™์ผํ•œ ์™€์ผ๋“œ์นด๋“œ ๊ตฌ๋ฌธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์ผ์น˜ํ•  ๋•Œ allowedDomains๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ค์ • ์†Œ์Šค์™€ ๊ด€๊ณ„์—†์ด ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค ["sensitive.cloud.example.com"]
network.allowManagedDomainsOnly (Managed ์„ค์ •๋งŒ) Managed ์„ค์ •์˜ allowedDomains ๋ฐ WebFetch(domain:...) ํ—ˆ์šฉ ๊ทœ์น™๋งŒ ์กด์ค‘๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ ๋ฐ local ์„ค์ •์˜ ๋„๋ฉ”์ธ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ๋„๋ฉ”์ธ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ  ์ž๋™์œผ๋กœ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๋ถ€๋œ ๋„๋ฉ”์ธ์€ ์—ฌ์ „ํžˆ ๋ชจ๋“  ์†Œ์Šค์—์„œ ์กด์ค‘๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false true
network.httpProxyPort ์ž์‹ ์˜ ํ”„๋ก์‹œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” HTTP ํ”„๋ก์‹œ ํฌํŠธ์ž…๋‹ˆ๋‹ค. ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด Claude๊ฐ€ ์ž์‹ ์˜ ํ”„๋ก์‹œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 8080
network.socksProxyPort ์ž์‹ ์˜ ํ”„๋ก์‹œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” SOCKS5 ํ”„๋ก์‹œ ํฌํŠธ์ž…๋‹ˆ๋‹ค. ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด Claude๊ฐ€ ์ž์‹ ์˜ ํ”„๋ก์‹œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 8081
enableWeakerNestedSandbox ๊ถŒํ•œ์ด ์—†๋Š” Docker ํ™˜๊ฒฝ์—์„œ ๋” ์•ฝํ•œ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค (Linux ๋ฐ WSL2๋งŒ). ๋ณด์•ˆ์„ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false true
enableWeakerNetworkIsolation (macOS๋งŒ) ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ์‹œ์Šคํ…œ TLS ์‹ ๋ขฐ ์„œ๋น„์Šค (com.apple.trustd.agent)์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. MITM ํ”„๋ก์‹œ ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ CA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” httpProxyPort๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ gh, gcloud ๋ฐ terraform๊ณผ ๊ฐ™์€ Go ๊ธฐ๋ฐ˜ ๋„๊ตฌ๊ฐ€ TLS ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ์„ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค ์ž ์žฌ์  ๋ฐ์ดํ„ฐ ์œ ์ถœ ๊ฒฝ๋กœ๋ฅผ ์—ด์–ด์„œ. ๊ธฐ๋ณธ๊ฐ’: false true
allowAppleEvents (macOS๋งŒ) ์ƒŒ๋“œ๋ฐ•์‹ฑ๋œ ๋ช…๋ น์ด Apple Events๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. open, osascript ๋ฐ URL์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์— ํ•„์š”ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜ -600์œผ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ƒŒ๋“œ๋ฐ•์‹ฑ๋œ ๋ช…๋ น์€ ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ ์—†์ด ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒŒ๋“œ๋ฐ•์‹ฑ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Terminal๊ณผ ๊ฐ™์€ ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— AppleScript ๋ช…๋ น์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์•ฑ๋ณ„ macOS ์ž๋™ํ™” ๋™์˜ ํ”„๋กฌํ”„ํŠธ (TCC)์˜ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž, managed ๋˜๋Š” CLI ์„ค์ •์—์„œ๋งŒ ์ ์šฉ๋˜๋ฉฐ ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: false true
bwrapPath (Managed ์„ค์ •๋งŒ, Linux/WSL2) bubblewrap (bwrap) ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. PATH๋ฅผ ํ†ตํ•œ ์ž๋™ ๊ฐ์ง€๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. managed ์„ค์ •์—์„œ๋งŒ ์ ์šฉ๋˜๋ฉฐ ์‚ฌ์šฉ์ž ๋˜๋Š” ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. bwrap์ด managed ํ™˜๊ฒฝ์—์„œ ๋น„ํ‘œ์ค€ ์œ„์น˜์— ์„ค์น˜๋œ ๊ฒฝ์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. /opt/admin/bwrap
socatPath (Managed ์„ค์ •๋งŒ, Linux/WSL2) ์ƒŒ๋“œ๋ฐ•์Šค ๋„คํŠธ์›Œํฌ ํ”„๋ก์‹œ์— ์‚ฌ์šฉ๋˜๋Š” socat ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. PATH๋ฅผ ํ†ตํ•œ ์ž๋™ ๊ฐ์ง€๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. Managed ์„ค์ •์—์„œ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. /opt/admin/socat

Sandbox ๊ฒฝ๋กœ ์ ‘๋‘์‚ฌ

filesystem.allowWrite, filesystem.denyWrite, filesystem.denyRead, filesystem.allowRead ๋ฐ credentials.files์˜ ๊ฒฝ๋กœ๋Š” ๋‹ค์Œ ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

์ ‘๋‘์‚ฌ ์˜๋ฏธ ์˜ˆ์ œ
/ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฃจํŠธ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ /tmp/build๋Š” /tmp/build๋กœ ์œ ์ง€๋จ
~/ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ๋Œ€์  ~/.kube๋Š” $HOME/.kube๊ฐ€ ๋จ
./ ๋˜๋Š” ์ ‘๋‘์‚ฌ ์—†์Œ ํ”„๋กœ์ ํŠธ ์„ค์ •์˜ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— ์ƒ๋Œ€์ ์ด๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์„ค์ •์˜ ๊ฒฝ์šฐ ~/.claude์— ์ƒ๋Œ€์  ./output์€ .claude/settings.json์—์„œ <project-root>/output์œผ๋กœ ํ•ด๊ฒฐ๋จ

์ด์ „ //path ์ ‘๋‘์‚ฌ๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ์—ฌ์ „ํžˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— ํ”„๋กœ์ ํŠธ ์ƒ๋Œ€ ํ•ด๊ฒฐ์„ ๊ธฐ๋Œ€ํ•˜๋ฉด์„œ ๋‹จ์ผ ์Šฌ๋ž˜์‹œ /path๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ./path๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌ๋ฌธ์€ /path๋ฅผ ํ”„๋กœ์ ํŠธ ์ƒ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” Read ๋ฐ Edit ๊ถŒํ•œ ๊ทœ์น™๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Sandbox ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ๋Š” ํ‘œ์ค€ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: /tmp/build๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์˜ˆ์ œ:

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker *"],
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org", "registry.yarnpkg.com"],
      "deniedDomains": ["uploads.github.com"],
      "allowUnixSockets": [
        "/var/run/docker.sock"
      ],
      "allowLocalBinding": true
    }
  }
}

ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ๋„คํŠธ์›Œํฌ ์ œํ•œ์€ ํ•จ๊ป˜ ๋ณ‘ํ•ฉ๋˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • sandbox.filesystem ์„ค์ • (์œ„์— ํ‘œ์‹œ๋จ): OS ์ˆ˜์ค€ ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒฝ๊ณ„์—์„œ ๊ฒฝ๋กœ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ œํ•œ์€ Claude์˜ ํŒŒ์ผ ๋„๊ตฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค ๋ช…๋ น (์˜ˆ: kubectl, terraform, npm)์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๊ถŒํ•œ ๊ทœ์น™: Edit ํ—ˆ์šฉ/๊ฑฐ๋ถ€ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ Claude์˜ ํŒŒ์ผ ๋„๊ตฌ ์•ก์„ธ์Šค๋ฅผ ์ œ์–ดํ•˜๊ณ , Read ๊ฑฐ๋ถ€ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ๊ธฐ๋ฅผ ์ฐจ๋‹จํ•˜๊ณ , WebFetch ํ—ˆ์šฉ/๊ฑฐ๋ถ€ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ๋„๋ฉ”์ธ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ทœ์น™์˜ ๊ฒฝ๋กœ๋„ ์ƒŒ๋“œ๋ฐ•์Šค ๊ตฌ์„ฑ์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.

Attribution ์„ค์ •

Claude Code๋Š” git ์ปค๋ฐ‹ ๋ฐ pull request์— attribution์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ๋ณ„๋„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  • ์ปค๋ฐ‹์€ ๊ธฐ๋ณธ์ ์œผ๋กœ git trailers (์˜ˆ: Co-Authored-By)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • Pull request ์„ค๋ช…์€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ์ž…๋‹ˆ๋‹ค
ํ‚ค ์„ค๋ช…
commit git ์ปค๋ฐ‹์— ๋Œ€ํ•œ attribution์œผ๋กœ ๋ชจ๋“  trailers๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ๋ฌธ์ž์—ด์€ ์ปค๋ฐ‹ attribution์„ ์ˆจ๊น๋‹ˆ๋‹ค
pr Pull request ์„ค๋ช…์— ๋Œ€ํ•œ attribution์ž…๋‹ˆ๋‹ค. ๋นˆ ๋ฌธ์ž์—ด์€ pull request attribution์„ ์ˆจ๊น๋‹ˆ๋‹ค
sessionUrl ์›น ๋˜๋Š” Remote Control ์„ธ์…˜์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์ปค๋ฐ‹์— Claude-Session trailer๋กœ claude.ai ์„ธ์…˜ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ• ์ง€ ์—ฌ๋ถ€ ๋ฐ pull request ์„ค๋ช…์˜ ๋งํฌ. ๊ธฐ๋ณธ๊ฐ’: true. ๋งํฌ๋ฅผ ์ƒ๋žตํ•˜๋ ค๋ฉด false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค

๊ธฐ๋ณธ ์ปค๋ฐ‹ attribution:

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

์„ธ์…˜์˜ ํ™œ์„ฑ ๋ชจ๋ธ์„ ๋ฐ˜์˜ํ•˜๋Š” trailer์˜ ๋ชจ๋ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ pull request attribution:

๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code)

์˜ˆ์ œ:

{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
    "pr": ""
  }
}

ํŒŒ์ผ ์ œ์•ˆ ์„ค์ •

@ ํŒŒ์ผ ๊ฒฝ๋กœ ์ž๋™ ์™„์„ฑ์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๋ช…๋ น์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ œ๊ณต ํŒŒ์ผ ์ œ์•ˆ์€ ๋น ๋ฅธ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ˆœํšŒ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋Œ€๊ทœ๋ชจ monorepos๋Š” ์‚ฌ์ „ ๊ตฌ์ถ•๋œ ํŒŒ์ผ ์ธ๋ฑ์Šค ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋„๊ตฌ์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ ํŠน์ • ์ธ๋ฑ์‹ฑ์˜ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
  "fileSuggestion": {
    "type": "command",
    "command": "~/.claude/file-suggestion.sh"
  }
}

๋ช…๋ น์€ CLAUDE_PROJECT_DIR์„ ํฌํ•จํ•œ hooks์™€ ๋™์ผํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. stdin์„ ํ†ตํ•ด query ํ•„๋“œ๊ฐ€ ์žˆ๋Š” JSON์„ ๋ฐ›์Šต๋‹ˆ๋‹ค:

{"query": "src/comp"}

stdout์— ์ค„ ๋ฐ”๊ฟˆ์œผ๋กœ ๊ตฌ๋ถ„๋œ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค (ํ˜„์žฌ 15๊ฐœ๋กœ ์ œํ•œ๋จ):

src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx

์˜ˆ์ œ:

#!/bin/bash
query=$(cat | jq -r '.query')
# your-repo-file-index๋ฅผ ์ž์‹ ์˜ ํŒŒ์ผ ๊ฒ€์ƒ‰ ๋ช…๋ น์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค
your-repo-file-index --query "$query" | head -20

footerLinksRegexes ์„ค์ •์€ ์ž…๋ ฅ ์ƒ์ž ์•„๋ž˜ ๋ฐ”๋‹ฅ๊ธ€์— ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ๋ฐฐ์ง€๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€ํ†  ๋„๊ตฌ ๋ฐ ์ด์Šˆ ์ถ”์ ๊ธฐ์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ CLI์—์„œ ์ธ์‡„ํ•œ ID๋ฅผ ์„ธ์…˜ ๋งํฌ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ํ•ญ๋ชฉ์˜ pattern ์ •๊ทœ์‹์€ ํ„ด ์ถœ๋ ฅ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค: ๋„๊ตฌ ๊ฒฐ๊ณผ (ํŒŒ์ผ ๋‚ด์šฉ ๋ฐ ๊ฐ€์ ธ์˜จ ํŽ˜์ด์ง€ ํฌํ•จ) ๋ฐ Claude์˜ ์ž์ฒด ์‘๋‹ต. url ๋ฐ label์˜ {name} ์ž๋ฆฌ ํ‘œ์‹œ์ž๋Š” ํŒจํ„ด์˜ ๋ช…๋ช…๋œ ์บก์ฒ˜ ๊ทธ๋ฃน์—์„œ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ๋Š” PROJ-1234์™€ ๊ฐ™์€ ์ด์Šˆ ํ‚ค๊ฐ€ ํ„ด ์ถœ๋ ฅ์— ๋‚˜ํƒ€๋‚  ๋•Œ๋งˆ๋‹ค ๋ฐฐ์ง€๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. (?<key>...) ๋ช…๋ช…๋œ ๊ทธ๋ฃน์ด ํ‚ค๋ฅผ ์บก์ฒ˜ํ•˜๊ณ  {key}๊ฐ€ URL ๋ฐ ๋ ˆ์ด๋ธ”๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค:

{
  "footerLinksRegexes": [
    {
      "type": "regex",
      "pattern": "\\b(?<key>PROJ-\\d+)\\b",
      "url": "https://issues.example.com/browse/{key}",
      "label": "{key}"
    }
  ]
}

์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•˜๋ฉด PROJ-1234๊ฐ€ ๋„๊ตฌ ๊ฒฐ๊ณผ ๋˜๋Š” Claude์˜ ์‘๋‹ต์— ๋‚˜ํƒ€๋‚  ๋•Œ PROJ-1234 ์นฉ์ด ๋ฐ”๋‹ฅ๊ธ€์— ๋‚˜ํƒ€๋‚˜ https://issues.example.com/browse/PROJ-1234๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ œ์•ฝ์ด ๊ฐ ํ•ญ๋ชฉ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค:

์ œ์•ฝ ๋™์ž‘
URL origin ์บก์ฒ˜๋œ ๊ฐ’์€ URL ์ธ์ฝ”๋”ฉ๋˜๊ณ  ๊ตฌ์„ฑ๋œ URL์€ ํ…œํ”Œ๋ฆฟ์˜ ๋ฆฌํ„ฐ๋Ÿด origin์„ ๊ณต์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์บก์ฒ˜๋Š” ๊ฒฝ๋กœ ์„ธ๊ทธ๋จผํŠธ ๋˜๋Š” ์ฟผ๋ฆฌ ๊ฐ’์„ ์ฑ„์šธ ์ˆ˜ ์žˆ์ง€๋งŒ ๋งํฌ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
URL ๊ธธ์ด 2048์ž๋ณด๋‹ค ๊ธด ๊ตฌ์„ฑ๋œ URL์€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค
URL ์Šคํ‚ค๋งˆ https, http ๋˜๋Š” ์ธ์‹๋œ ํŽธ์ง‘๊ธฐ ๋˜๋Š” ์ž‘์—… ๊ณต๊ฐ„ deep-link ์Šคํ‚ค๋งˆ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค: vscode, vscode-insiders, cursor, windsurf, zed, jetbrains, idea, slack, linear, notion, figma
๋ ˆ์ด๋ธ” ๊ธฐ๋ณธ๊ฐ’์€ ์ผ์น˜ํ•œ ํ…์ŠคํŠธ์ด๋ฉฐ 28๊ฐœ ํ‘œ์‹œ ์—ด๋กœ ์ž˜๋ฆฝ๋‹ˆ๋‹ค
๋ฐฐ์ง€ ์ˆ˜ ์ตœ๋Œ€ 5๊ฐœ ๋ฐฐ์ง€๊ฐ€ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๊ฒƒ์ด ์ƒˆ๋กœ์šด ์ผ์น˜๋กœ ๋Œ€์ฒด๋˜๊ณ  /clear๊ฐ€ ์ด๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค
์„ค์ • ๋ฒ”์œ„ ์‚ฌ์šฉ์ž ์„ค์ •, --settings ํ”Œ๋ž˜๊ทธ ๋ฐ managed ์„ค์ •์—์„œ๋งŒ ์ฝ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ .claude/settings.json ๋ฐ local .claude/settings.local.json์—์„œ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค

ํ„ด์ด ์™„๋ฃŒ๋˜๋ฉด Claude Code๋Š” ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ๊ฐ ํ•ญ๋ชฉ์˜ pattern ์ •๊ทœ์‹์„ ํ„ด ์ถœ๋ ฅ๊ณผ ์ผ์น˜์‹œํ‚ค๋ฏ€๋กœ ๋А๋ฆฐ ์ •๊ทœ์‹์€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ UI๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. (a+)+$์™€ ๊ฐ™์€ ์ค‘์ฒฉ๋œ ์ˆ˜๋Ÿ‰์ž๋Š” ํŠน์ • ์ž…๋ ฅ์— ๋Œ€ํ•ด ์ง€์ˆ˜์ ์œผ๋กœ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ณ  ์„ธ์…˜์„ ๊ณ ์ •์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ pattern์„ ์„ ํ˜•์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  + ๋˜๋Š” * ์ค‘์ฒฉ์„ ํ”ผํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”๋‹ฅ๊ธ€ ๋ฐฐ์ง€๋Š” ๊ตฌ์„ฑ๋œ ์‚ฌ์šฉ์ž ์ •์˜ ์ƒํƒœ ์ค„๊ณผ ํ•จ๊ป˜ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ์–ด๋А ๊ฒƒ๋„ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋Œ€์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ธ์…˜ ๋ฐ์ดํ„ฐ์—์„œ ์ž์‹ ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ํ–‰์— ์ƒํƒœ ์ค„์„ ์‚ฌ์šฉํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ ์—†์ด ๋Œ€ํ™”์—์„œ ID๋ฅผ ๋งํฌ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด ๋ฐ”๋‹ฅ๊ธ€ ๋ฐฐ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Hook ๊ตฌ์„ฑ

์ด๋Ÿฌํ•œ ์„ค์ •์€ ์–ด๋–ค hooks๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š”์ง€์™€ HTTP hooks๊ฐ€ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. allowManagedHooksOnly ์„ค์ •์€ managed ์„ค์ •์—์„œ๋งŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. URL ๋ฐ env var ํ—ˆ์šฉ ๋ชฉ๋ก์€ ๋ชจ๋“  ์„ค์ • ์ˆ˜์ค€์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์†Œ์Šค ์ „์ฒด์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.

allowManagedHooksOnly๊ฐ€ true์ผ ๋•Œ์˜ ๋™์ž‘:

  • Managed hooks ๋ฐ SDK hooks๊ฐ€ ๋กœ๋“œ๋จ
  • Managed ์„ค์ • enabledPlugins์—์„œ ๊ฐ•์ œ ํ™œ์„ฑํ™”๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ hooks๊ฐ€ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ์ž๋Š” ์กฐ์ง ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆ๋œ hooks๋ฅผ ๋ฐฐํฌํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ ๋ขฐ๋Š” ์ „์ฒด plugin@marketplace ID๋กœ ๋ถ€์—ฌ๋˜๋ฏ€๋กœ ๋‹ค๋ฅธ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์˜ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ฐจ๋‹จ๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค
  • ์‚ฌ์šฉ์ž hooks, ํ”„๋กœ์ ํŠธ hooks ๋ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ hooks๋Š” ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค

HTTP hook URL ์ œํ•œ:

HTTP hooks๊ฐ€ ๋Œ€์ƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” URL์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ผ์น˜๋ฅผ ์œ„ํ•ด *๋ฅผ ์™€์ผ๋“œ์นด๋“œ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์ด ์ •์˜๋˜๋ฉด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” URL์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” HTTP hooks๋Š” ์ž๋™์œผ๋กœ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ๋ช… ์ผ์น˜๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ›„ํ–‰ FQDN ์ ์„ ๋ฌด์‹œํ•˜์—ฌ DNS ์˜๋ฏธ๋ก ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

{
  "allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]
}

HTTP hook ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ œํ•œ:

HTTP hooks๊ฐ€ ํ—ค๋” ๊ฐ’์— ๋ณด๊ฐ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๊ฐ hook์˜ ์œ ํšจํ•œ allowedEnvVars๋Š” ์ด ์„ค์ •๊ณผ์˜ ๊ต์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.

{
  "httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
}

์ •์ฑ… ๋„์šฐ๋ฏธ๋กœ managed ์„ค์ • ๊ณ„์‚ฐ

policyHelper ์„ค์ •์€ ์‹œ์ž‘ ์‹œ managed ์„ค์ •์„ ๋™์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๋Š” ์‹คํ–‰ ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ ๊ด€๋ฆฌ์ž๋Š” ์žฅ์น˜ ์ƒํƒœ, ID ๋˜๋Š” ์›๊ฒฉ ์„œ๋น„์Šค์—์„œ ์ •์ฑ…์„ ํŒŒ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MDM ๋˜๋Š” ์‹œ์Šคํ…œ managed-settings.json ํŒŒ์ผ์—์„œ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Claude Code๋Š” ์‚ฌ์šฉ์ž ์„ค์ •, ํ”„๋กœ์ ํŠธ ์„ค์ •, HKCU ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ•˜์ด๋ธŒ ๋ฐ ์„œ๋ฒ„ ๊ด€๋ฆฌ ์„ค์ •์„ ํฌํ•จํ•œ ๋‹ค๋ฅธ ๋ฒ”์œ„์— ๋‚˜ํƒ€๋‚˜๋Š” policyHelper๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •์€ ๋‹ค์Œ ํ‚ค๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค:

ํ‚ค ์œ ํ˜• ์„ค๋ช…
path string ๋„์šฐ๋ฏธ ์‹คํ–‰ ํŒŒ์ผ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ
timeoutMs number ๋„์šฐ๋ฏธ๊ฐ€ ์‹คํŒจํ•œ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•  ์‹œ๊ฐ„
refreshIntervalMs number ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋„์šฐ๋ฏธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•  ๋นˆ๋„. ์ƒˆ๋กœ๊ณ ์นจ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด 0์œผ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์ตœ์†Œ 60000์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค

๋„์šฐ๋ฏธ๋Š” stdout์— JSON ๋ด‰ํˆฌ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์„ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์ด ์•„๋‹Œ managedSettings ํ‚ค ์•„๋ž˜์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฒ ์–ด ์„ค์ • ๊ฐ์ฒด๋Š” managedSettings undefined๋กœ ํŒŒ์‹ฑ๋˜๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์ ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค:

{
  "managedSettings": {
    "permissions": { "deny": ["Read(//etc/secrets/**)"] }
  },
  "claudeMd": "# Organization context\n...",
  "appendSystemPrompt": "Always cite the internal style guide."
}

๋„์šฐ๋ฏธ๊ฐ€ managedSettings๋ฅผ ๋‚ด๋ณด๋‚ผ ๋•Œ ํ•ด๋‹น ๊ฐ์ฒด๋Š” ์‹คํ–‰์„ ์œ„ํ•ด ํŒŒ์ผ ๊ธฐ๋ฐ˜ managed ์„ค์ •์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ๋„์šฐ๋ฏธ๊ฐ€ ์‹œ์ž‘ ์‹œ 0์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์ข…๋ฃŒ๋˜๋ฉด Claude Code๋Š” ์˜ค๋ฅ˜๋ฅผ ์ธ์‡„ํ•˜๊ณ  ์‹œ์ž‘์„ ๊ฑฐ๋ถ€ํ•˜๋ฏ€๋กœ ์ค‘๋‹จ ๋ณต์›๋ ฅ์ด ํ•„์š”ํ•œ ๋„์šฐ๋ฏธ๋Š” ์ž์‹ ์˜ ์บ์‹œ์—์„œ ์ œ๊ณตํ•˜๊ณ  0์œผ๋กœ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ์šฐ์„ ์ˆœ์œ„

์„ค์ •์€ ์šฐ์„ ์ˆœ์œ„ ์ˆœ์„œ๋Œ€๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋†’์Œ์—์„œ ๊ฐ€์žฅ ๋‚ฎ์Œ:

  1. Managed ์„ค์ • (์„œ๋ฒ„ ๊ด€๋ฆฌ, MDM/OS ์ˆ˜์ค€ ์ •์ฑ… ๋˜๋Š” managed ์„ค์ •)

    • IT์—์„œ ์„œ๋ฒ„ ์ „๋‹ฌ, MDM ๊ตฌ์„ฑ ํ”„๋กœํ•„, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ •์ฑ… ๋˜๋Š” managed ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ๋ฐฐํฌํ•œ ์ •์ฑ…
    • ๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ํฌํ•จํ•œ ๋‹ค๋ฅธ ์ˆ˜์ค€์œผ๋กœ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Œ
    • Managed ๊ณ„์ธต ๋‚ด์—์„œ ์šฐ์„ ์ˆœ์œ„๋Š”: ์„œ๋ฒ„ ๊ด€๋ฆฌ > MDM/OS ์ˆ˜์ค€ ์ •์ฑ… > ํŒŒ์ผ ๊ธฐ๋ฐ˜ (managed-settings.d/*.json + managed-settings.json) > HKCU ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ (Windows๋งŒ). ํ•˜๋‚˜์˜ managed ์†Œ์Šค๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ ์†Œ์Šค๋Š” ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๊ณ„์ธต ๋‚ด์—์„œ ๋“œ๋กญ์ธ ํŒŒ์ผ๊ณผ ๊ธฐ๋ณธ ํŒŒ์ผ์ด ํ•จ๊ป˜ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.
    • Agent SDK ๋˜๋Š” IDE ํ™•์žฅ๊ณผ ๊ฐ™์€ embedding host๋Š” SDK managedSettings ์˜ต์…˜์„ ํ†ตํ•ด ์ •์ฑ…์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Š” ๊ด€๋ฆฌ์ž ๋ฐฐํฌ managed ๊ณ„์ธต์ด ์žˆ์„ ๋•Œ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๋Š” parentSettingsBehavior๋ฅผ "merge"๋กœ ์„ค์ •ํ•˜์—ฌ ์˜ตํŠธ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. embedder์˜ ๊ฐ’์€ ํ•„ํ„ฐ๋ง๋˜๋ฏ€๋กœ managed ์ •์ฑ…์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์™„ํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  2. ๋ช…๋ น์ค„ ์ธ์ˆ˜

    • ํŠน์ • ์„ธ์…˜์— ๋Œ€ํ•œ ์ž„์‹œ ์žฌ์ •์˜. --settings <file-or-json>์„ ํ†ตํ•ด ์ „๋‹ฌ๋œ JSON์€ ํŒŒ์ผ ๊ธฐ๋ฐ˜ ์„ค์ •๊ณผ ๋™์ผํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค: ์—ฌ๊ธฐ์— ์„ค์ •๋œ ํ‚ค๋Š” local, project ๋˜๋Š” user ์„ค์ •์˜ ๋™์ผํ•œ ํ‚ค๋ฅผ ์žฌ์ •์˜ํ•˜๊ณ , ํ‚ค๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๋‚ฎ์€ ๊ณ„์ธต ๊ฐ’์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค
  3. Local ํ”„๋กœ์ ํŠธ ์„ค์ • (.claude/settings.local.json)

    • ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ํŠน์ • ์„ค์ •
  4. ๊ณต์œ  ํ”„๋กœ์ ํŠธ ์„ค์ • (.claude/settings.json)

    • ์†Œ์Šค ์ œ์–ด์˜ ํŒ€ ๊ณต์œ  ํ”„๋กœ์ ํŠธ ์„ค์ •
  5. ์‚ฌ์šฉ์ž ์„ค์ • (~/.claude/settings.json)

    • ๊ฐœ์ธ ์ „์—ญ ์„ค์ •

์ด ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ์กฐ์ง ์ •์ฑ…์ด ํ•ญ์ƒ ์ ์šฉ๋˜๋ฉด์„œ๋„ ํŒ€๊ณผ ๊ฐœ์ธ์ด ์ž์‹ ์˜ ๊ฒฝํ—˜์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. CLI, VS Code ํ™•์žฅ ๋˜๋Š” JetBrains IDE์—์„œ Claude Code๋ฅผ ์‹คํ–‰ํ•˜๋“  ๋™์ผํ•œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž ์„ค์ •์ด permissions.defaultMode๋ฅผ acceptEdits๋กœ ์„ค์ •ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ์˜ ๊ณต์œ  ์„ค์ •์ด ์ด๋ฅผ default๋กœ ์„ค์ •ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ๊ฐ’์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋Š” ๋ฐฐ์—ด ๊ฐ’ ์„ค์ • (์˜ˆ: ๊ถŒํ•œ ๊ทœ์น™)์ด ๋Œ€์‹  ์–ด๋–ป๊ฒŒ ๊ฒฐํ•ฉ๋˜๋Š”์ง€๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

ํ™œ์„ฑ ์„ค์ • ํ™•์ธ

Claude Code ๋‚ด์—์„œ /status๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ™œ์„ฑ ์„ค์ • ์†Œ์Šค๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋‰ด ๋‚ด์—์„œ Status ํƒญ์—๋Š” ์ด ์„ธ์…˜์— ๋Œ€ํ•ด Claude Code๊ฐ€ ๋กœ๋“œํ•œ ๊ฐ ๊ณ„์ธต์„ ๋‚˜์—ดํ•˜๋Š” Setting sources ์ค„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค (์˜ˆ: User settings ๋˜๋Š” Project local settings). managed ์„ค์ •์ด ์ ์šฉ๋˜๋ฉด ํ•ญ๋ชฉ์€ ์ „๋‹ฌ ์ฑ„๋„์„ ๊ด„ํ˜ธ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: Enterprise managed settings (remote), (plist), (HKLM), (HKCU) ๋˜๋Š” (file)). ๊ณ„์ธต์€ ํ•ด๋‹น ์†Œ์Šค๊ฐ€ ์ตœ์†Œ ํ•˜๋‚˜์˜ ํ‚ค๋กœ ๋กœ๋“œ๋  ๋•Œ๋งŒ ๋ชฉ๋ก์— ๋‚˜ํƒ€๋‚˜๋ฏ€๋กœ ๋นˆ ๋ชฉ๋ก์€ ์„ค์ • ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Setting sources ์ค„์€ ์–ด๋–ค ์†Œ์Šค๊ฐ€ ์ฝํ˜€์ง€๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฐœ๋ณ„ ํ‚ค๋ฅผ ์ œ๊ณตํ•œ ๊ณ„์ธต์„ ํ‘œ์‹œํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. Config ํƒญ์€ ๋™์ผํ•œ ๋Œ€ํ™”์—์„œ ํ…Œ๋งˆ ๋ฐ verbose ์ถœ๋ ฅ๊ณผ ๊ฐ™์€ ๊ณ ์ •๋œ ํ† ๊ธ€ ์ง‘ํ•ฉ์˜ ํŽธ์ง‘๊ธฐ์ž…๋‹ˆ๋‹ค. settings.json ๋‚ด์šฉ์˜ ๋ณด๊ธฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์„ค์ • ํŒŒ์ผ์— ์œ ํšจํ•˜์ง€ ์•Š์€ JSON ๋˜๋Š” ๊ฒ€์ฆ์— ์‹คํŒจํ•œ ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด Claude Code๋Š” ์‹œ์ž‘ ์‹œ ์„ค์ • ๋ฌธ์ œ ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•˜๊ณ  /status๋Š” ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํŒŒ์ผ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์˜ค๋ฅ˜์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋ณด๋ ค๋ฉด /doctor๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ํฌ์ธํŠธ

  • ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ (CLAUDE.md): Claude๊ฐ€ ์‹œ์ž‘ ์‹œ ๋กœ๋“œํ•˜๋Š” ์ง€์นจ ๋ฐ ์ปจํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค
  • ์„ค์ • ํŒŒ์ผ (JSON): ๊ถŒํ•œ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ ๋„๊ตฌ ๋™์ž‘์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค
  • Skills: /skill-name์œผ๋กœ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ Claude๊ฐ€ ์ž๋™์œผ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํ”„๋กฌํ”„ํŠธ
  • MCP servers: ์ถ”๊ฐ€ ๋„๊ตฌ ๋ฐ ํ†ตํ•ฉ์œผ๋กœ Claude Code๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค
  • ์šฐ์„ ์ˆœ์œ„: ๋†’์€ ์ˆ˜์ค€ ๊ตฌ์„ฑ (Managed)์ด ๋‚ฎ์€ ์ˆ˜์ค€ (User/Project)์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ƒ์†: ์„ค์ •์€ ๋ฒ”์œ„ ์ „์ฒด์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์Šค์นผ๋ผ ๊ฐ’์€ ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ๋ฒ”์œ„์—์„œ ์žฌ์ •์˜๋˜๊ณ , ๋ฐฐ์—ด์€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค (์˜ˆ์™ธ: fallbackModel์€ ์ตœ๊ณ  ์šฐ์„ ์ˆœ์œ„ ๋ฒ”์œ„๊ฐ€ ์ „์ฒด ์ฒด์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. v2.1.175๋ถ€ํ„ฐ availableModels๋„ managed ๋˜๋Š” ์ •์ฑ… ๊ฐ’์ด ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„ ํ•ญ๋ชฉ์„ ์™„์ „ํžˆ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค)

์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ

Claude Code์˜ ๋‚ด๋ถ€ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๋Š” ๊ฒŒ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ์ง€์นจ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด CLAUDE.md ํŒŒ์ผ ๋˜๋Š” --append-system-prompt ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฏผ๊ฐํ•œ ํŒŒ์ผ ์ œ์™ธ

API ํ‚ค, ๋น„๋ฐ€ ๋ฐ ํ™˜๊ฒฝ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์—์„œ Claude Code๊ฐ€ ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด .claude/settings.json ํŒŒ์ผ์—์„œ permissions.deny ์„ค์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Read(./build)"
    ]
  }
}

์ด๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ignorePatterns ๊ตฌ์„ฑ์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ํŒŒ์ผ์€ ํŒŒ์ผ ๊ฒ€์ƒ‰ ๋ฐ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ ์ œ์™ธ๋˜๋ฉฐ ์ด๋Ÿฌํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฝ๊ธฐ ์ž‘์—…์ด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.

Subagent ๊ตฌ์„ฑ

Claude Code๋Š” ์‚ฌ์šฉ์ž ๋ฐ ํ”„๋กœ์ ํŠธ ์ˆ˜์ค€ ๋ชจ๋‘์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ AI subagents๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ subagents๋Š” YAML frontmatter๊ฐ€ ์žˆ๋Š” Markdown ํŒŒ์ผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž subagents: ~/.claude/agents/ - ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ํ”„๋กœ์ ํŠธ subagents: .claude/agents/ - ํ”„๋กœ์ ํŠธ์— ํŠน์ •์ด๋ฉฐ ํŒ€๊ณผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Œ

Subagent ํŒŒ์ผ์€ ์‚ฌ์šฉ์ž ์ •์˜ ํ”„๋กฌํ”„ํŠธ ๋ฐ ๋„๊ตฌ ๊ถŒํ•œ์ด ์žˆ๋Š” ํŠนํ™”๋œ AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. subagents ๋ฌธ์„œ์—์„œ subagents ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ตฌ์„ฑ

Claude Code๋Š” skills, agents, hooks ๋ฐ MCP servers๋กœ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋˜๋ฉฐ ์‚ฌ์šฉ์ž ๋ฐ ์ €์žฅ์†Œ ์ˆ˜์ค€ ๋ชจ๋‘์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •

settings.json์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ด€๋ จ ์„ค์ •:

{
  "enabledPlugins": {
    "formatter@acme-tools": true,
    "deployer@acme-tools": true,
    "analyzer@security-plugins": false
  },
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    }
  }
}

`enabledPlugins`

์–ด๋–ค ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ™œ์„ฑํ™”๋˜๋Š”์ง€ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํ˜•์‹: "plugin-name@marketplace-name": true/false. ์–ด๋–ค ๋ฒ”์œ„์—์„œ๋„ ํ•ญ๋ชฉ์ด ์—†๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ•ด๋‹น defaultEnabled ๊ฐ’์œผ๋กœ ํด๋ฐฑ๋ฉ๋‹ˆ๋‹ค.

๋ฒ”์œ„:

  • ์‚ฌ์šฉ์ž ์„ค์ • (~/.claude/settings.json): ๊ฐœ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •
  • ํ”„๋กœ์ ํŠธ ์„ค์ • (.claude/settings.json): ํŒ€๊ณผ ๊ณต์œ ๋˜๋Š” ํ”„๋กœ์ ํŠธ ํŠน์ • ํ”Œ๋Ÿฌ๊ทธ์ธ
  • Local ์„ค์ • (.claude/settings.local.json): ๋จธ์‹ ๋ณ„ ์žฌ์ •์˜, Claude Code๊ฐ€ ์ƒ์„ฑํ•  ๋•Œ gitignored๋จ
  • Managed ์„ค์ • (managed-settings.json): ๋ชจ๋“  ๋ฒ”์œ„์—์„œ ์„ค์น˜๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ˆจ๊ธฐ๋Š” ์กฐ์ง ์ „์ฒด ์ •์ฑ… ์žฌ์ •์˜

์˜ˆ์ œ:

{
  "enabledPlugins": {
    "code-formatter@team-tools": true,
    "deployment-tools@team-tools": true,
    "experimental-features@personal": false
  }
}

`extraKnownMarketplaces`

์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์•ผ ํ•  ์ถ”๊ฐ€ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํŒ€ ๋ฉค๋ฒ„๊ฐ€ ํ•„์š”ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์ €์žฅ์†Œ ์ˆ˜์ค€ ์„ค์ •์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ €์žฅ์†Œ์— extraKnownMarketplaces๊ฐ€ ํฌํ•จ๋˜๋ฉด:

  1. ํŒ€ ๋ฉค๋ฒ„๋Š” ํด๋”๋ฅผ ์‹ ๋ขฐํ•  ๋•Œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์„ค์น˜ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค
  2. ๊ทธ ๋‹ค์Œ ํŒ€ ๋ฉค๋ฒ„๋Š” ํ•ด๋‹น ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค
  3. ์‚ฌ์šฉ์ž๋Š” ์›ํ•˜์ง€ ์•Š๋Š” ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์‚ฌ์šฉ์ž ์„ค์ •์— ์ €์žฅ๋จ)
  4. ์„ค์น˜๋Š” ์‹ ๋ขฐ ๊ฒฝ๊ณ„๋ฅผ ์กด์ค‘ํ•˜๊ณ  ๋ช…์‹œ์  ๋™์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

์˜ˆ์ œ:

{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.example.com/security/plugins.git"
      }
    }
  }
}

๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์†Œ์Šค ์œ ํ˜•:

  • github: GitHub ์ €์žฅ์†Œ (repo ์‚ฌ์šฉ)
  • git: ๋ชจ๋“  git URL (url ์‚ฌ์šฉ)
  • directory: ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ (path ์‚ฌ์šฉ, ๊ฐœ๋ฐœ ์ „์šฉ)
  • hostPattern: ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ํ˜ธ์ŠคํŠธ์™€ ์ผ์น˜ํ•˜๋Š” ์ •๊ทœ์‹ ํŒจํ„ด (hostPattern ์‚ฌ์šฉ)
  • settings: ๋ณ„๋„์˜ ํ˜ธ์ŠคํŒ… ์ €์žฅ์†Œ ์—†์ด settings.json์— ์ง์ ‘ ์„ ์–ธ๋œ ์ธ๋ผ์ธ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค (name ๋ฐ plugins ์‚ฌ์šฉ)

git ์†Œ์Šค ์œ ํ˜•์€ ์ž์ฒด ํ˜ธ์ŠคํŒ… GitLab ๋ฐ Bitbucket์„ ํฌํ•จํ•œ ๋ชจ๋“  git ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Claude Code๋Š” ํ•ด๋‹น ๋จธ์‹ ์—์„œ git clone์ด ์‚ฌ์šฉํ•  ๊ฒƒ๊ณผ ๋™์ผํ•œ ์ธ์ฆ์œผ๋กœ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค: ๊ตฌ์„ฑ๋œ credential helpers, SSH ํ‚ค ๋˜๋Š” ํ˜ธ์ŠคํŠธ๋ณ„ ํ† ํฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜. ์„ค์ • ์„ธ๋ถ€ ์ •๋ณด๋Š” Private repositories๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

github ๋ฐ git ์†Œ์Šค์˜ ๊ฒฝ์šฐ source ๊ฐ์ฒด ๋‚ด๋ถ€ (repo ๋˜๋Š” url๊ณผ ํ•จ๊ป˜)์— "skipLfs": true๋ฅผ ์„ค์ •ํ•˜์—ฌ Claude Code๊ฐ€ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ๋•Œ Git LFS ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. LFS ํฌ์ธํ„ฐ ํŒŒ์ผ์€ ํ•ด๋‹น ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  ํฌ์ธํ„ฐ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์— ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฝ˜ํ…์ธ ์™€ ๋ฌด๊ด€ํ•œ ๋Œ€์šฉ๋Ÿ‰ LFS ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ ์ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. {/* min-version: 2.1.153 */}Claude Code v2.1.153 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ํ•ญ๋ชฉ์€ ์„ ํƒ์  autoUpdate Boolean๋„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. source์™€ ํ•จ๊ป˜ "autoUpdate": true๋ฅผ ์„ค์ •ํ•˜์—ฌ Claude Code๊ฐ€ ํ•ด๋‹น ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๊ณ  ์‹œ์ž‘ ์‹œ ์„ค์น˜๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ๊ณต์‹ Anthropic ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋Š” ๊ธฐ๋ณธ๊ฐ’์ด true์ด๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋Š” ๊ธฐ๋ณธ๊ฐ’์ด false์ž…๋‹ˆ๋‹ค. ์ž๋™ ์—…๋ฐ์ดํŠธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

source: 'settings'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŒ…๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ €์žฅ์†Œ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  ์ž‘์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ธํŠธ๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋‚˜์—ด๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ GitHub ๋˜๋Š” npm๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ enabledPlugins์—์„œ ๊ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋ณ„๋„๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

{
  "extraKnownMarketplaces": {
    "team-tools": {
      "source": {
        "source": "settings",
        "name": "team-tools",
        "plugins": [
          {
            "name": "code-formatter",
            "source": {
              "source": "github",
              "repo": "acme-corp/code-formatter"
            }
          }
        ]
      }
    }
  }
}

`strictKnownMarketplaces`

Managed ์„ค์ •๋งŒ: ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ managed ์„ค์ •์—์„œ๋งŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์†Œ์Šค์— ๋Œ€ํ•œ ์—„๊ฒฉํ•œ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Managed ์„ค์ • ํŒŒ์ผ ์œ„์น˜:

  • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
  • Linux ๋ฐ WSL: /etc/claude-code/managed-settings.json
  • Windows: C:\Program Files\ClaudeCode\managed-settings.json

์ฃผ์š” ํŠน์„ฑ:

  • Managed ์„ค์ • (managed-settings.json)์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์‚ฌ์šฉ์ž ๋˜๋Š” ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Œ (์ตœ๊ณ  ์šฐ์„ ์ˆœ์œ„)
  • ๋„คํŠธ์›Œํฌ/ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž‘์—… ์ „์— ์ ์šฉ๋จ (์ฐจ๋‹จ๋œ ์†Œ์Šค๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์Œ)
  • hostPattern ๋ฐ pathPattern์„ ์ œ์™ธํ•œ ์†Œ์Šค ์‚ฌ์–‘์— ๋Œ€ํ•ด ์ •ํ™•ํ•œ ์ผ์น˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. hostPattern ๋ฐ pathPattern์€ ์ •๊ทœ์‹ ์ผ์น˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

ํ—ˆ์šฉ ๋ชฉ๋ก ๋™์ž‘:

  • undefined (๊ธฐ๋ณธ๊ฐ’): ์ œํ•œ ์—†์Œ - ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋“  ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • ๋นˆ ๋ฐฐ์—ด []: ์™„์ „ ์ž ๊ธˆ - ์‚ฌ์šฉ์ž๋Š” ์ƒˆ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
  • ์†Œ์Šค ๋ชฉ๋ก: ์‚ฌ์šฉ์ž๋Š” ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋งŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์ง€์›๋˜๋Š” ๋ชจ๋“  ์†Œ์Šค ์œ ํ˜•:

ํ—ˆ์šฉ ๋ชฉ๋ก์€ ์—ฌ๋Ÿฌ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์†Œ์Šค ์œ ํ˜•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์†Œ์Šค๋Š” ์ •ํ™•ํ•œ ์ผ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด hostPattern ๋ฐ pathPattern์€ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ํ˜ธ์ŠคํŠธ ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ •๊ทœ์‹ ์ผ์น˜๋ฅผ ๊ฐ๊ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. GitHub ์ €์žฅ์†Œ:
{ "source": "github", "repo": "acme-corp/approved-plugins" }
{ "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" }
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }

ํ•„๋“œ: repo (ํ•„์ˆ˜), ref (์„ ํƒ: ๋ถ„๊ธฐ/ํƒœ๊ทธ/SHA), path (์„ ํƒ: ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ)

  1. Git ์ €์žฅ์†Œ:
{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git" }
{ "source": "git", "url": "https://bitbucket.org/acme-corp/plugins.git", "ref": "production" }
{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }

ํ•„๋“œ: url (ํ•„์ˆ˜), ref (์„ ํƒ: ๋ถ„๊ธฐ/ํƒœ๊ทธ/SHA), path (์„ ํƒ: ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ)

  1. URL ๊ธฐ๋ฐ˜ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค:
{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }
{ "source": "url", "url": "https://cdn.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }

ํ•„๋“œ: url (ํ•„์ˆ˜), headers (์„ ํƒ: ์ธ์ฆ๋œ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ HTTP ํ—ค๋”)

  1. NPM ํŒจํ‚ค์ง€:
{ "source": "npm", "package": "@acme-corp/claude-plugins" }
{ "source": "npm", "package": "@acme-corp/approved-marketplace" }

ํ•„๋“œ: package (ํ•„์ˆ˜, ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ํŒจํ‚ค์ง€ ์ง€์›)

  1. ํŒŒ์ผ ๊ฒฝ๋กœ:
{ "source": "file", "path": "/usr/local/share/claude/acme-marketplace.json" }
{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }

ํ•„๋“œ: path (ํ•„์ˆ˜: marketplace.json ํŒŒ์ผ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ)

  1. ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ:
{ "source": "directory", "path": "/usr/local/share/claude/acme-plugins" }
{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }

ํ•„๋“œ: path (ํ•„์ˆ˜: .claude-plugin/marketplace.json์„ ํฌํ•จํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ)

  1. ํ˜ธ์ŠคํŠธ ํŒจํ„ด ์ผ์น˜:
{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }
{ "source": "hostPattern", "hostPattern": "^gitlab\\.internal\\.example\\.com$" }

ํ•„๋“œ: hostPattern (ํ•„์ˆ˜: ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ํ˜ธ์ŠคํŠธ์™€ ์ผ์น˜ํ•˜๋Š” ์ •๊ทœ์‹ ํŒจํ„ด)

๊ฐ ์ €์žฅ์†Œ๋ฅผ ์—ด๊ฑฐํ•˜์ง€ ์•Š๊ณ  ํŠน์ • ํ˜ธ์ŠคํŠธ์˜ ๋ชจ๋“  ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ํ˜ธ์ŠคํŠธ ํŒจํ„ด ์ผ์น˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋‚ด๋ถ€ GitHub Enterprise ๋˜๋Š” GitLab ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์กฐ์ง์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์†Œ์Šค ์œ ํ˜•๋ณ„ ํ˜ธ์ŠคํŠธ ์ถ”์ถœ:

  • github: ํ•ญ์ƒ github.com์— ๋Œ€ํ•ด ์ผ์น˜
  • git: URL์—์„œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ์ถ”์ถœ (HTTPS ๋ฐ SSH ํ˜•์‹ ์ง€์›)
  • url: URL์—์„œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ์ถ”์ถœ
  • npm, file, directory: ํ˜ธ์ŠคํŠธ ํŒจํ„ด ์ผ์น˜์— ์ง€์›๋˜์ง€ ์•Š์Œ
  1. ๊ฒฝ๋กœ ํŒจํ„ด ์ผ์น˜:
{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }
{ "source": "pathPattern", "pathPattern": ".*" }

ํ•„๋“œ: pathPattern (ํ•„์ˆ˜: file ๋ฐ directory ์†Œ์Šค์˜ path ํ•„๋“œ์™€ ์ผ์น˜ํ•˜๋Š” ์ •๊ทœ์‹ ํŒจํ„ด)

๋„คํŠธ์›Œํฌ ์†Œ์Šค์— ๋Œ€ํ•œ hostPattern ์ œํ•œ๊ณผ ํ•จ๊ป˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ๊ฒฝ๋กœ ํŒจํ„ด ์ผ์น˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋กœ์ปฌ ๊ฒฝ๋กœ๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ".*"๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ œํ•œํ•˜๋ ค๋ฉด ๋” ์ข์€ ํŒจํ„ด์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์˜ˆ์ œ:

์˜ˆ์ œ: ํŠน์ • ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋งŒ ํ—ˆ์šฉ:

{
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "acme-corp/approved-plugins"
    },
    {
      "source": "github",
      "repo": "acme-corp/security-tools",
      "ref": "v2.0"
    },
    {
      "source": "url",
      "url": "https://plugins.example.com/marketplace.json"
    },
    {
      "source": "npm",
      "package": "@acme-corp/compliance-plugins"
    }
  ]
}

์˜ˆ์ œ - ๋ชจ๋“  ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ถ”๊ฐ€ ๋น„ํ™œ์„ฑํ™”:

{
  "strictKnownMarketplaces": []
}

์˜ˆ์ œ: ๋‚ด๋ถ€ git ์„œ๋ฒ„์˜ ๋ชจ๋“  ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ํ—ˆ์šฉ:

{
  "strictKnownMarketplaces": [
    {
      "source": "hostPattern",
      "hostPattern": "^github\\.example\\.com$"
    }
  ]
}

์ •ํ™•ํ•œ ์ผ์น˜ ์š”๊ตฌ ์‚ฌํ•ญ:

๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์†Œ์Šค๋Š” ์‚ฌ์šฉ์ž์˜ ์ถ”๊ฐ€๊ฐ€ ํ—ˆ์šฉ๋˜๋ ค๋ฉด ์ •ํ™•ํžˆ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. git ๊ธฐ๋ฐ˜ ์†Œ์Šค (github ๋ฐ git)์˜ ๊ฒฝ์šฐ ์ด๋Š” ๋ชจ๋“  ์„ ํƒ์  ํ•„๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

  • repo ๋˜๋Š” url์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
  • ref ํ•„๋“œ๊ฐ€ ์ •ํ™•ํžˆ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (๋˜๋Š” ๋‘˜ ๋‹ค ์ •์˜๋˜์ง€ ์•Š์Œ)
  • path ํ•„๋“œ๊ฐ€ ์ •ํ™•ํžˆ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (๋˜๋Š” ๋‘˜ ๋‹ค ์ •์˜๋˜์ง€ ์•Š์Œ)

์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์†Œ์Šค์˜ ์˜ˆ:

// ์ด๋“ค์€ ๋‹ค๋ฅธ ์†Œ์Šค์ž…๋‹ˆ๋‹ค:
{ "source": "github", "repo": "acme-corp/plugins" }
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main" }

// ์ด๊ฒƒ๋„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค:
{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }
{ "source": "github", "repo": "acme-corp/plugins" }

extraKnownMarketplaces์™€์˜ ๋น„๊ต:

์ธก๋ฉด strictKnownMarketplaces extraKnownMarketplaces
๋ชฉ์  ์กฐ์ง ์ •์ฑ… ์ ์šฉ ํŒ€ ํŽธ์˜
์„ค์ • ํŒŒ์ผ managed-settings.json๋งŒ ๋ชจ๋“  ์„ค์ • ํŒŒ์ผ
๋™์ž‘ ํ—ˆ์šฉ ๋ชฉ๋ก์— ์—†๋Š” ์ถ”๊ฐ€ ์ฐจ๋‹จ ๋ˆ„๋ฝ๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ž๋™ ์„ค์น˜
์ ์šฉ ์‹œ๊ธฐ ๋„คํŠธ์›Œํฌ/ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž‘์—… ์ „ ์‚ฌ์šฉ์ž ์‹ ๋ขฐ ํ”„๋กฌํ”„ํŠธ ํ›„
์žฌ์ •์˜ ๊ฐ€๋Šฅ ์•„๋‹ˆ์˜ค (์ตœ๊ณ  ์šฐ์„ ์ˆœ์œ„) ์˜ˆ (๋†’์€ ์šฐ์„ ์ˆœ์œ„ ์„ค์ •์œผ๋กœ)
์†Œ์Šค ํ˜•์‹ ์ง์ ‘ ์†Œ์Šค ๊ฐ์ฒด ์ค‘์ฒฉ๋œ ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ๋ช…๋ช…๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค
์‚ฌ์šฉ ์‚ฌ๋ก€ ๊ทœ์ • ์ค€์ˆ˜, ๋ณด์•ˆ ์ œํ•œ ์˜จ๋ณด๋”ฉ, ํ‘œ์ค€ํ™”

ํ˜•์‹ ์ฐจ์ด:

strictKnownMarketplaces๋Š” ์ง์ ‘ ์†Œ์Šค ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/plugins" }
  ]
}

extraKnownMarketplaces๋Š” ๋ช…๋ช…๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "github", "repo": "acme-corp/plugins" }
    }
  }
}

ํ•จ๊ป˜ ์‚ฌ์šฉ:

strictKnownMarketplaces๋Š” ์ •์ฑ… ๊ฒŒ์ดํŠธ์ž…๋‹ˆ๋‹ค: ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ œ์–ดํ•˜์ง€๋งŒ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ๋“ฑ๋กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์ œํ•œํ•˜๊ณ  ์‚ฌ์ „ ๋“ฑ๋กํ•˜๋ ค๋ฉด managed-settings.json์—์„œ ๋‘˜ ๋‹ค ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/plugins" }
  ],
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "github", "repo": "acme-corp/plugins" }
    }
  }
}

strictKnownMarketplaces๋งŒ ์„ค์ •๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ์—ฌ์ „ํžˆ /plugin marketplace add๋ฅผ ํ†ตํ•ด ํ—ˆ์šฉ๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ž๋™์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ค‘์š” ์ฐธ๊ณ  ์‚ฌํ•ญ:

  • ์ œํ•œ์€ ๋„คํŠธ์›Œํฌ ์š”์ฒญ ๋˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž‘์—… ์ „์— ํ™•์ธ๋ฉ๋‹ˆ๋‹ค
  • ์ฐจ๋‹จ๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ์†Œ์Šค๊ฐ€ managed ์ •์ฑ…์œผ๋กœ ์ฐจ๋‹จ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ช…ํ™•ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ด…๋‹ˆ๋‹ค
  • ์ œํ•œ์€ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ถ”๊ฐ€ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜, ์—…๋ฐ์ดํŠธ, ์ƒˆ๋กœ๊ณ ์นจ ๋ฐ ์ž๋™ ์—…๋ฐ์ดํŠธ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ •์ฑ…์ด ์„ค์ •๋˜๊ธฐ ์ „์— ์ถ”๊ฐ€๋œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋Š” ํ•ด๋‹น ์†Œ์Šค๊ฐ€ ๋” ์ด์ƒ ํ—ˆ์šฉ ๋ชฉ๋ก๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
  • Managed ์„ค์ •์€ ์ตœ๊ณ  ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋ฉฐ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

์‚ฌ์šฉ์ž ๋Œ€๋ฉด ๋ฌธ์„œ๋Š” Managed ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

`strictPluginOnlyCustomization`

Managed ์„ค์ •๋งŒ: skills, agents, hooks ๋ฐ MCP servers๊ฐ€ ์‚ฌ์šฉ์ž ๋ฐ ํ”„๋กœ์ ํŠธ ์†Œ์Šค์—์„œ ๋กœ๋“œ๋˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜๋ฏ€๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” managed ์„ค์ •์—์„œ๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. strictKnownMarketplaces์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์ „์ฒด ์‚ฌ์šฉ์ž ์ •์˜ ๊ณต๊ธ‰ ์ฒด์ธ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค: ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ํ—ˆ์šฉ ๋ชฉ๋ก์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ์–ดํ•˜๊ณ  ์ด ์„ค์ •์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” managed ์„ค์ •์—์„œ ์˜ค์ง€ ์•Š๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์€ ๋ชจ๋“  4๊ฐœ ํ‘œ๋ฉด์„ ์ž ๊ทธ๋ ค๋ฉด true์ด๊ฑฐ๋‚˜ ์ž ๊ธ€ ํ‘œ๋ฉด์„ ๋ช…๋ช…ํ•˜๋Š” ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค:

{
  "strictPluginOnlyCustomization": ["skills", "hooks"]
}

๊ฐ ์ž ๊ธด ํ‘œ๋ฉด์— ๋Œ€ํ•ด Claude Code๋Š” ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ๋ฐ ํ”„๋กœ์ ํŠธ ์ˆ˜์ค€ ์†Œ์Šค๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ๊ณต ๋ฐ managed ์†Œ์Šค๋งŒ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค:

ํ‘œ๋ฉด ์ž ๊ธˆ ์‹œ ์ฐจ๋‹จ๋จ ์—ฌ์ „ํžˆ ๋กœ๋“œ๋จ
skills ~/.claude/skills/, .claude/skills/ ํ”Œ๋Ÿฌ๊ทธ์ธ skills, ๋ฒˆ๋“ค๋œ skills, managed ์ •์ฑ… ๋””๋ ‰ํ† ๋ฆฌ์˜ skills
agents ~/.claude/agents/, .claude/agents/ ํ”Œ๋Ÿฌ๊ทธ์ธ agents, ๊ธฐ๋ณธ ์ œ๊ณต agents, managed ์ •์ฑ… ๋””๋ ‰ํ† ๋ฆฌ์˜ agents
hooks ์‚ฌ์šฉ์ž, ํ”„๋กœ์ ํŠธ ๋ฐ local settings.json์˜ hooks ํ”Œ๋Ÿฌ๊ทธ์ธ hooks, managed ์„ค์ •์˜ hooks
mcp ~/.claude.json ๋ฐ .mcp.json์˜ ์„œ๋ฒ„ ํ”Œ๋Ÿฌ๊ทธ์ธ MCP servers, managed-mcp.json servers

Claude Code ๋ฒ„์ „์ด ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํ‘œ๋ฉด ์ด๋ฆ„์€ ์„ค์ • ํŒŒ์ผ์„ ์‹คํŒจ์‹œํ‚ค์ง€ ์•Š๊ณ  ๋ฌด์‹œ๋˜๋ฏ€๋กœ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๊ธฐ ์ „์— ์ƒˆ ํ‘œ๋ฉด ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ด€๋ฆฌ

/plugin ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋Œ€ํ™”ํ˜•์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค:

  • ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฐพ์•„๋ณด๊ธฐ
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜/์ œ๊ฑฐ
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ธ๋ถ€ ์ •๋ณด ๋ณด๊ธฐ (์ œ๊ณต๋˜๋Š” skills, agents, hooks)
  • ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ถ”๊ฐ€/์ œ๊ฑฐ

ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฌธ์„œ์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ค์ • ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜์ง€ ์•Š๊ณ  Claude Code ๋™์ž‘์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ณ€์ˆ˜๋Š” settings.json์˜ env ํ‚ค ์•„๋ž˜์—์„œ ๊ตฌ์„ฑํ•˜์—ฌ ๋ชจ๋“  ์„ธ์…˜์— ์ ์šฉํ•˜๊ฑฐ๋‚˜ ํŒ€์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ๋ชฉ๋ก์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Claude๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ

Claude Code๋Š” ํŒŒ์ผ ์ฝ๊ธฐ, ํŽธ์ง‘, ๊ฒ€์ƒ‰, ๋ช…๋ น ์‹คํ–‰ ๋ฐ subagents ์กฐ์œจ์„ ์œ„ํ•œ ๋„๊ตฌ ์„ธํŠธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„๊ตฌ ์ด๋ฆ„์€ ๊ถŒํ•œ ๊ทœ์น™ ๋ฐ hook ๋งค์ฒ˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ •ํ™•ํ•œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

์ „์ฒด ๋ชฉ๋ก ๋ฐ Bash ๋„๊ตฌ ๋™์ž‘ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ๋„๊ตฌ ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ  ํ•ญ๋ชฉ