Claude Code 호환성 (Claude Code Compatibility)
관련 소스 파일
목적 및 범위 (Purpose and Scope)
Claude Code 호환성 계층은 ~/.claude/ 디렉토리 구조에서 기존 Claude Code 설정, 명령(commands), 스킬(skills), 에이전트(agents), MCP(Micro-Capability Provider) 서버 및 훅(hooks)을 로드하여 Claude Code에서 oh-my-opencode로의 원활한 마이그레이션을 가능하게 합니다. 이를 통해 사용자는 플랫폼을 전환할 때 수정 없이 기존의 사용자 정의 설정을 그대로 유지할 수 있습니다.
oh-my-opencode 전용 기능 설정에 대한 정보는 설정 시스템 (Configuration System)을 참조하십시오. 내장 에이전트 시스템에 대한 자세한 내용은 에이전트 시스템 (Agent System)을 참조하십시오.
아키텍처 개요 (Architecture Overview)
flowchart TD
ClaudeHome["~/.claude/"]
Settings["settings.json<br>settings.local.json"]
Commands["commands/*.md"]
Skills["skills/*/SKILL.md"]
Agents["agents/*.md"]
MCPs[".mcp.json"]
Todos["todos/*.json"]
Transcripts["transcripts/*.jsonl"]
ProjectRoot["./.claude/"]
ProjectSettings["settings.json<br>settings.local.json"]
ProjectCommands["commands/*.md"]
ProjectSkills["skills/*/SKILL.md"]
ProjectAgents["agents/*.md"]
ProjectMCPs[".mcp.json"]
HooksLoader["Hooks 로더"]
CommandLoader["명령 로더"]
SkillLoader["스킬 로더"]
AgentLoader["에이전트 로더"]
MCPLoader["MCP 로더"]
TodoManager["할 일 관리자"]
TranscriptLogger["기록 로거"]
EventDispatch["이벤트 디스패치 시스템"]
ToolRegistry["도구 레지스트리"]
AgentFactory["에이전트 팩토리"]
Settings -.-> HooksLoader
ProjectSettings -.-> HooksLoader
Commands -.-> CommandLoader
ProjectCommands -.-> CommandLoader
Skills -.-> SkillLoader
ProjectSkills -.-> SkillLoader
Agents -.-> AgentLoader
ProjectAgents -.-> AgentLoader
MCPs -.-> MCPLoader
ProjectMCPs -.-> MCPLoader
HooksLoader -.-> EventDispatch
CommandLoader -.-> ToolRegistry
SkillLoader -.-> ToolRegistry
AgentLoader -.-> AgentFactory
MCPLoader -.-> ToolRegistry
TodoManager -.-> Todos
TranscriptLogger -.-> Transcripts
EventDispatch -.-> TodoManager
EventDispatch -.-> TranscriptLogger
subgraph subGraph3 ["플러그인 코어 (Plugin Core)"]
EventDispatch
ToolRegistry
AgentFactory
end
subgraph subGraph2 ["호환성 계층 (Compatibility Layer)"]
HooksLoader
CommandLoader
SkillLoader
AgentLoader
MCPLoader
TodoManager
TranscriptLogger
end
subgraph subGraph1 ["프로젝트 디렉토리 구조"]
ProjectRoot
ProjectSettings
ProjectCommands
ProjectSkills
ProjectAgents
ProjectMCPs
ProjectRoot -.-> ProjectSettings
ProjectRoot -.-> ProjectCommands
ProjectRoot -.-> ProjectSkills
ProjectRoot -.-> ProjectAgents
ProjectRoot -.-> ProjectMCPs
end
subgraph subGraph0 ["Claude Code 디렉토리 구조"]
ClaudeHome
Settings
Commands
Skills
Agents
MCPs
Todos
Transcripts
ClaudeHome -.-> Settings
ClaudeHome -.-> Commands
ClaudeHome -.-> Skills
ClaudeHome -.-> Agents
ClaudeHome -.-> MCPs
ClaudeHome -.-> Todos
ClaudeHome -.-> Transcripts
end
디렉토리 로딩 우선순위
호환성 계층은 다음 우선순위에 따라 여러 위치에서 에셋을 로드합니다 (나중에 로드된 소스가 이전 소스를 덮어씁니다).
| 에셋 유형 | 사용자 수준 (User-Level) | 프로젝트 수준 (Project-Level) | 로컬 (Git 무시) |
|---|---|---|---|
| 훅 (Hooks) | ~/.claude/settings.json |
./.claude/settings.json |
./.claude/settings.local.json |
| 명령 (Commands) | ~/.claude/commands/*.md |
./.claude/commands/*.md |
- |
| 스킬 (Skills) | ~/.claude/skills/*/SKILL.md |
./.claude/skills/*/SKILL.md |
- |
| 에이전트 (Agents) | ~/.claude/agents/*.md |
./.claude/agents/*.md |
- |
| MCP | ~/.claude/.mcp.json |
./.mcp.json |
./.claude/.mcp.json |
설정 파일 위치 (Configuration File Locations)
flowchart TD
ProjectClaudeDir["./.claude/"]
ProjectSettings["settings.json"]
ProjectSettingsLocal["settings.local.json"]
ProjectCommands["commands/"]
ProjectSkills["skills/"]
ProjectAgents["agents/"]
ProjectMCP[".mcp.json"]
ProjectRoot["./.mcp.json"]
UserClaudeDir["~/.claude/"]
UserSettings["settings.json"]
UserCommands["commands/"]
UserSkills["skills/"]
UserAgents["agents/"]
UserMCP[".mcp.json"]
UserTodos["todos/"]
UserTranscripts["transcripts/"]
subgraph subGraph1 ["프로젝트 디렉토리"]
ProjectClaudeDir
ProjectSettings
ProjectSettingsLocal
ProjectCommands
ProjectSkills
ProjectAgents
ProjectMCP
ProjectRoot
ProjectClaudeDir -.-> ProjectSettings
ProjectClaudeDir -.-> ProjectSettingsLocal
ProjectClaudeDir -.-> ProjectCommands
ProjectClaudeDir -.-> ProjectSkills
ProjectClaudeDir -.-> ProjectAgents
end
subgraph subGraph0 ["사용자 홈 디렉토리"]
UserClaudeDir
UserSettings
UserCommands
UserSkills
UserAgents
UserMCP
UserTodos
UserTranscripts
UserClaudeDir -.-> UserSettings
UserClaudeDir -.-> UserCommands
UserClaudeDir -.-> UserSkills
UserClaudeDir -.-> UserAgents
UserClaudeDir -.-> UserMCP
UserClaudeDir -.-> UserTodos
UserClaudeDir -.-> UserTranscripts
end
호환성 계층은 사용자 수준(~/.claude/)과 프로젝트 수준(프로젝트 루트의 ./.claude/ 또는 ./.mcp.json) 디렉토리를 모두 스캔합니다. 프로젝트 수준 설정은 사용자 수준 기본값을 덮어쓰므로, 개인적인 선호도를 유지하면서 팀 전체의 표준을 적용할 수 있습니다.
에셋 로더 (Asset Loaders)
명령 로더 (Command Loader)
명령 로더는 4개의 디렉토리에서 마크다운 기반의 슬래시 명령(slash commands)을 찾아 도구 레지스트리에 병합합니다.
flowchart TD
ClaudeUserCommands["~/.claude/commands/*.md"]
ClaudeProjectCommands["./.claude/commands/*.md"]
OpenCodeUserCommands["~/.config/opencode/command/*.md"]
OpenCodeProjectCommands["./.opencode/command/*.md"]
MarkdownParser["마크다운 파서"]
FrontmatterExtractor["프론트매터 추출기"]
CommandRegistry["명령 레지스트리"]
ToolRegistry["도구 레지스트리"]
SlashCommands["슬래시 명령"]
ClaudeUserCommands -.-> MarkdownParser
ClaudeProjectCommands -.-> MarkdownParser
OpenCodeUserCommands -.-> MarkdownParser
OpenCodeProjectCommands -.-> MarkdownParser
CommandRegistry -.-> ToolRegistry
subgraph subGraph2 ["도구 통합"]
ToolRegistry
SlashCommands
ToolRegistry -.-> SlashCommands
end
subgraph subGraph1 ["명령 파서"]
MarkdownParser
FrontmatterExtractor
CommandRegistry
MarkdownParser -.-> FrontmatterExtractor
FrontmatterExtractor -.-> CommandRegistry
end
subgraph subGraph0 ["명령 검색"]
ClaudeUserCommands
ClaudeProjectCommands
OpenCodeUserCommands
OpenCodeProjectCommands
end
명령 파일은 메타데이터를 위한 선택적 프론트매터(frontmatter)가 포함된 마크다운 문서입니다. 각 명령은 에이전트가 호출할 수 있는 슬래시 명령(예: /command-name)으로 사용할 수 있게 됩니다.
명령 파일 형식:
---
name: example-command
description: Example command description
---
Command instructions go here...
스킬 로더 (Skill Loader)
스킬(Skills)은 스킬의 동작을 정의하는 SKILL.md 파일이 포함된 디렉토리 기반의 기능입니다.
flowchart TD
UserSkills["~/.claude/skills/*/SKILL.md"]
ProjectSkills["./.claude/skills/*/SKILL.md"]
SkillDir["skill-name/"]
SkillMD["SKILL.md"]
SkillAssets["추가 파일"]
SkillParser["스킬 파서"]
SkillRegistry["스킬 레지스트리"]
SkillTool["스킬 도구"]
UserSkills -.-> SkillParser
ProjectSkills -.-> SkillParser
SkillMD -.-> SkillParser
subgraph subGraph2 ["스킬 등록"]
SkillParser
SkillRegistry
SkillTool
SkillParser -.-> SkillRegistry
SkillRegistry -.-> SkillTool
end
subgraph subGraph1 ["스킬 구조"]
SkillDir
SkillMD
SkillAssets
SkillDir -.-> SkillMD
SkillDir -.-> SkillAssets
end
subgraph subGraph0 ["스킬 검색"]
UserSkills
ProjectSkills
end
각 스킬 디렉토리에는 지침이 담긴 SKILL.md 파일이 포함되어 있으며, 스킬에서 참조하는 추가 파일이 포함될 수 있습니다. 스킬은 스킬 이름과 인수를 전달하는 skill 도구를 통해 호출됩니다.
디렉토리 구조 예시:
~/.claude/skills/
├── code-review/
│ └── SKILL.md
├── test-generator/
│ └── SKILL.md
└── documentation/
└── SKILL.md
에이전트 로더 (Agent Loader)
사용자 정의 에이전트는 마크다운 파일에서 로드되어 에이전트 팩토리에 통합됩니다.
flowchart TD
UserAgents["~/.claude/agents/*.md"]
ProjectAgents["./.claude/agents/*.md"]
AgentMD["agent-name.md"]
AgentMetadata["프론트매터 메타데이터"]
AgentPrompt["에이전트 지침"]
AgentParser["에이전트 파서"]
AgentFactory["에이전트 팩토리"]
CustomAgents["사용자 정의 에이전트"]
UserAgents -.-> AgentParser
ProjectAgents -.-> AgentParser
AgentMetadata -.-> AgentParser
AgentPrompt -.-> AgentParser
subgraph subGraph2 ["에이전트 등록"]
AgentParser
AgentFactory
CustomAgents
AgentParser -.-> AgentFactory
AgentFactory -.-> CustomAgents
end
subgraph subGraph1 ["에이전트 정의"]
AgentMD
AgentMetadata
AgentPrompt
AgentMD -.-> AgentMetadata
AgentMD -.-> AgentPrompt
end
subgraph subGraph0 ["에이전트 검색"]
UserAgents
ProjectAgents
end
사용자 정의 에이전트는 내장 에이전트 시스템(oracle, librarian, explore 등)을 프로젝트별 또는 사용자별 에이전트로 확장합니다. 에이전트 파일은 에이전트의 모델, 도구, 권한 및 지침을 정의합니다.
에이전트 파일 형식:
---
name: custom-agent
model: anthropic/claude-sonnet-4-5
temperature: 0.7
tools: [read, write, bash]
---
Custom agent instructions...
MCP 로더 (MCP Loader)
MCP(Micro-Capability Provider) 로더는 외부 MCP 서버를 검색하고 등록합니다.
flowchart TD
UserMCP["~/.claude/.mcp.json"]
ProjectRootMCP["./.mcp.json"]
ProjectClaudeMCP["./.claude/.mcp.json"]
MCPConfig["MCP 설정"]
EnvVars["환경 변수"]
ServerDefinitions["서버 정의"]
MCPParser["MCP 파서"]
EnvExpander["환경 변수 확장기"]
MCPRegistry["MCP 레지스트리"]
ExternalTools["외부 MCP 도구"]
UserMCP -.-> MCPParser
ProjectRootMCP -.-> MCPParser
ProjectClaudeMCP -.-> MCPParser
ServerDefinitions -.-> EnvExpander
EnvVars -.-> EnvExpander
subgraph subGraph2 ["MCP 통합"]
MCPParser
EnvExpander
MCPRegistry
ExternalTools
MCPParser -.-> EnvExpander
EnvExpander -.-> MCPRegistry
MCPRegistry -.-> ExternalTools
end
subgraph subGraph1 ["MCP 설정"]
MCPConfig
EnvVars
ServerDefinitions
MCPConfig -.-> EnvVars
MCPConfig -.-> ServerDefinitions
end
subgraph subGraph0 ["MCP 검색"]
UserMCP
ProjectRootMCP
ProjectClaudeMCP
end
MCP 설정 파일은 추가 기능을 제공하는 외부 서비스를 정의합니다. 로더는 ${VAR} 구문을 사용한 환경 변수 확장을 지원합니다.
MCP 설정 형식:
{
"mcpServers": {
"custom-service": {
"command": "node",
"args": ["${HOME}/mcp-servers/custom/index.js"],
"env": {
"API_KEY": "${CUSTOM_SERVICE_API_KEY}"
}
}
}
}
훅 시스템 (Hooks System)
훅 유형 및 이벤트 (Hook Types and Events)
flowchart TD
PreToolUse["PreToolUse"]
PostToolUse["PostToolUse"]
UserPromptSubmit["UserPromptSubmit"]
Stop["Stop"]
Settings["settings.json"]
Matcher["훅 매처<br>(정규식 패턴)"]
HookActions["훅 액션"]
EventDispatch["이벤트 디스패치"]
HookRunner["훅 러너"]
CommandExec["명령 실행"]
BlockAction["액션 차단"]
InjectContext["컨텍스트 주입"]
PreToolUse -.-> EventDispatch
PostToolUse -.-> EventDispatch
UserPromptSubmit -.-> EventDispatch
Stop -.-> EventDispatch
Matcher -.-> HookRunner
HookActions -.-> HookRunner
subgraph subGraph2 ["훅 실행"]
EventDispatch
HookRunner
CommandExec
BlockAction
InjectContext
EventDispatch -.-> HookRunner
HookRunner -.-> CommandExec
HookRunner -.-> BlockAction
HookRunner -.-> InjectContext
end
subgraph subGraph1 ["훅 설정"]
Settings
Matcher
HookActions
Settings -.-> Matcher
Settings -.-> HookActions
end
subgraph subGraph0 ["훅 이벤트"]
PreToolUse
PostToolUse
UserPromptSubmit
Stop
end
훅 시스템은 네 가지 주요 이벤트를 가로챕니다.
| 이벤트 | 시점 | 기능 |
|---|---|---|
PreToolUse |
도구 실행 전 | 실행 차단, 도구 입력 수정 |
PostToolUse |
도구 실행 후 | 경고 추가, 컨텍스트 주입 |
UserPromptSubmit |
사용자가 프롬프트를 제출할 때 | 제출 차단, 메시지 주입 |
Stop |
세션이 유휴 상태가 될 때 | 후속 프롬프트 주입 |
훅 실행 흐름 (Hook Execution Flow)
sequenceDiagram
participant p1 as 에이전트
participant p2 as 이벤트 시스템
participant p3 as 훅 로더
participant p4 as 훅 러너
participant p5 as 파일 시스템
p1->>p2: 이벤트 트리거 (예: tool.execute)
p2->>p3: 이벤트 유형에 대한 훅 로드
p3->>p5: ~/.claude/settings.json 읽기
p3->>p5: ./.claude/settings.json 읽기
p3->>p5: ./.claude/settings.local.json 읽기
p5-->>p3: 훅 설정 정보
p3-->>p2: 등록된 훅
p2->>p4: 일치하는 훅 실행
loop 각 훅에 대해
p4->>p4: 매처 패턴 확인
alt 매처 일치 시
p4->>p4: 훅 액션 실행
alt 명령 훅
p4->>p5: 쉘 명령 실행
p5-->>p4: 명령 출력
end
alt 차단 훅
p4-->>p2: 이벤트 차단
end
alt 주입 훅
p4-->>p2: 컨텍스트 주입
end
end
end
p4-->>p2: 훅 결과
p2-->>p1: 계속 또는 차단
훅은 설정 파일에 정의된 순서대로 실행됩니다. 로컬 설정(./.claude/settings.local.json)은 프로젝트 설정을 덮어쓰고, 프로젝트 설정은 사용자 설정을 덮어씁니다.
훅 설정 예시:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "eslint --fix $FILE"
}
]
}
],
"PreToolUse": [
{
"matcher": "bash",
"hooks": [
{
"type": "block",
"message": "Bash execution requires approval"
}
]
}
]
}
}
훅 변수 (Hook Variables)
훅은 동적 명령 실행을 위해 변수 치환을 지원합니다.
| 변수 | 설명 | 사용 가능 위치 |
|---|---|---|
$FILE |
도구의 영향을 받는 파일 경로 | PostToolUse (Write, Edit) |
$TOOL |
실행 중인 도구 이름 | PreToolUse, PostToolUse |
$ARGS |
도구 인수 (JSON) | PreToolUse, PostToolUse |
$CWD |
현재 작업 디렉토리 | 모든 훅 |
$SESSION_ID |
현재 세션 식별자 | 모든 훅 |
데이터 스토리지 (Data Storage)
할 일 관리 (Todo Management)
flowchart TD
TodoCreate["할 일 생성"]
TodoStore["~/.claude/todos/"]
TodoFile["session-id.json"]
TodoUpdate["할 일 업데이트"]
TodoComplete["할 일 완료"]
TodoJSON["할 일 JSON"]
TodoItems["할 일 항목"]
TodoMetadata["메타데이터"]
SisyphusAgent["Sisyphus 에이전트"]
TodoEnforcer["할 일 연속성 강제 도구"]
SessionState["세션 상태"]
SisyphusAgent -.-> TodoCreate
TodoUpdate -.-> TodoEnforcer
TodoEnforcer -.-> TodoComplete
TodoItems -.-> SessionState
TodoMetadata -.-> SessionState
subgraph Integration ["통합"]
SisyphusAgent
TodoEnforcer
SessionState
end
subgraph subGraph1 ["할 일 구조"]
TodoJSON
TodoItems
TodoMetadata
TodoJSON -.-> TodoItems
TodoJSON -.-> TodoMetadata
end
subgraph subGraph0 ["할 일 수명 주기"]
TodoCreate
TodoStore
TodoFile
TodoUpdate
TodoComplete
TodoCreate -.-> TodoStore
TodoStore -.-> TodoFile
TodoFile -.-> TodoUpdate
end
세션 할 일(todos)은 ~/.claude/todos/에 세션당 하나의 JSON 파일로 저장됩니다. 이 형식은 Claude Code와 호환되므로 플랫폼 간 원활한 전환이 가능합니다.
할 일 파일 형식:
{
"sessionId": "abc123",
"createdAt": "2025-01-01T00:00:00Z",
"updatedAt": "2025-01-01T00:30:00Z",
"items": [
{
"id": "1",
"description": "Implement feature X",
"status": "in_progress",
"createdAt": "2025-01-01T00:00:00Z"
}
]
}
기록 로깅 (Transcript Logging)
flowchart TD
UserMessage["사용자 메시지"]
AgentMessage["에이전트 메시지"]
ToolExecution["도구 실행"]
ToolResults["도구 결과"]
TranscriptLogger["기록 로거"]
TranscriptFile["~/.claude/transcripts/<br>session-id.jsonl"]
JSONLFormat["JSONL 형식"]
TranscriptReader["기록 리더"]
SessionReconstruction["세션 재구성"]
AnalysisTools["분석 도구"]
UserMessage -.-> TranscriptLogger
AgentMessage -.-> TranscriptLogger
ToolExecution -.-> TranscriptLogger
ToolResults -.-> TranscriptLogger
JSONLFormat -.-> TranscriptReader
subgraph subGraph2 ["재생 및 분석"]
TranscriptReader
SessionReconstruction
AnalysisTools
TranscriptReader -.-> SessionReconstruction
TranscriptReader -.-> AnalysisTools
end
subgraph subGraph1 ["기록 시스템"]
TranscriptLogger
TranscriptFile
JSONLFormat
TranscriptLogger -.-> TranscriptFile
TranscriptFile -.-> JSONLFormat
end
subgraph subGraph0 ["세션 활동"]
UserMessage
AgentMessage
ToolExecution
ToolResults
end
세션 활동은 ~/.claude/transcripts/에 JSONL(JSON Lines) 형식으로 기록되며, 각 줄은 단일 이벤트를 나타냅니다. 이를 통해 세션 재생, 디버깅 및 분석이 가능합니다.
기록 항목 형식:
{"type":"user_message","timestamp":"2025-01-01T00:00:00Z","content":"Implement feature X"}
{"type":"agent_message","timestamp":"2025-01-01T00:00:10Z","content":"I'll create the implementation..."}
{"type":"tool_execution","timestamp":"2025-01-01T00:00:15Z","tool":"write","args":{"path":"src/feature.ts"}}
{"type":"tool_result","timestamp":"2025-01-01T00:00:16Z","tool":"write","result":"File written"}
출처: README.md L639
설정 토글 (Configuration Toggles)
flowchart TD
ClaudeCodeConfig["claude_code"]
MCPToggle["mcp: true/false"]
CommandsToggle["commands: true/false"]
SkillsToggle["skills: true/false"]
AgentsToggle["agents: true/false"]
HooksToggle["hooks: true/false"]
MCPLoader["MCP 로더"]
CommandLoader["명령 로더"]
SkillLoader["스킬 로더"]
AgentLoader["에이전트 로더"]
HooksLoader["Hooks 로더"]
MCPToggle -.->|"비활성화"| MCPLoader
CommandsToggle -.-> CommandLoader
SkillsToggle -.-> SkillLoader
AgentsToggle -.-> AgentLoader
HooksToggle -.-> HooksLoader
subgraph subGraph1 ["로더 동작"]
MCPLoader
CommandLoader
SkillLoader
AgentLoader
HooksLoader
end
subgraph subGraph0 ["설정 객체"]
ClaudeCodeConfig
MCPToggle
CommandsToggle
SkillsToggle
AgentsToggle
HooksToggle
ClaudeCodeConfig -.->|"비활성화"| MCPToggle
ClaudeCodeConfig -.->|"비활성화"| CommandsToggle
ClaudeCodeConfig -.->|"비활성화"| SkillsToggle
ClaudeCodeConfig -.-> AgentsToggle
ClaudeCodeConfig -.->|"비활성화"| HooksToggle
end
claude_code 설정 객체는 활성화할 호환성 기능을 세밀하게 제어할 수 있게 해줍니다.
| 토글 | false일 때 |
영향받지 않음 |
|---|---|---|
mcp |
~/.claude/.mcp.json, ./.mcp.json, ./.claude/.mcp.json 로드 중단 |
내장 MCP (context7, websearch_exa, grep_app) |
commands |
~/.claude/commands/*.md, ./.claude/commands/*.md 로드 중단 |
~/.config/opencode/command/, ./.opencode/command/ |
skills |
~/.claude/skills/*/SKILL.md, ./.claude/skills/*/SKILL.md 로드 중단 |
- |
agents |
~/.claude/agents/*.md, ./.claude/agents/*.md 로드 중단 |
내장 에이전트 (oracle, librarian, explore 등) |
hooks |
~/.claude/settings.json, ./.claude/settings.json, ./.claude/settings.local.json 로드 중단 |
- |
설정 예시:
{
"claude_code": {
"mcp": false,
"commands": false,
"skills": false,
"agents": false,
"hooks": false
}
}
모든 토글의 기본값은 true(활성화)입니다. claude_code 객체를 생략하면 전체 호환성이 활성화됩니다. 이를 통해 사용자는 oh-my-opencode 전용 기능을 유지하면서 Claude Code 기능을 선택적으로 비활성화할 수 있습니다.
파일 경로 확인 (File Path Resolution)
호환성 계층은 플랫폼별 경로를 사용하여 설정 파일을 찾습니다.
| 플랫폼 | 사용자 설정 디렉토리 | 예시 |
|---|---|---|
| Linux/macOS | ~/.claude/ |
/home/user/.claude/ |
| Windows | ~/.claude/ 또는 %USERPROFILE%\.claude\ |
C:\Users\user\.claude\ |
프로젝트 수준 설정은 항상 워크스페이스 루트를 기준으로 확인합니다.
- 프로젝트별 재정의를 위한
./.claude/ - 프로젝트 루트 MCP 설정을 위한
./.mcp.json
출처: README.md L586-L632 src/shared/config-path.ts L1-L48
마이그레이션 전략 (Migration Strategy)
Claude Code에서 마이그레이션하는 사용자를 위한 전략은 다음과 같습니다.
- 조치 불필요: 기존
~/.claude/설정이 자동으로 검색되고 로드됩니다. - 점진적 마이그레이션: 호환성 토글을 사용하여 oh-my-opencode 전용 기능으로 점진적으로 전환합니다.
- 병행 운영: Claude Code와 oh-my-opencode 모두 동일한
~/.claude/디렉토리 구조를 공유할 수 있습니다. - 프로젝트 격리: 팀의 공유 설정에 영향을 주지 않고 프로젝트별 재정의를 위해
./.claude/settings.local.json을 사용합니다.
호환성 계층은 oh-my-opencode의 향상된 기능으로 나아가는 경로를 제공하는 동시에 가동 중단 없는 마이그레이션을 보장합니다.