Claude Code๋ฅผ ๊ทธ๋ƒฅ ์‹คํ–‰ํ•˜๋Š” ๋‹จ๊ณ„์™€, CCR(Claude Code Router) + GLM Coding Plan + zsh alias๊นŒ์ง€ ๋ฌถ์–ด ๋‘๋Š” ๋‹จ๊ณ„๋Š” ์ฒด๊ฐ์ด ๊ฝค ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ „์ž๋Š” โ€œ๊ทธ๋•Œ๊ทธ๋•Œ ๋“ค์–ด๊ฐ€์„œ ์“ฐ๋Š” ๋„๊ตฌโ€์— ๊ฐ€๊น๊ณ , ํ›„์ž๋Š” ์ƒˆ ํ„ฐ๋ฏธ๋„์„ ์—ด๋ฉด ๋ฐ”๋กœ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๊ฐ€ ๋ถ™๋Š” ์ž‘์—… ํ™˜๊ฒฝ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ์—ฌ๋Ÿฌ ๋ชจ๋ธ์„ ๋ฐ”๊ฟ” ๋ผ์šธ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ฑฐ๋‚˜, ํ‰์†Œ์—๋Š” claude์ฒ˜๋Ÿผ ์ต์ˆ™ํ•˜๊ฒŒ ์“ฐ๋˜ ์‹ค์ œ ๋ฐฑ์—”๋“œ๋Š” GLM ๊ณ„์—ด๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด CCR์„ ํ•œ ๋ฒˆ ๊ปด ๋‘๋Š” ํŽธ์ด ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค. Z.AI ๋ฌธ์„œ์—๋Š” Claude Code์— GLM Coding Plan์„ ์ง์ ‘ ๋ถ™์ด๋Š” ๊ณต์‹ ๊ฒฝ๋กœ๋„ ์žˆ๊ณ , CCR README๋Š” ๋กœ์ปฌ ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด claude ๋ช…๋ น ์ž์ฒด๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋ธ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฌธ์„œ๋ฅผ ๊ฐ™์ด ๋ณด๋ฉด, ์„ค์น˜๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ํ•˜๊ณ  ๋‚˜์ค‘ ํ™•์žฅ์€ ์—ด์–ด ๋‘๋Š” ๊ตฌ์„ฑ์ด ๊ฐ€์žฅ ๋œ ํ”๋“ค๋ฆฝ๋‹ˆ๋‹ค.

flowchart LR
A[Claude Code ์„ค์น˜] --> B[CCR ์„ค์น˜]
B --> C[Z.AI API Key ๋ฐœ๊ธ‰]
C --> D[CCR config์— GLM-5.1 ์—ฐ๊ฒฐ]
D --> E[.zshrc์— activate + alias ์ถ”๊ฐ€]
E --> F[ccr start]
F --> G[์ƒˆ ํ„ฐ๋ฏธ๋„์—์„œ cc ์‹คํ–‰]

๐Ÿง  ์น ํŒ ์น˜ํŠธ์‹œํŠธ

  • Claude Code์™€ CCR์€ ๊ฐ™์ด npm ์ „์—ญ ์„ค์น˜ํ•˜๋ฉด ๊ด€๋ฆฌ๊ฐ€ ํŽธํ•˜๋‹ค.
  • GLM Coding Plan์€ API Key๋ฅผ ๋งŒ๋“  ๋’ค CCR provider์— ์—ฐ๊ฒฐํ•˜๋ฉด ๋œ๋‹ค.
  • eval "$(ccr activate)"๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ claude ๋ช…๋ น์ด ๋กœ์ปฌ ๋ผ์šฐํ„ฐ๋ฅผ ํƒ„๋‹ค.
  • alias cc='claude --dangerously-skip-permissions'๋ฅผ ๋„ฃ์œผ๋ฉด ์†๊ฐ€๋ฝ ์Šต๊ด€๊นŒ์ง€ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹จ, --dangerously-skip-permissions๋Š” ์‹ ๋ขฐํ•˜๋Š” ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ๋งŒ ์“ฐ๋Š” ๊ฒŒ ์•ˆ์ „ํ•˜๋‹ค.

์™œ direct ์„ค์ • ๋Œ€์‹  CCR์„ ๊ฐ™์ด ์“ฐ๋Š”๊ฐ€

Z.AI ๊ณต์‹ ๋ฌธ์„œ๋งŒ ๋”ฐ๋ผ๊ฐ€๋ฉด ~/.claude/settings.json์— ANTHROPIC_AUTH_TOKEN, ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic๋ฅผ ๋„ฃ๋Š” direct ๊ฒฝ๋กœ๊ฐ€ ๊ฐ€์žฅ ์งง์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ **โ€œ๋‚˜๋Š” GLM๋งŒ ๋ฐ”๋กœ ๋ถ™์œผ๋ฉด ๋โ€**์ธ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์ด ๊ฒฝ๋กœ๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฆ…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์‹ค๋ฌด์—์„œ๋Š” ์กฐ๊ธˆ๋งŒ ์ง€๋‚˜๋„ ์š”๊ตฌ๊ฐ€ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ํ‰์†Œ ๊ธฐ๋ณธ ๋ชจ๋ธ์€ ํ•˜๋‚˜๋กœ ์“ฐ๋˜, ๊ธด ๋ฌธ๋งฅ ์ž‘์—…์€ ๋‹ค๋ฅธ ๋ชจ๋ธ๋กœ ๋ณด๋‚ด๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๊ณ , background ์ž‘์—…๋งŒ ๋” ์‹ผ ๋ชจ๋ธ๋กœ ๋Œ๋ฆฌ๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์—ฌ๊ธฐ์„œ CCR์ด ํŽธํ•ฉ๋‹ˆ๋‹ค. CCR์€ provider์™€ router๋ฅผ ๋‚˜๋ˆ  ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์˜ค๋Š˜์€ GLM-5.1๋งŒ ๋ถ™์—ฌ ๋‘๊ณ  ๋‚˜์ค‘์— ๋‹ค๋ฅธ provider๋ฅผ ๋ง๋Œ€๋„ claude ์Šต๊ด€์„ ๋ฐ”๊ฟ€ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ˜„์žฅํ˜•์œผ๋กœ ๋ณด๋ฉด ์ฐจ์ด๋Š” ๋” ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • Before: Claude Code๋Š” ๋ถ™์˜€๋Š”๋ฐ, ๋ชจ๋ธ์„ ๋ฐ”๊พธ๋ ค๋ฉด ์„ค์ • ํŒŒ์ผ์„ ๋‹ค์‹œ ์—ด๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ๋งŒ์ ธ์•ผ ํ•œ๋‹ค.
  • After: ccr model ๋˜๋Š” config.json๋งŒ ์กฐ์ •ํ•ด์„œ ๊ธฐ๋ณธ/think/background ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๊พผ๋‹ค.

๋˜ ํ•˜๋‚˜๋Š” ํŒ€ ์ „๋‹ฌ์„ฑ์ž…๋‹ˆ๋‹ค. ~/.claude/settings.json์€ ๊ฐœ์ธ ์„ค์ •์œผ๋กœ ๋๋‚˜๊ธฐ ์‰ฝ์ง€๋งŒ, CCR์˜ config.json์€ โ€œ์šฐ๋ฆฌ ํŒ€์€ ๊ธฐ๋ณธ์€ ์ด ๋ชจ๋ธ, ๊ธด ๋ฌธ๋งฅ์€ ์ด ๋ชจ๋ธโ€์ฒ˜๋Ÿผ ์šด์˜ ์ •์ฑ…์„ ๋ฌธ์„œํ™”ํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

1) Claude Code๋ถ€ํ„ฐ ์„ค์น˜ํ•œ๋‹ค

Anthropic ๊ณต์‹ ๋ฌธ์„œ ๊ธฐ์ค€์œผ๋กœ Claude Code๋Š” ํ„ฐ๋ฏธ๋„์—์„œ ์“ฐ๋Š” ์—์ด์ „ํŠธํ˜• ์ฝ”๋”ฉ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ฝ๊ณ , ํŒŒ์ผ์„ ๋ฐ”๊พธ๊ณ , ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ , ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

Anthropic์€ macOS/Linux์—์„œ native install๋„ ๊ถŒ์žฅํ•˜์ง€๋งŒ, ์ด๋ฒˆ ๊ตฌ์„ฑ์€ CCR๋„ ๊ฐ™์ด npm ์ „์—ญ ์„ค์น˜ํ•  ์˜ˆ์ •์ด๋ผ ๋‘˜ ๋‹ค ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ํŽธ์ด ๊ด€๋ฆฌ๊ฐ€ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

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

์—ฌ๊ธฐ์„œ claude --version์ด ์ •์ƒ์œผ๋กœ ๋œจ๋ฉด ์ฒซ ๊ด€๋ฌธ์€ ํ†ต๊ณผ์ž…๋‹ˆ๋‹ค.

์ž‘์€ ์‹คํŒจ ์‚ฌ๋ก€๋„ ๋งŽ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. Node ๋ฒ„์ „์ด ๋„ˆ๋ฌด ๋‚ฎ๊ฑฐ๋‚˜, ์˜ˆ์ „ ๊ธ€๋กœ๋ฒŒ ํŒจํ‚ค์ง€ ์บ์‹œ๊ฐ€ ๊ผฌ์—ฌ ์žˆ์œผ๋ฉด ์„ค์น˜๋Š” ๋๋Š”๋ฐ claude: command not found๊ฐ€ ๋œฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๋•Œ๋Š” Claude Code๋ฅผ ์˜์‹ฌํ•˜๊ธฐ๋ณด๋‹ค ํ˜„์žฌ ์…ธ์˜ npm global bin ๊ฒฝ๋กœ๊ฐ€ PATH์— ์žกํ˜€ ์žˆ๋Š”์ง€๋ถ€ํ„ฐ ๋ณด๋Š” ํŽธ์ด ๋น ๋ฆ…๋‹ˆ๋‹ค.

2) CCR(Claude Code Router)์„ ์„ค์น˜ํ•œ๋‹ค

CCR์˜ ํ•ต์‹ฌ์€ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค. Claude Code๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฒ„๋ฆฌ์ง€ ์•Š๊ณ , ๊ทธ ์•ž์— ๋ชจ๋ธ ๋ผ์šฐํ„ฐ๋ฅผ ํ•˜๋‚˜ ๋‘๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. README ๊ธฐ์ค€์œผ๋กœ ccr code, ccr model, ccr activate ๊ฐ™์€ ๋ช…๋ น์ด ์ œ๊ณต๋˜๊ณ , ํŠนํžˆ ccr activate๋Š” ํ˜„์žฌ ์…ธ์—์„œ claude ๋ช…๋ น์ด ์ž๋™์œผ๋กœ ๋กœ์ปฌ ๋ผ์šฐํ„ฐ๋ฅผ ํƒ€๊ฒŒ ๋งŒ๋“œ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜๋Š” ํ•œ ์ค„์ž…๋‹ˆ๋‹ค.

npm install -g @musistudio/claude-code-router
ccr --help

์—ฌ๊ธฐ์„œ ccr --help๊ฐ€ ๋œจ๋ฉด ์„ค์น˜๋Š” ๋์ž…๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—๋Š” ์•„์ง GLM์ด ์—ฐ๊ฒฐ๋œ ๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ธธ๋งŒ ๋งŒ๋“  ์ƒํƒœ๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

3) GLM Coding Plan์„ ์ค€๋น„ํ•œ๋‹ค

Z.AI ๋ฌธ์„œ ๊ธฐ์ค€์œผ๋กœ Claude Code์— GLM Coding Plan์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€ ๊ฒฐ๋กœ ์ฝํž™๋‹ˆ๋‹ค.

  1. Claude Code์— ์ง์ ‘ Z.AI์˜ Anthropic-compatible endpoint๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณต์‹ ๊ฒฝ๋กœ
  2. ๋‹ค๋ฅธ ๋„๊ตฌ์—์„œ๋„ ์žฌํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ API Key๋ฅผ ๋งŒ๋“ค๊ณ  ๋ผ์šฐํ„ฐ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ๋กœ

์ด๋ฒˆ ๊ธ€์€ ๋‘ ๋ฒˆ์งธ ๊ฒฝ๋กœ๋ฅผ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. CCR๊ณผ ๊ฐ™์ด ์“ธ ๋•Œ๋Š” provider๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํŽธ์ด ๋‚˜์ค‘์— ์•ˆ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋จผ์ € Z.AI์—์„œ ํ•ด์•ผ ํ•  ์ผ์€ ์„ธ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  • GLM Coding Plan ๊ตฌ๋… ์ƒํƒœ ํ™•์ธ
  • API Key ๋ฐœ๊ธ‰
  • ๋‚ด ํ”Œ๋žœ์—์„œ GLM-5.1 ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ํ™•์ธ

์ค‘์š”ํ•œ ์ ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. Z.AI GLM-5.1 ๋ฌธ์„œ์—๋Š” GLM-5.1 access is currently available for GLM Coding Plan Pro and Max๋ผ๊ณ  ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ”Œ๋žœ์— ๋”ฐ๋ผ ๊ธฐ๋ณธ ๋งคํ•‘์ด GLM-4.7๋กœ ๋‚จ์•„ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์„ค์ • ์ „์— ๋จผ์ € ํ™•์ธํ•  ์งˆ๋ฌธ์€ ์ด๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ๋‚˜๋Š” Pro/Max ํ”Œ๋žœ์ธ๊ฐ€?
  • ์•„๋‹ˆ๋ฉด ํ˜„์žฌ ๊ณ„์ •์—์„œ glm-5.1 ๋Œ€์‹  glm-4.7 ๋˜๋Š” glm-5-turbo๋งŒ ๋ณด์ด๋Š”๊ฐ€?

์ด๊ฑธ ๋จผ์ € ํ™•์ธํ•ด ๋‘๋ฉด, ์„ค์ •์€ ํ–ˆ๋Š”๋ฐ ์™œ ๊ธฐ๋Œ€ํ•œ ๋ชจ๋ธ์ด ์•ˆ ๋ถ™๋Š”์ง€ ํ—ค๋งค๋Š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4) CCR config์— GLM-5.1๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค

CCR README๋Š” provider๋งˆ๋‹ค api_base_url, api_key, models, Router๋ฅผ ๋„ฃ๋Š” ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Z.AI๋Š” Chat Completion API์™€ function calling ๋ฌธ์„œ๋ฅผ ๊ณต๊ฐœํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, CCR์—์„œ๋Š” Z.AI Chat Completions endpoint๋ฅผ provider๋กœ ๋‘๊ณ  ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ์‹์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ~/.claude-code-router/config.json์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

{
  "API_TIMEOUT_MS": 3000000,
  "Providers": [
    {
      "name": "zai",
      "api_base_url": "https://api.z.ai/api/paas/v4/chat/completions",
      "api_key": "$ZAI_API_KEY",
      "models": ["glm-5.1", "glm-5.1"]
    }
  ],
  "Router": {
    "default": "zai,glm-5.1",
    "think": "zai,glm-5.1",
    "background": "zai,glm-5.1",
    "longContext": "zai,glm-5.1",
    "longContextThreshold": 60000
  }
}

์ด ๊ตฌ์„ฑ์ด ์ข‹์€ ์ด์œ ๋Š” ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

  • ํ‰์†Œ ์ž‘์—…์€ glm-5.1
  • ๋ฐฑ๊ทธ๋ผ์šด๋“œ์„ฑ ์ž‘์—…์€ glm-5-turbo
  • ๊ธด ๋ฌธ๋งฅ๋„ ์ผ๋‹จ glm-5.1๋กœ ์œ ์ง€

์ฆ‰, ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ณต์žกํ•˜๊ฒŒ ์ชผ๊ฐœ๊ธฐ๋ณด๋‹ค ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ํ๋ฆ„๋งŒ ๋จผ์ € ๋‚˜๋ˆ„๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ ์‹ค๋ฌด ๋ฏธ๋‹ˆ ์‚ฌ๋ก€๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

  • ์ž‘๊ฒŒ ์‹œ์ž‘ํ•œ ๊ฒฝ์šฐ: default์™€ background๋งŒ ๋‚˜๋ˆ  ๋‘๊ณ  ํ•œ ์ฃผ ์จ๋ณธ๋‹ค. ์ฒด๊ฐ ์ฐจ์ด๊ฐ€ ์ƒ๊ธฐ๋ฉด think/longContext๋ฅผ ์กฐ์ •ํ•œ๋‹ค.
  • ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค ์ชผ๊ฐ  ๊ฒฝ์šฐ: ๋‚˜์ค‘์— ์–ด๋А ๋ผ์šฐํŠธ๊ฐ€ ์™œ ๊ทธ ๋ชจ๋ธ์ธ์ง€ ๊ธฐ์–ต์ด ์•ˆ ๋‚˜๊ณ , ์ด์ƒ ๋™์ž‘์ด ๋‚˜์™€๋„ ์›์ธ ์ถ”์ ์ด ๊ธธ์–ด์ง„๋‹ค.

๋งŒ์•ฝ ๋‚ด ํ”Œ๋žœ์ด ์•„์ง glm-5.1๋ฅผ ๋ชป ์“ฐ๋Š” ์ƒํƒœ๋ผ๋ฉด, ์—ฌ๊ธฐ์„œ ๋ชจ๋ธ ์ด๋ฆ„๋งŒ glm-4.7 ๋˜๋Š” ๊ณ„์ •์—์„œ ํ—ˆ์šฉ๋œ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฑด ๊ตฌ์กฐ๋ฅผ ๋จผ์ € ์•ˆ์ •ํ™”ํ•˜๋Š” ๊ฒƒ์ด์ง€, ์ฒซ๋‚ ๋ถ€ํ„ฐ ์ตœ๊ณ  ์‚ฌ์–‘ ์ด๋ฆ„์„ ๋ฐ•์•„ ๋„ฃ๋Š” ๊ฒŒ ์•„๋‹™๋‹ˆ๋‹ค.

5) .zshrc์— ์ž๋™ ์—ฐ๊ฒฐ๊ณผ alias๋ฅผ ๋„ฃ๋Š”๋‹ค

์ด์ œ ์‚ฌ์šฉ๊ฐ์ด ๊ฐˆ๋ฆฌ๋Š” ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค. CCR README๋Š” eval "$(ccr activate)"๋ฅผ ํ˜„์žฌ ์…ธ์— ์ ์šฉํ•˜๋ฉด, ์ดํ›„ claude ๋ช…๋ น์ด ๋กœ์ปฌ ๋ผ์šฐํ„ฐ๋ฅผ ํƒ€๋„๋ก ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ธํŒ…ํ•œ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ ์Šต๊ด€์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋’ค์ชฝ ๋ฐฐ์„ ๋งŒ ๋ฐ”๊พธ๋Š” ์…ˆ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋˜์šฐ๊ฐ€ ์›ํ•˜๋Š” alias๊นŒ์ง€ ๋„ฃ์œผ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฉ๋‹ˆ๋‹ค.

export ZAI_API_KEY="์—ฌ๊ธฐ์—_๋ฐœ๊ธ‰ํ•œ_API_KEY"
 
if command -v ccr >/dev/null 2>&1; then
  eval "$(ccr activate)"
fi
 
alias cc='claude --dangerously-skip-permissions'

์ด ๋ธ”๋ก์„ ~/.zshrc์— ๋„ฃ๊ณ  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

source ~/.zshrc

์ด์ œ ์ƒˆ ํ„ฐ๋ฏธ๋„ ๊ธฐ์ค€์œผ๋กœ๋Š” ํ๋ฆ„์ด ์ด๋ ‡๊ฒŒ ๋ฐ”๋€๋‹ˆ๋‹ค.

  • claude โ†’ CCR์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ๋กœ๋ฅผ ํƒ„๋‹ค
  • cc โ†’ claude --dangerously-skip-permissions๋กœ ์‹คํ–‰๋œ๋‹ค

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

์‹ค์ „์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋‚˜๋ˆ„๋Š” ํŽธ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์„ฑ๊ณต ์‚ฌ๋ก€: ์ƒ˜ํ”Œ ์•ฑ, ๊ฐœ์ธ ์‹คํ—˜ repo, throwaway ๋ธŒ๋žœ์น˜์—์„œ๋Š” cc๋ฅผ ์จ์„œ ์†๋„๋ฅผ ๋†’์ธ๋‹ค.
  • ์‹คํŒจ ์‚ฌ๋ก€: ํ”„๋กœ๋•์…˜ ์ธํ”„๋ผ ํด๋”๋‚˜ ๊ฐœ์ธ ๋ฌธ์„œ๊ฐ€ ์„ž์ธ ์ž‘์—…๊ณต๊ฐ„์—์„œ ๋ฌด์‹ฌ์ฝ” cc๋ฅผ ์“ด๋‹ค.

๊ทธ๋ž˜์„œ alias๋Š” ํŽธํ•˜์ง€๋งŒ, ์“ฐ๋Š” ์œ„์น˜๋Š” ๋” ์—„๊ฒฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

6) ์ง„์งœ๋กœ ์ž๋™ ์—ฐ๊ฒฐ๋๋Š”์ง€ ๊ฒ€์ฆํ•œ๋‹ค

์ด ๋‹จ๊ณ„์—์„œ ๊ฐ€์žฅ ํ”ํ•œ ์ฐฉ๊ฐ์€ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” .zshrc๋ฅผ ๊ณ ์ณค์œผ๋‹ˆ ๋‹ค ๋๋‚ฌ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ccr activate๋งŒ ํ–ˆ๋Š”๋ฐ router ํ”„๋กœ์„ธ์Šค๋Š” ์•ˆ ๋„์šด ์ƒํƒœ์ž…๋‹ˆ๋‹ค. CCR README์—๋„ activate ์ „์— ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์ทจ์ง€์˜ ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ € router๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

ccr start

๊ทธ ๋‹ค์Œ ์ƒˆ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ฑฐ๋‚˜ source ~/.zshrc๋ฅผ ๋‹ค์‹œ ์ ์šฉํ•œ ๋’ค ์•„๋ž˜ ์ˆœ์„œ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ccr model
cc

ccr model์—์„œ๋Š” ์ตœ์†Œํ•œ ๋‹ค์Œ์ด ๋ณด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • default โ†’ zai,glm-5.1
  • background โ†’ zai,glm-5.1

๊ทธ ๋‹ค์Œ cc๋กœ Claude Code์— ๋“ค์–ด๊ฐ€์„œ ๊ฐ€๋ณ๊ฒŒ ์ด๋ ‡๊ฒŒ ๋˜์ ธ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ 5์ค„๋กœ ์š”์•ฝํ•˜๊ณ , ๋จผ์ € ์†๋Œ€๋ฉด ์ข‹์€ ํŒŒ์ผ 3๊ฐœ๋งŒ ๊ณจ๋ผ์ค˜.

๊ฒ€์ฆ ํฌ์ธํŠธ๋Š” ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

  1. cc ๋ช…๋ น์ด ๋ฐ”๋กœ ๋œจ๋Š”๊ฐ€
  2. API ์ธ์ฆ ์˜ค๋ฅ˜ ์—†์ด ์„ธ์…˜์ด ์—ด๋ฆฌ๋Š”๊ฐ€
  3. CCR ์ชฝ ๋ผ์šฐํŒ…์ด ์‚ด์•„ ์žˆ๋Š”๊ฐ€
  4. ์ž‘์€ ์งˆ์˜ ํ•˜๋‚˜๋ฅผ ์ •์ƒ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฐ€

์—ฌ๊ธฐ๊นŒ์ง€ ๋˜๋ฉด โ€œ์„ค์น˜ ์™„๋ฃŒโ€๋ณด๋‹ค ๋” ์ค‘์š”ํ•œ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ž‘์—… ํ™˜๊ฒฝ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.

7) ์ž์ฃผ ๋ง‰ํžˆ๋Š” ์ง€์  4๊ฐœ

1. ccr activate๋Š” ํ–ˆ๋Š”๋ฐ ์—ฐ๊ฒฐ์ด ์•ˆ ๋œ๋‹ค

๊ฐ€์žฅ ํ”ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต ccr start๋ฅผ ์•ˆ ํ–ˆ๊ฑฐ๋‚˜, ์˜ˆ์ „ ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ๊ณ„์† ํ…Œ์ŠคํŠธํ•˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์ƒˆ ์…ธ์„ ์—ด์–ด์„œ ๋‹ค์‹œ ํ™•์ธํ•˜๋Š” ๊ฒŒ ๋น ๋ฆ…๋‹ˆ๋‹ค.

2. ZAI_API_KEY๋ฅผ ๋„ฃ์—ˆ๋Š”๋ฐ ์ธ์ฆ์ด ์•ˆ ๋œ๋‹ค

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ด๋ฆ„ ์˜คํƒ€, ๋”ฐ์˜ดํ‘œ ๋ˆ„๋ฝ, ์˜ˆ์ „ ์„ธ์…˜ ์บ์‹œ๊ฐ€ ํ”ํ•œ ์›์ธ์ž…๋‹ˆ๋‹ค. echo $ZAI_API_KEY๋กœ ๊ฐ’์ด ์‹ค์ œ ์žกํžˆ๋Š”์ง€๋ถ€ํ„ฐ ๋ด…๋‹ˆ๋‹ค.

3. config.json์€ ๋งž์•„ ๋ณด์ด๋Š”๋ฐ CCR์ด ๋ชป ์ฝ๋Š”๋‹ค

JSON ๋’ค์— ์‰ผํ‘œ ํ•˜๋‚˜ ๋‚จ์•„ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™ ํŽธ์ง‘ํ• ์ˆ˜๋ก ์ด๋Ÿฐ ์‹ค์ˆ˜๊ฐ€ ์ž์ฃผ ๋‚ฉ๋‹ˆ๋‹ค. ์ž‘์€ ํŒŒ์ผ์ผ์ˆ˜๋ก JSON validator ํ•œ ๋ฒˆ ๊ฑฐ์น˜๋Š” ํŽธ์ด ์‹œ๊ฐ„์„ ์•„๋‚๋‹ˆ๋‹ค.

4. GLM-5.1๊ฐ€ ์•ˆ ๋ถ™๋Š”๋‹ค

์ด ๊ฒฝ์šฐ๋Š” ๋Œ€๋ถ€๋ถ„ ์„ค์ • ๋ฌธ์ œ๋ณด๋‹ค ํ”Œ๋žœ/๋ชจ๋ธ ๊ฐ€์šฉ์„ฑ ๋ฌธ์ œ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. Z.AI ๋ฌธ์„œ์ฒ˜๋Ÿผ ๊ณ„์ • ๊ธฐ์ค€ ๊ธฐ๋ณธ ๋งคํ•‘์ด ์•„์ง GLM-4.7์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๋จผ์ € ํ˜„์žฌ ํ”Œ๋žœ๊ณผ ํ—ˆ์šฉ ๋ชจ๋ธ๋ถ€ํ„ฐ ํ™•์ธํ•˜๋Š” ๊ฒŒ ๋งž์Šต๋‹ˆ๋‹ค.

๋‚ด ๊ธฐ์ค€ ์ถ”์ฒœ ์ˆœ์„œ

์ฒ˜์Œ๋ถ€ํ„ฐ ์™„๋ฒฝํ•œ ์ž๋™ํ™”๋ฅผ ๋งŒ๋“ค๋ ค ํ•˜๊ธฐ๋ณด๋‹ค, ์•„๋ž˜ ์ˆœ์„œ๊ฐ€ ๋œ ํ”๋“ค๋ฆฝ๋‹ˆ๋‹ค.

  1. Claude Code ์„ค์น˜
  2. CCR ์„ค์น˜
  3. Z.AI API Key ๋ฐœ๊ธ‰
  4. CCR config.json์— GLM ์—ฐ๊ฒฐ
  5. .zshrc์— eval "$(ccr activate)"
  6. alias cc='claude --dangerously-skip-permissions'
  7. ccr start ํ›„ ์‹ค์ œ ์งˆ์˜ 1ํšŒ ๊ฒ€์ฆ

์ด ์ˆœ์„œ๊ฐ€ ์ข‹์€ ์ด์œ ๋Š”, ๋ฌธ์ œ๊ฐ€ ๋‚˜๋„ ์–ด๋””์„œ ๋ง‰ํ˜”๋Š”์ง€ ๋ฐ”๋กœ ์—ญ์ถ”์ ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ํ•œ ๋ฒˆ์— helper, alias, config, model mapping์„ ๋‹ค ์–น์œผ๋ฉด ์‹คํŒจ ์ง€์ ์ด ๊ฒน์ณ์„œ ์›์ธ์„ ๋ถ„๋ฆฌํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

๋‹ค์Œ ์ฝ๊ธฐ

์ฐธ๊ณ  ๋ฉ”ํƒ€

์ด ๋ฌธ์„œ๋Š” ์ƒ์„ฑํ˜• AI๋ฅผ ํ™œ์šฉํ•ด ์ดˆ์•ˆ์„ ๊ตฌ์„ฑํ–ˆ๊ณ , Anthropic ๊ณต์‹ ๋ฌธ์„œยทCCR ์›๋ฌธ READMEยทZ.AI ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๊ต์ฐจ ํ™•์ธํ•ด ์‹ค๋ฌดํ˜•์œผ๋กœ ์žฌ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.