๋ฉด์ฑ ์กฐํญ: ์ด ์ ์ฅ์์ ๋ชจ๋ ์์ค ์ฝ๋๋ Anthropic๊ณผ Claude์ ์ง์ ์ฌ์ฐ์ ๋๋ค. ์ด ์ ์ฅ์๋ ๊ธฐ์ ์ฐ๊ตฌ, ํ์ต, ๊ต์ก ๋ชฉ์ ์ ๊ต๋ฅ๋ฅผ ์ํด์๋ง ์ ๊ณต๋ฉ๋๋ค. ์์ ์ ์ฌ์ฉ์ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค. ์ด๋ ํ ๊ฐ์ธ, ๊ธฐ๊ด, ๋จ์ฒด๋ ์ด ์ฝํ ์ธ ๋ฅผ ์์ ์ ๋ชฉ์ , ์๋ฆฌ ํ๋, ๋ถ๋ฒ ํ๋ ๋๋ ๊ธฐํ ๋ฌด๋จ ์ฌ์ฉ์ ํ์ฉํ ์ ์์ต๋๋ค. ๋ณธ ์ฝํ ์ธ ๊ฐ ๊ทํ์ ๋ฒ์ ๊ถ๋ฆฌ, ์ง์ ์ฌ์ฐ๊ถ ๋๋ ๊ธฐํ ์ด์ต์ ์นจํดํ๋ ๊ฒฝ์ฐ, ์ฐ๋ฝ ์ฃผ์๋ฉด ์ฆ์ ํ์ธ ํ ์ญ์ ์กฐ์นํ๊ฒ ์ต๋๋ค.
npm ํจํค์ง
@anthropic-ai/claude-code2.1.88 ๋ฒ์ ์์ ์ถ์ถ. ๋ฐฐํฌ ํจํค์ง๋ ๋จ์ผ ๋ฒ๋คcli.js(~12MB)๋ง ํฌํจํ๋ค. ์ด ์ ์ฅ์์src/๋๋ ํฐ๋ฆฌ์๋ npm ํ๋ฅด๋ณผ์์ ์ถ์ถํ ๋ฒ๋ค ์ TypeScript ์์ค๊ฐ ๋ค์ด ์๋ค.
์ธ์ด: English | ไธญๆ | ํ๊ตญ์ด | ๆฅๆฌ่ช
- ์ฌ์ธต ๋ถ์ ๋ณด๊ณ ์ (
docs/) โ ํ ๋ ๋ฉํธ๋ฆฌ, ์ฝ๋๋ค์, ์ธ๋์ปค๋ฒ ๋ชจ๋, ์๊ฒฉ ์ ์ด, ํฅํ ๋ก๋๋งต - ๋๋ฝ ๋ชจ๋ ์๋ด โ feature gate๋ก ์ ๊ฑฐ๋ 108๊ฐ ๋ชจ๋
- ์ํคํ ์ฒ ๊ฐ์ โ ์ง์ ์ โ ์ฟผ๋ฆฌ ์์ง โ ๋๊ตฌ/์๋น์ค/์ํ
- ๋น๋ ์๋ด โ ์ง์ ์ปดํ์ผ์ด ๋ถ๊ฐ๋ฅํ ์ด์
v2.1.88 ๋์ปดํ์ผ ์์ค ์ฝ๋ ๊ธฐ๋ฐ ๋ถ์ ๋ณด๊ณ ์. ์์ด/์ค๊ตญ์ด/ํ๊ตญ์ด 3๊ฐ ๊ตญ์ด ์ ๊ณต.
docs/
โโโ en/ # English
โ โโโ [01-telemetry-and-privacy.md] # Telemetry & Privacy โ what's collected, why you can't opt out
โ โโโ [02-hidden-features-and-codenames.md] # Codenames (Capybara/Tengu/Numbat), feature flags, internal vs external
โ โโโ [03-undercover-mode.md] # Undercover Mode โ hiding AI authorship in open-source repos
โ โโโ [04-remote-control-and-killswitches.md]# Remote Control โ managed settings, killswitches, model overrides
โ โโโ [05-future-roadmap.md] # Future Roadmap โ Numbat, KAIROS, voice mode, unreleased tools
โ
โโโ ko/ # ํ๊ตญ์ด
โ โโโ [01-ํ
๋ ๋ฉํธ๋ฆฌ์-ํ๋ผ์ด๋ฒ์.md] # ํ
๋ ๋ฉํธ๋ฆฌ ๋ฐ ํ๋ผ์ด๋ฒ์ โ ์์ง ํญ๋ชฉ, ๋นํ์ฑํ ๋ถ๊ฐ ์ด์
โ โโโ [02-์จ๊ฒจ์ง-๊ธฐ๋ฅ๊ณผ-์ฝ๋๋ค์.md] # ์จ๊ฒจ์ง ๊ธฐ๋ฅ โ ๋ชจ๋ธ ์ฝ๋๋ค์, feature flag, ๋ด๋ถ/์ธ๋ถ ์ฌ์ฉ์ ์ฐจ์ด
โ โโโ [03-์ธ๋์ปค๋ฒ-๋ชจ๋.md] # ์ธ๋์ปค๋ฒ ๋ชจ๋ โ ์คํ์์ค์์ AI ์ ์ ์ํ
โ โโโ [04-์๊ฒฉ-์ ์ด์-ํฌ์ค์์น.md] # ์๊ฒฉ ์ ์ด โ ๊ด๋ฆฌ ์ค์ , ํฌ์ค์์น, ๋ชจ๋ธ ์ค๋ฒ๋ผ์ด๋
โ โโโ [05-ํฅํ-๋ก๋๋งต.md] # ํฅํ ๋ก๋๋งต โ Numbat, KAIROS, ์์ฑ ๋ชจ๋, ๋ฏธ๊ณต๊ฐ ๋๊ตฌ
โ
โโโ zh/ # ไธญๆ
โโโ [01-้ฅๆตไธ้็งๅๆ.md] # ้ฅๆตไธ้็ง โ ๆถ้ไบไปไน๏ผไธบไปไนๆ ๆณ้ๅบ
โโโ [02-้่ๅ่ฝไธๆจกๅไปฃๅท.md] # ้่ๅ่ฝ โ ๆจกๅไปฃๅท๏ผfeature flag๏ผๅ
ๅค็จๆทๅทฎๅผ
โโโ [03-ๅงๅบๆจกๅผๅๆ.md] # ๅงๅบๆจกๅผ โ ๅจๅผๆบ้กน็ฎไธญ้่ AI ่บซไปฝ
โโโ [04-่ฟ็จๆงๅถไธ็ดงๆฅๅผๅ
ณ.md] # ่ฟ็จๆงๅถ โ ๆ็ฎก่ฎพ็ฝฎ๏ผ็ดงๆฅๅผๅ
ณ๏ผๆจกๅ่ฆ็
โโโ [05-ๆชๆฅ่ทฏ็บฟๅพ.md] # ๆชๆฅ่ทฏ็บฟๅพ โ Numbat๏ผKAIROS๏ผ่ฏญ้ณๆจกๅผ๏ผๆชไธ็บฟๅทฅๅ
ท
ํ์ผ๋ช ์ ํด๋ฆญํ๋ฉด ํด๋น ๋ณด๊ณ ์๋ก ์ด๋ํฉ๋๋ค.
| # | ์ฃผ์ | ํต์ฌ ๋ฐ๊ฒฌ | ๋งํฌ |
|---|---|---|---|
| 01 | ํ ๋ ๋ฉํธ๋ฆฌ ๋ฐ ํ๋ผ์ด๋ฒ์ | ์ด์ค ๋ถ์ ํ์ดํ๋ผ์ธ (1PโAnthropic, Datadog). ํ๊ฒฝ ํ๊ฑฐํ๋ฆฐํธ, ํ๋ก์ธ์ค ๋ฉํธ๋ฆญ, ๋ชจ๋ ์ด๋ฒคํธ์ ์ธ์
/์ฌ์ฉ์ ID ํฌํจ. ์ฌ์ฉ์ ๋์ ๋นํ์ฑํ ์ค์ ์์. OTEL_LOG_TOOL_DETAILS=1๋ก ์ ์ฒด ๋๊ตฌ ์
๋ ฅ ๊ธฐ๋ก ๊ฐ๋ฅ. |
EN ยท ํ๊ตญ์ด ยท ไธญๆ |
| 02 | ์จ๊ฒจ์ง ๊ธฐ๋ฅ๊ณผ ์ฝ๋๋ค์ | ๋๋ฌผ ์ฝ๋๋ค์ ์ฒด๊ณ (Capybara v8, Tengu, FennecโOpus 4.6, Numbat ์ฐจ๊ธฐ). Feature flag์ ๋ฌด์์ ๋จ์ด ์กฐํฉ์ผ๋ก ๋ชฉ์ ๋๋
ํ. ๋ด๋ถ ์ฌ์ฉ์๋ ๋ ๋์ ํ๋กฌํํธ์ ๊ฒ์ฆ ์์ด์ ํธ ์ ๊ณต. ์จ๊ฒจ์ง ๋ช
๋ น์ด: /btw, /stickers. |
EN ยท ํ๊ตญ์ด ยท ไธญๆ |
| 03 | ์ธ๋์ปค๋ฒ ๋ชจ๋ | Anthropic ์ง์์ ๊ณต๊ฐ ์ ์ฅ์์์ ์๋์ผ๋ก ์ธ๋์ปค๋ฒ ๋ชจ๋ ์ง์ . ๋ชจ๋ธ ์ง์: "์ ์ฒด๋ฅผ ๋คํค์ง ๋ง๋ผ" โ ๋ชจ๋ AI ์ ์ ํ์๋ฅผ ์ ๊ฑฐํ๊ณ , ์ฌ๋์ด ์์ฑํ ๊ฒ์ฒ๋ผ ์ปค๋ฐ. ๊ฐ์ ๋นํ์ฑํ ์ต์ ์์. | EN ยท ํ๊ตญ์ด ยท ไธญๆ |
| 04 | ์๊ฒฉ ์ ์ด ๋ฐ ํฌ์ค์์น | 1์๊ฐ๋ง๋ค /api/claude_code/settings ํด๋ง. ์ํ ๋ณ๊ฒฝ ์ ์ฐจ๋จ ๋ค์ด์ผ๋ก๊ทธ โ ๊ฑฐ๋ถ = ์ฑ ์ข
๋ฃ. 6๊ฐ ์ด์ ํฌ์ค์์น (๊ถํ ์ฐํ, fast ๋ชจ๋, ์์ฑ ๋ชจ๋, ๋ถ์ ์ฑํฌ). GrowthBook์ผ๋ก ๋์ ์์ด ์ฌ์ฉ์ ๋์ ๋ณ๊ฒฝ ๊ฐ๋ฅ. |
EN ยท ํ๊ตญ์ด ยท ไธญๆ |
| 05 | ํฅํ ๋ก๋๋งต | Numbat ์ฝ๋๋ค์ ํ์ธ. Opus 4.7 / Sonnet 4.8 ๊ฐ๋ฐ ์ค. KAIROS = ์์ ์์จ ์์ด์ ํธ ๋ชจ๋, <tick> ํํธ๋นํธ, ํธ์ ์๋ฆผ, PR ๊ตฌ๋
. ์์ฑ ๋ชจ๋(push-to-talk) ์ค๋น ์๋ฃ. ๋ฏธ๊ณต๊ฐ ๋๊ตฌ 17๊ฐ ๋ฐ๊ฒฌ. |
EN ยท ํ๊ตญ์ด ยท ไธญๆ |
์ด ์์ค๋ ๋ถ์์ ํ๋ค.
feature()๊ฒ์ดํธ๋ก ๋ถ๊ธฐ๋ 108๊ฐ ๋ชจ๋์ด npm ํจํค์ง์ ํฌํจ๋์ด ์์ง ์๋ค. ์ด ๋ชจ๋๋ค์ Anthropic ๋ด๋ถ ๋ชจ๋ ธ๋ ํฌ์๋ง ์กด์ฌํ๋ฉฐ, ์ปดํ์ผ ์ ๋ฐ๋ ์ฝ๋ ์ ๊ฑฐ๋๋ค.cli.js,sdk-tools.d.ts๋๋ ๊ธฐํ ๋ฐฐํฌ ์ํฐํฉํธ์์ ๋ณต๊ตฌํ ์ ์๋ค.
npm ํจํค์ง์ ์์ค ํ์ผ์ด ์ ํ ์๋ ๋ชจ๋์ด๋ค. Anthropic ๋ด๋ถ ์ธํ๋ผ์ ํด๋นํ๋ค.
์ ์ฒด ๋ชฉ๋ก ํผ์น๊ธฐ
| Module | ์ฉ๋ | Feature Gate |
|---|---|---|
daemon/main.js |
๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐ๋ชฌ ๊ด๋ฆฌ์ | DAEMON |
daemon/workerRegistry.js |
๋ฐ๋ชฌ ์์ปค ๋ ์ง์คํธ๋ฆฌ | DAEMON |
proactive/index.js |
์ ์ ์ ์๋ฆผ ์์คํ | PROACTIVE |
contextCollapse/index.js |
์ปจํ ์คํธ ์ถ์ ์๋น์ค (์คํ์ ) | CONTEXT_COLLAPSE |
contextCollapse/operations.js |
์ถ์ ์ฐ์ฐ | CONTEXT_COLLAPSE |
contextCollapse/persist.js |
์ถ์ ์์ํ | CONTEXT_COLLAPSE |
skillSearch/featureCheck.js |
์๊ฒฉ ์คํฌ ๊ธฐ๋ฅ ๊ฒ์ฌ | EXPERIMENTAL_SKILL_SEARCH |
skillSearch/remoteSkillLoader.js |
์๊ฒฉ ์คํฌ ๋ก๋ | EXPERIMENTAL_SKILL_SEARCH |
skillSearch/remoteSkillState.js |
์๊ฒฉ ์คํฌ ์ํ | EXPERIMENTAL_SKILL_SEARCH |
skillSearch/telemetry.js |
์คํฌ ๊ฒ์ ํ ๋ ๋ฉํธ๋ฆฌ | EXPERIMENTAL_SKILL_SEARCH |
skillSearch/localSearch.js |
๋ก์ปฌ ์คํฌ ๊ฒ์ | EXPERIMENTAL_SKILL_SEARCH |
skillSearch/prefetch.js |
์คํฌ ํ๋ฆฌํ์น | EXPERIMENTAL_SKILL_SEARCH |
coordinator/workerAgent.js |
๋ฉํฐ ์์ด์ ํธ ์ฝ๋๋ค์ดํฐ ์์ปค | COORDINATOR_MODE |
bridge/peerSessions.js |
๋ธ๋ฆฟ์ง ํผ์ด ์ธ์ ๊ด๋ฆฌ | BRIDGE_MODE |
assistant/index.js |
KAIROS ์ด์์คํดํธ ๋ชจ๋ | KAIROS |
assistant/AssistantSessionChooser.js |
์ด์์คํดํธ ์ธ์ ์ ํ๊ธฐ | KAIROS |
compact/reactiveCompact.js |
๋ฐ์ํ ์ปจํ ์คํธ ์์ถ | CACHED_MICROCOMPACT |
compact/snipCompact.js |
์ค๋ ๊ธฐ๋ฐ ์์ถ | HISTORY_SNIP |
compact/snipProjection.js |
์ค๋ ํ๋ก์ ์ | HISTORY_SNIP |
compact/cachedMCConfig.js |
์บ์ ๋ง์ดํฌ๋ก์์ถ ์ค์ | CACHED_MICROCOMPACT |
sessionTranscript/sessionTranscript.js |
์ธ์ ํธ๋์คํฌ๋ฆฝํธ ์๋น์ค | TRANSCRIPT_CLASSIFIER |
commands/agents-platform/index.js |
๋ด๋ถ ์์ด์ ํธ ํ๋ซํผ | ant (๋ด๋ถ) |
commands/assistant/index.js |
์ด์์คํดํธ ๋ช ๋ น | KAIROS |
commands/buddy/index.js |
Buddy ์์คํ ์๋ฆผ | BUDDY |
commands/fork/index.js |
Fork ์๋ธ์์ด์ ํธ ๋ช ๋ น | FORK_SUBAGENT |
commands/peers/index.js |
๋ฉํฐ ํผ์ด ๋ช ๋ น | BRIDGE_MODE |
commands/proactive.js |
์ ์ ์ ๋ช ๋ น | PROACTIVE |
commands/remoteControlServer/index.js |
์๊ฒฉ ์ ์ด ์๋ฒ | DAEMON + BRIDGE_MODE |
commands/subscribe-pr.js |
GitHub PR ๊ตฌ๋ | KAIROS_GITHUB_WEBHOOKS |
commands/torch.js |
๋ด๋ถ ๋๋ฒ๊ทธ ๋๊ตฌ | TORCH |
commands/workflows/index.js |
์ํฌํ๋ก์ฐ ๋ช ๋ น | WORKFLOW_SCRIPTS |
jobs/classifier.js |
๋ด๋ถ ์์ ๋ถ๋ฅ๊ธฐ | TEMPLATES |
memdir/memoryShapeTelemetry.js |
๊ธฐ์ต ํํ ํ ๋ ๋ฉํธ๋ฆฌ | MEMORY_SHAPE_TELEMETRY |
services/sessionTranscript/sessionTranscript.js |
์ธ์ ํธ๋์คํฌ๋ฆฝํธ | TRANSCRIPT_CLASSIFIER |
tasks/LocalWorkflowTask/LocalWorkflowTask.js |
๋ก์ปฌ ์ํฌํ๋ก์ฐ ํ์คํฌ | WORKFLOW_SCRIPTS |
protectedNamespace.js |
๋ด๋ถ ๋ค์์คํ์ด์ค ๊ฐ๋ | ant (๋ด๋ถ) |
protectedNamespace.js (envUtils) |
๋ณดํธ ๋ค์์คํ์ด์ค ๋ฐํ์ | ant (๋ด๋ถ) |
coreTypes.generated.js |
์์ฑ๋ ์ฝ์ด ํ์ | ant (๋ด๋ถ) |
devtools.js |
๋ด๋ถ ๊ฐ๋ฐ ๋๊ตฌ | ant (๋ด๋ถ) |
attributionHooks.js |
๋ด๋ถ ์ ์ ํ์ ํ | COMMIT_ATTRIBUTION |
systemThemeWatcher.js |
์์คํ ํ ๋ง ๊ฐ์๊ธฐ | AUTO_THEME |
udsClient.js / udsMessaging.js |
UDS ๋ฉ์์ง ํด๋ผ์ด์ธํธ | UDS_INBOX |
ํ์ ์๊ทธ๋์ฒ๋ ์์ผ๋ ๊ตฌํ์ด ์ปดํ์ผ ์ ์ ๊ฑฐ๋ ๋๊ตฌ.
์ ์ฒด ๋ชฉ๋ก ํผ์น๊ธฐ
| Tool | ์ฉ๋ | Feature Gate |
|---|---|---|
REPLTool |
์ธํฐ๋ํฐ๋ธ REPL (VM ์๋๋ฐ์ค) | ant (๋ด๋ถ) |
SnipTool |
์ปจํ ์คํธ ์๋ผ๋ด๊ธฐ | HISTORY_SNIP |
SleepTool |
์์ด์ ํธ ๋ฃจํ ๋ด ์ฌ๋ฆฝ/์ง์ฐ | PROACTIVE / KAIROS |
MonitorTool |
MCP ๋ชจ๋ํฐ๋ง | MONITOR_TOOL |
OverflowTestTool |
์ค๋ฒํ๋ก์ฐ ํ ์คํธ | OVERFLOW_TEST_TOOL |
WorkflowTool |
์ํฌํ๋ก์ฐ ์คํ | WORKFLOW_SCRIPTS |
WebBrowserTool |
๋ธ๋ผ์ฐ์ ์๋ํ | WEB_BROWSER_TOOL |
TerminalCaptureTool |
ํฐ๋ฏธ๋ ์บก์ฒ | TERMINAL_PANEL |
TungstenTool |
๋ด๋ถ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง | ant (๋ด๋ถ) |
VerifyPlanExecutionTool |
๊ณํ ์คํ ๊ฒ์ฆ | CLAUDE_CODE_VERIFY_PLAN |
SendUserFileTool |
์ฌ์ฉ์์๊ฒ ํ์ผ ์ ์ก | KAIROS |
SubscribePRTool |
GitHub PR ๊ตฌ๋ | KAIROS_GITHUB_WEBHOOKS |
SuggestBackgroundPRTool |
๋ฐฑ๊ทธ๋ผ์ด๋ PR ์ ์ | KAIROS |
PushNotificationTool |
ํธ์ ์๋ฆผ | KAIROS |
CtxInspectTool |
์ปจํ ์คํธ ๊ฒ์ฌ | CONTEXT_COLLAPSE |
ListPeersTool |
ํ์ฑ ํผ์ด ๋ชฉ๋ก | UDS_INBOX |
DiscoverSkillsTool |
์คํฌ ํ์ | EXPERIMENTAL_SKILL_SEARCH |
| File | ์ฉ๋ |
|---|---|
yolo-classifier-prompts/auto_mode_system_prompt.txt |
auto ๋ชจ๋ ๋ถ๋ฅ๊ธฐ ์์คํ ํ๋กฌํํธ |
yolo-classifier-prompts/permissions_anthropic.txt |
Anthropic ๋ด๋ถ ๊ถํ ํ๋กฌํํธ |
yolo-classifier-prompts/permissions_external.txt |
์ธ๋ถ ์ฌ์ฉ์ ๊ถํ ํ๋กฌํํธ |
verify/SKILL.md |
๊ฒ์ฆ ์คํฌ ๋ฌธ์ |
verify/examples/cli.md |
CLI ๊ฒ์ฆ ์์ |
verify/examples/server.md |
์๋ฒ ๊ฒ์ฆ ์์ |
Anthropic ๋ด๋ถ ๋ชจ๋
ธ๋ ํฌ ๋ฐฐํฌ npm ํจํค์ง
โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ
feature('DAEMON') โ true โโ๋น๋โโโ feature('DAEMON') โ false
โ โ
daemon/main.js โ ํฌํจ โโ๋ฒ๋คโโโ daemon/main.js โ ์ ๊ฑฐ (DCE)
tools/REPLTool โ ํฌํจ โโ๋ฒ๋คโโโ tools/REPLTool โ ์ ๊ฑฐ (DCE)
proactive/ โ ํฌํจ โโ๋ฒ๋คโโโ (์ฐธ์กฐ๋ง ์๊ณ src/์ ์์)
Bun์ feature()๋ ์ปดํ์ผ ์์ ๋ด์ฅ ํจ์:
- Anthropic ๋ด๋ถ ๋น๋์์
true๋ฐํ โ ์ฝ๋๊ฐ ๋ฒ๋ค์ ํฌํจ - ๋ฐฐํฌ ๋น๋์์
false๋ฐํ โ ๋ฐ๋ ์ฝ๋ ์ ๊ฑฐ - 108๊ฐ ๋ชจ๋์ด ๋ฐฐํฌ ์ํฐํฉํธ์ ์กด์ฌํ์ง ์์
Copyright (c) Anthropic. All rights reserved.
์ด ์ ์ฅ์์ ๋ชจ๋ ์์ค ์ฝ๋๋ Anthropic๊ณผ Claude์ ์ง์ ์ฌ์ฐ์
๋๋ค.
๋ณธ ์ ์ฅ์๋ ๊ธฐ์ ์ฐ๊ตฌ ๋ฐ ๊ต์ก ๋ชฉ์ ์ผ๋ก๋ง ์ ๊ณต๋ฉ๋๋ค. ์์
์ ์ฌ์ฉ์ ๊ธ์ง๋ฉ๋๋ค.
์ ์๊ถ์๋ก์ ๋ณธ ์ ์ฅ์๊ฐ ๊ทํ์ ๊ถ๋ฆฌ๋ฅผ ์นจํดํ๋ค๊ณ ํ๋จ๋๋ ๊ฒฝ์ฐ,
์ ์ฅ์ ์์ ์์๊ฒ ์ฐ๋ฝ ์ฃผ์๋ฉด ์ฆ์ ์ญ์ ํ๊ฒ ์ต๋๋ค.
| ํญ๋ชฉ | ์๋ |
|---|---|
| ์์ค ํ์ผ (.ts/.tsx) | ~1,884 |
| ์ฝ๋ ๋ผ์ธ ์ | ~512,664 |
| ์ต๋ ๋จ์ผ ํ์ผ | query.ts (~785KB) |
| ๋ด์ฅ ๋๊ตฌ | ~40๊ฐ ์ด์ |
| ์ฌ๋์ ๋ช ๋ น | ~80๊ฐ ์ด์ |
| ์์กด์ฑ (node_modules) | ~192๊ฐ ํจํค์ง |
| ๋ฐํ์ | Bun (Node.js >= 18 ๋ฒ๋ค๋ก ์ปดํ์ผ) |
์ฝ์ด ๋ฃจํ
========
์ฌ์ฉ์ --> messages[] --> Claude API --> ์๋ต
|
stop_reason == "tool_use"?
/ \
์ ์๋์ค
| |
๋๊ตฌ ์คํ ํ
์คํธ ๋ฐํ
tool_result ์ถ๊ฐ
๋ฃจํ ์ฌ์ง์
-----------------> messages[]
์ด๊ฒ์ด ์ต์ ์์ด์ ํธ ๋ฃจํ์ด๋ค. Claude Code๋ ์ด ๋ฃจํ ์์
ํ๋ก๋์
๊ธ ํ๋์ค๋ฅผ ๋ํํ๋ค: ๊ถํ, ์คํธ๋ฆฌ๋ฐ, ๋์์ฑ,
์์ถ, ์๋ธ์์ด์ ํธ, ์์ํ ๋ฐ MCP.
src/
โโโ main.tsx # REPL ๋ถํธ์คํธ๋ฉ, 4,683์ค
โโโ QueryEngine.ts # SDK/headless ์ฟผ๋ฆฌ ๋ผ์ดํ์ฌ์ดํด ์์ง
โโโ query.ts # ๋ฉ์ธ ์์ด์ ํธ ๋ฃจํ (785KB, ์ต๋ ํ์ผ)
โโโ Tool.ts # ๋๊ตฌ ์ธํฐํ์ด์ค + buildTool ํฉํ ๋ฆฌ
โโโ Task.ts # ํ์คํฌ ํ์
, ID, ์ํ ๋ฒ ์ด์ค ํด๋์ค
โโโ tools.ts # ๋๊ตฌ ๋ฑ๋ก, ํ๋ฆฌ์
, ํํฐ๋ง
โโโ commands.ts # ์ฌ๋์ ๋ช
๋ น ์ ์
โโโ context.ts # ์ฌ์ฉ์ ์
๋ ฅ ์ปจํ
์คํธ
โโโ cost-tracker.ts # API ๋น์ฉ ๋์
โโโ setup.ts # ์ต์ด ์คํ ์ค์ ํ๋ก์ฐ
โ
โโโ bridge/ # Claude Desktop / ์๊ฒฉ ๋ธ๋ฆฟ์ง
โ โโโ bridgeMain.ts # ์ธ์
๋ผ์ดํ์ฌ์ดํด ๋งค๋์
โ โโโ bridgeApi.ts # HTTP ํด๋ผ์ด์ธํธ
โ โโโ bridgeConfig.ts # ์ฐ๊ฒฐ ์ค์
โ โโโ bridgeMessaging.ts # ๋ฉ์์ง ๋ฆด๋ ์ด
โ โโโ sessionRunner.ts # ํ๋ก์ธ์ค ์คํฐ
โ โโโ jwtUtils.ts # JWT ๊ฐฑ์
โ โโโ workSecret.ts # ์ธ์ฆ ํ ํฐ
โ โโโ capacityWake.ts # ์ฉ๋ ๊ธฐ๋ฐ ์จ์ดํฌ
โ
โโโ cli/ # CLI ์ธํ๋ผ
โ โโโ handlers/ # ๋ช
๋ น ํธ๋ค๋ฌ
โ โโโ transports/ # I/O ์ ์ก (stdio, structured)
โ
โโโ commands/ # ~80๊ฐ ์ฌ๋์ ๋ช
๋ น
โโโ components/ # React/Ink ํฐ๋ฏธ๋ UI
โโโ entrypoints/ # ์ฑ ์ง์
์
โโโ hooks/ # React hooks
โโโ services/ # ๋น์ฆ๋์ค ๋ก์ง ๋ ์ด์ด
โโโ state/ # ์ฑ ์ํ
โโโ tasks/ # ํ์คํฌ ๊ตฌํ
โโโ tools/ # 40๊ฐ ์ด์ ๋๊ตฌ ๊ตฌํ
โโโ types/ # ํ์
์ ์
โโโ utils/ # ์ ํธ๋ฆฌํฐ (์ต๋ ๋๋ ํฐ๋ฆฌ)
โโโ vendor/ # ๋ค์ดํฐ๋ธ ๋ชจ๋ ์์ค ์คํ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ์ง์
๋ ์ด์ด โ
โ cli.tsx โโ> main.tsx โโ> REPL.tsx (์ธํฐ๋ํฐ๋ธ) โ
โ โโโ> QueryEngine.ts (headless/SDK) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ์ฟผ๋ฆฌ ์์ง โ
โ submitMessage(prompt) โโ> AsyncGenerator<SDKMessage> โ
โ โโโ fetchSystemPromptParts() โโ> ์์คํ
ํ๋กฌํํธ ์กฐ๋ฆฝ โ
โ โโโ processUserInput() โโ> /๋ช
๋ น ์ฒ๋ฆฌ โ
โ โโโ query() โโ> ๋ฉ์ธ ์์ด์ ํธ ๋ฃจํ โ
โ โ โโโ StreamingToolExecutor โโ> ๋ณ๋ ฌ ๋๊ตฌ ์คํ โ
โ โ โโโ autoCompact() โโ> ์ปจํ
์คํธ ์์ถ โ
โ โ โโโ runTools() โโ> ๋๊ตฌ ์ค์ผ์คํธ๋ ์ด์
โ
โ โโโ yield SDKMessage โโ> ์๋น์์๊ฒ ์คํธ๋ฆฌ๋ฐ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
์ด ์์ค๋ ์ด ์ ์ฅ์์์ ์ง์ ์ปดํ์ผํ ์ ์๋ค:
tsconfig.json, ๋น๋ ์คํฌ๋ฆฝํธ, Bun ๋ฒ๋ค๋ฌ ์ค์ ์ด ์์feature()ํธ์ถ์ Bun ์ปดํ์ผ ์์ ๋ด์ฅ ํจ์ โ ๋ฒ๋ค๋ง ์ ํด์๋จMACRO.VERSION์ ๋น๋ ์ ์ฃผ์ ๋จprocess.env.USER_TYPE === 'ant'๋ถ๊ธฐ๋ Anthropic ๋ด๋ถ์ฉ- ์ปดํ์ผ๋
cli.js๋ ์์ฒด ์๊ฒฐํ 12MB ๋ฒ๋ค, Node.js >= 18๋ง ํ์
๋น๋ ์์ธ ์๋ด๋ QUICKSTART.md ์ฐธ๊ณ .
์ด ์ ์ฅ์์ ๋ชจ๋ ์์ค ์ฝ๋๋ Anthropic๊ณผ Claude์ ์ ์๋ฌผ์ ๋๋ค. ๋ณธ ์ ์ฅ์๋ ๊ธฐ์ ์ฐ๊ตฌ ๋ฐ ๊ต์ก ๋ชฉ์ ์ผ๋ก๋ง ์ ๊ณต๋ฉ๋๋ค. ์ ์ฒด ๋ผ์ด์ ์ค ์กฐ๊ฑด์ ์๋ณธ npm ํจํค์ง๋ฅผ ์ฐธ์กฐํ์ธ์.