Claude Code: คู่มือ Subsystems

🇹🇭 Thai claude-codesubsystemsguideanalysisthai
📋 Table of Contents (13 sections)
  1. คู่มือ Subsystems
  2. สารบัญ
  3. Bridge (IDE Integration)
  4. MCP (Model Context Protocol)
  5. Permission System
  6. Plugin System
  7. Skill System
  8. Task System
  9. Memory System
  10. Coordinator (Multi-Agent)
  11. Voice System
  12. Service Layer
  13. ดูเพิ่มเติม

คู่มือ Subsystems

เอกสารละเอียดของ subsystems หลักใน Claude Code


สารบัญ


Bridge (IDE Integration)

Location: src/bridge/

Bridge คือ bidirectional communication layer ที่เชื่อมต่อ Claude Code CLI กับ IDE extensions (VS Code, JetBrains) โดยให้ CLI ทำงานเป็น backend สำหรับ IDE-based interfaces

สถาปัตยกรรม

┌──────────────────┐         ┌──────────────────────┐
│   IDE Extension  │◄───────►│   Bridge Layer       │
│  (VS Code, JB)   │  JWT    │  (src/bridge/)       │
│                  │  Auth   │                      │
│  - UI rendering  │         │  - Session mgmt      │
│  - File watching │         │  - Message routing    │
│  - Diff display  │         │  - Permission proxy   │
└──────────────────┘         └──────────┬───────────┘


                              ┌──────────────────────┐
                              │   Claude Code Core   │
                              │  (QueryEngine, Tools) │
                              └──────────────────────┘

Key Files

ไฟล์วัตถุประสงค์
bridgeMain.tsBridge loop หลัก — เริ่ม bidirectional channel
bridgeMessaging.tsMessage protocol (serialize/deserialize)
bridgePermissionCallbacks.tsRoute permission prompts ไปยัง IDE
bridgeApi.tsAPI surface ที่เปิดเผยต่อ IDE
bridgeConfig.tsBridge configuration
replBridge.tsเชื่อมต่อ REPL session กับ bridge
jwtUtils.tsJWT-based authentication ระหว่าง CLI และ IDE
sessionRunner.tsจัดการ bridge session execution
createSession.tsสร้าง bridge sessions ใหม่
trustedDevice.tsDevice trust verification
workSecret.tsWorkspace-scoped secrets
inboundMessages.tsจัดการ messages จาก IDE
inboundAttachments.tsจัดการ file attachments จาก IDE
types.tsTypeScript types สำหรับ bridge protocol

Feature Flag

Bridge ถูก gate ไว้หลัง feature flag BRIDGE_MODE และถูกตัดออกจาก non-IDE builds


MCP (Model Context Protocol)

Location: src/services/mcp/

Claude Code ทำงานทั้งในฐานะ MCP client (ใช้งาน tools/resources จาก MCP servers) และสามารถทำงานเป็น MCP server (เปิดเผย tools ของตัวเองผ่าน src/entrypoints/mcp.ts)

Client Features

  • Tool discovery — ระบุ tools จาก MCP servers ที่เชื่อมต่อ
  • Resource browsing — แสดงและอ่าน MCP-exposed resources
  • Dynamic tool loadingToolSearchTool ค้นพบ tools ขณะ runtime
  • AuthenticationMcpAuthTool จัดการ MCP server auth flows
  • Connectivity monitoring — hook useMcpConnectivityStatus ติดตาม connection health

Server Mode

เมื่อเปิดผ่าน src/entrypoints/mcp.ts Claude Code เปิดเผย tools และ resources ของตัวเองผ่าน MCP protocol ให้ AI agents อื่นใช้ Claude Code เป็น tool server

Toolวัตถุประสงค์
MCPToolเรียกใช้ tools บน MCP servers ที่เชื่อมต่อ
ListMcpResourcesToolแสดง MCP resources ที่มี
ReadMcpResourceToolอ่าน MCP resource เฉพาะ
McpAuthToolยืนยันตัวตนกับ MCP server
ToolSearchToolค้นพบ deferred tools จาก MCP servers

Configuration

MCP servers ตั้งค่าผ่าน /mcp command หรือไฟล์ settings approval flow อยู่ใน src/services/mcpServerApproval.tsx


Permission System

Location: src/hooks/toolPermission/

ทุก tool invocation ผ่าน centralized permission check ก่อน execute

Permission Modes

โหมดพฤติกรรม
defaultแจ้งให้ user อนุมัติสำหรับแต่ละ operation ที่อาจทำลายข้อมูล
planแสดง execution plan ทั้งหมด ขออนุมัติ batch ครั้งเดียว
bypassPermissionsอนุมัติ operations ทั้งหมดอัตโนมัติ (อันตราย — สำหรับ trusted environments)
autoML-based classifier ตัดสินใจอัตโนมัติ (experimental)

วิธีการทำงาน

  1. Tool ถูกเรียกโดย Query Engine
  2. checkPermissions(input, context) ถูกเรียกบน tool
  3. Permission handler ตรวจสอบกับ rules ที่ตั้งค่าไว้
  4. หากไม่ได้ auto-approved user จะได้รับการแจ้งผ่าน terminal หรือ IDE

Permission Rules

Rules ใช้ wildcard patterns เพื่อ match tool invocations:

Bash(git *)           # อนุญาต git commands ทั้งหมดโดยไม่ต้องถาม
Bash(npm test)        # อนุญาต 'npm test' โดยเฉพาะ
FileEdit(/src/*)      # อนุญาตแก้ไขทุกอย่างใต้ src/
FileRead(*)           # อนุญาตอ่านทุกไฟล์

Key Files

ไฟล์Path
Permission contextsrc/hooks/toolPermission/PermissionContext.ts
Permission handlerssrc/hooks/toolPermission/handlers/
Permission loggingsrc/hooks/toolPermission/permissionLogging.ts
Permission typessrc/types/permissions.ts

Plugin System

Location: src/plugins/, src/services/plugins/

Claude Code รองรับ installable plugins ที่สามารถขยาย capabilities ได้

โครงสร้าง

ComponentLocationวัตถุประสงค์
Plugin loadersrc/services/plugins/ค้นพบและโหลด plugins
Built-in pluginssrc/plugins/builtinPlugins.tsPlugins ที่มาพร้อมกับ Claude Code
Bundled pluginssrc/plugins/bundled/Plugin code ที่ bundle ในตัว binary
Plugin typessrc/types/plugin.tsTypeScript types สำหรับ plugin API

Plugin Lifecycle

  1. Discovery — สแกน plugin directories และ marketplace
  2. Installation — ดาวน์โหลดและลงทะเบียน (ผ่าน /plugin command)
  3. Loading — เริ่มต้นเมื่อ startup หรือ on-demand
  4. Execution — Plugins สามารถ contribute tools, commands และ prompts
  5. Auto-updateusePluginAutoupdateNotification จัดการการอัปเดต
Commandวัตถุประสงค์
/pluginติดตั้ง ลบ หรือจัดการ plugins
/reload-pluginsโหลด plugins ที่ติดตั้งทั้งหมดใหม่

Skill System

Location: src/skills/

Skills คือ workflows ที่นำกลับมาใช้ใหม่ได้และมีชื่อ ที่รวม prompts และ tool configurations สำหรับงานเฉพาะ

โครงสร้าง

ComponentLocationวัตถุประสงค์
Bundled skillssrc/skills/bundled/Skills ที่มาพร้อมกับ Claude Code
Skill loadersrc/skills/loadSkillsDir.tsโหลด skills จาก disk
MCP skill builderssrc/skills/mcpSkillBuilders.tsสร้าง skills จาก MCP resources
Skill registrysrc/skills/bundledSkills.tsการลงทะเบียน bundled skills ทั้งหมด

Bundled Skills (16 รายการ)

Skillวัตถุประสงค์
batchBatch operations ข้ามหลายไฟล์
claudeApiการโต้ตอบ Anthropic API โดยตรง
claudeInChromeChrome extension integration
debugDebugging workflows
keybindingsการตั้งค่า keybinding
loopIterative refinement loops
loremIpsumสร้าง placeholder text
rememberบันทึกข้อมูลไว้ใน memory
scheduleRemoteAgentsกำหนดเวลา agents สำหรับ remote execution
simplifyลดความซับซ้อนของโค้ด
skillifyสร้าง skills ใหม่จาก workflows
stuckได้รับความช่วยเหลือเมื่อติดขัด
updateConfigแก้ไข configuration แบบ programmatic
verify / verifyContentตรวจสอบความถูกต้องของโค้ด

Execution

Skills ถูกเรียกผ่าน SkillTool หรือ /skills command ผู้ใช้ยังสามารถสร้าง custom skills ได้


Task System

Location: src/tasks/

จัดการ background และ parallel work items — shell tasks, agent tasks และ teammate agents

Task Types

ประเภทLocationวัตถุประสงค์
LocalShellTaskLocalShellTask/Background shell command execution
LocalAgentTaskLocalAgentTask/Sub-agent ที่ทำงานใน local
RemoteAgentTaskRemoteAgentTask/Agent ที่ทำงานบน remote machine
InProcessTeammateTaskInProcessTeammateTask/Parallel teammate agent
DreamTaskDreamTask/Background “dreaming” process
LocalMainSessionTaskLocalMainSessionTask.tsMain session ในฐานะ task

Task Tools

Toolวัตถุประสงค์
TaskCreateToolสร้าง background task ใหม่
TaskUpdateToolอัปเดตสถานะ task
TaskGetToolดึงรายละเอียด task
TaskListToolแสดงรายการ tasks ทั้งหมด
TaskOutputToolดู task output
TaskStopToolหยุด task ที่กำลังทำงาน

Memory System

Location: src/memdir/

ระบบ persistent memory ของ Claude Code อิงตาม CLAUDE.md files

Memory Hierarchy

ScopeLocationวัตถุประสงค์
Project memoryCLAUDE.md ใน project rootข้อเท็จจริง conventions เฉพาะ project
User memory~/.claude/CLAUDE.mdUser preferences ข้าม project
Extracted memoriessrc/services/extractMemories/Auto-extracted จาก conversations
Team memory syncsrc/services/teamMemorySync/ความรู้ที่แชร์ในทีม
  • /memory command สำหรับจัดการ memories
  • remember skill สำหรับบันทึกข้อมูล
  • useMemoryUsage hook สำหรับติดตามขนาด memory

Coordinator (Multi-Agent)

Location: src/coordinator/

Orchestrate agents หลายตัวที่ทำงานพร้อมกันบนแง่มุมต่างๆ ของงาน

วิธีการทำงาน

  • coordinatorMode.ts จัดการ coordinator lifecycle
  • TeamCreateTool และ TeamDeleteTool จัดการทีม agents
  • SendMessageTool ช่วยให้ agents สื่อสารกันได้
  • AgentTool spawn sub-agents

Gate ไว้หลัง feature flag COORDINATOR_MODE


Voice System

Location: src/voice/

รองรับ voice input/output สำหรับ hands-free interaction

Components

ไฟล์Locationวัตถุประสงค์
Voice servicesrc/services/voice.tsCore voice processing
STT streamingsrc/services/voiceStreamSTT.tsSpeech-to-text streaming
Key termssrc/services/voiceKeyterms.tsDomain-specific vocabulary
Voice hookssrc/hooks/useVoice.ts, useVoiceEnabled.ts, useVoiceIntegration.tsxReact hooks
Voice commandsrc/commands/voice//voice slash command

Gate ไว้หลัง feature flag VOICE_MODE


Service Layer

Location: src/services/

External integrations และ shared services

ServicePathวัตถุประสงค์
APIapi/Anthropic SDK client, file uploads, bootstrap
MCPmcp/MCP client connections และ tool discovery
OAuthoauth/OAuth 2.0 authentication flow
LSPlsp/Language Server Protocol manager
Analyticsanalytics/GrowthBook feature flags, telemetry
Pluginsplugins/Plugin loader และ marketplace
Compactcompact/Conversation context compression
Policy LimitspolicyLimits/Organization rate limits/quota
Remote SettingsremoteManagedSettings/Enterprise managed settings sync
Token EstimationtokenEstimation.tsToken count estimation
Team MemoryteamMemorySync/Team knowledge synchronization
Tipstips/Contextual usage tips
Agent SummaryAgentSummary/Agent work summaries
Prompt SuggestionPromptSuggestion/Suggested follow-up prompts
Session MemorySessionMemory/Session-level memory
Magic DocsMagicDocs/Documentation generation
Auto DreamautoDream/Background ideation
x402x402/x402 payment protocol

ดูเพิ่มเติม

  • Architecture — วิธีที่ subsystems เชื่อมต่อใน core pipeline
  • Tools Reference — Tools ที่เกี่ยวข้องกับแต่ละ subsystem
  • Commands Reference — Commands สำหรับจัดการ subsystems
  • Exploration Guide — การค้นหา source code ของ subsystem
← Back to claudecodeanalysis