SDK ã§ Claude Code æ©èœã䜿çšãã
ãããžã§ã¯ãæç€ºãã¹ãã«ãããã¯ããã®ä»ã® Claude Code æ©èœã SDK ãšãŒãžã§ã³ãã«èªã¿èŸŒã¿ãŸãã
Agent SDK 㯠Claude Code ãšåãåºç€ã®äžã«æ§ç¯ãããŠãããããSDK ãšãŒãžã§ã³ãã¯åããã¡ã€ã«ã·ã¹ãã ããŒã¹ã®æ©èœã«ã¢ã¯ã»ã¹ã§ããŸãããããžã§ã¯ãæç€ºïŒCLAUDE.md ãšã«ãŒã«ïŒãã¹ãã«ãããã¯ããã®ä»ã®æ©èœã§ãã
settingSources ãçç¥ãããšãquery() 㯠Claude Code CLI ãšåããã¡ã€ã«ã·ã¹ãã èšå®ãèªã¿èŸŒã¿ãŸãããŠãŒã¶ãŒããããžã§ã¯ããããŒã«ã«èšå®ãCLAUDE.md ãã¡ã€ã«ã.claude/ ã¹ãã«ããšãŒãžã§ã³ããã³ãã³ãã§ããããããªãã§å®è¡ããã«ã¯ãsettingSources: [] ãæž¡ããŸããããã«ããããšãŒãžã§ã³ãã¯ããã°ã©ã ã§èšå®ãããã®ã«éå®ãããŸãããããŒãžãããªã·ãŒèšå®ãšã°ããŒãã« ~/.claude.json èšå®ã¯ããã®ãªãã·ã§ã³ã«é¢ä¿ãªãèªã¿èŸŒãŸããŸããsettingSources ãå¶åŸ¡ããªããã®ãåç
§ããŠãã ããã
åæ©èœã®æŠå¿µçãªæŠèŠãšäœ¿çšææã«ã€ããŠã¯ãClaude Code ãæ¡åŒµãããåç §ããŠãã ããã
settingSources ã§ãã¡ã€ã«ã·ã¹ãã èšå®ãå¶åŸ¡ãã
èšå®ãœãŒã¹ãªãã·ã§ã³ïŒPython ã§ã¯ setting_sourcesãTypeScript ã§ã¯ settingSourcesïŒã¯ãSDK ãèªã¿èŸŒããã¡ã€ã«ã·ã¹ãã ããŒã¹ã®èšå®ãå¶åŸ¡ããŸããç¹å®ã®ãœãŒã¹ã«ãªããã€ã³ããããã®æç€ºçãªãªã¹ããæž¡ããããŠãŒã¶ãŒããããžã§ã¯ããããŒã«ã«èšå®ãç¡å¹ã«ããããã®ç©ºã®é
åãæž¡ããŸãã
ãã®äŸã§ã¯ãsettingSources ã ["user", "project"] ã«èšå®ããŠããŠãŒã¶ãŒã¬ãã«ãšãããžã§ã¯ãã¬ãã«ã®äž¡æ¹ã®èšå®ãèªã¿èŸŒã¿ãŸãã
from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage
async for message in query(
prompt="Help me refactor the auth module",
options=ClaudeAgentOptions(
# "user" loads from ~/.claude/, "project" loads from ./.claude/ in cwd.
# Together they give the agent access to CLAUDE.md, skills, hooks, and
# permissions from both locations.
setting_sources=["user", "project"],
allowed_tools=["Read", "Edit", "Bash"],
),
):
if isinstance(message, AssistantMessage):
for block in message.content:
if hasattr(block, "text"):
print(block.text)
if isinstance(message, ResultMessage) and message.subtype == "success":
print(f"\nResult: {message.result}")
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Help me refactor the auth module",
options: {
// "user" loads from ~/.claude/, "project" loads from ./.claude/ in cwd.
// Together they give the agent access to CLAUDE.md, skills, hooks, and
// permissions from both locations.
settingSources: ["user", "project"],
allowedTools: ["Read", "Edit", "Bash"]
}
})) {
if (message.type === "assistant") {
for (const block of message.message.content) {
if (block.type === "text") console.log(block.text);
}
}
if (message.type === "result" && message.subtype === "success") {
console.log(`\nResult: ${message.result}`);
}
}
åãœãŒã¹ã¯ç¹å®ã®å Žæããèšå®ãèªã¿èŸŒã¿ãŸãã<cwd> 㯠cwd ãªãã·ã§ã³çµç±ã§æž¡ãäœæ¥ãã£ã¬ã¯ããªã§ãïŒèšå®ãããŠããªãå Žåã¯ããã»ã¹ã®çŸåšã®ãã£ã¬ã¯ããªïŒãå®å
šãªåå®çŸ©ã«ã€ããŠã¯ãSettingSourceïŒTypeScriptïŒãŸã㯠SettingSourceïŒPythonïŒãåç
§ããŠãã ããã
| ãœãŒã¹ | èªã¿èŸŒããã® | å Žæ |
|---|---|---|
"project" |
ãããžã§ã¯ã CLAUDE.mdã.claude/rules/*.mdããããžã§ã¯ãã¹ãã«ããããžã§ã¯ãããã¯ããããžã§ã¯ã settings.json |
<cwd>/.claude/ ããã³å芪ãã£ã¬ã¯ããªïŒ.claude/ ãèŠã€ããã芪ããªããªããŸã§ãã¡ã€ã«ã·ã¹ãã ã«ãŒããŸã§ïŒ |
"user" |
ãŠãŒã¶ãŒ CLAUDE.mdã~/.claude/rules/*.mdããŠãŒã¶ãŒã¹ãã«ããŠãŒã¶ãŒèšå® |
~/.claude/ |
"local" |
CLAUDE.local.mdïŒgitignoredïŒã.claude/settings.local.json |
<cwd>/ |
settingSources ãçç¥ããããšã¯ ["user", "project", "local"] ãšåçã§ãã
cwd ãªãã·ã§ã³ã¯ãSDK ããããžã§ã¯ãèšå®ãæ¢ãå Žæã決å®ããŸããcwd ãŸãã¯ãã®èŠªãã£ã¬ã¯ããªã®ãããã«ã .claude/ ãã©ã«ããå«ãŸããŠããªãå Žåããããžã§ã¯ãã¬ãã«ã®æ©èœã¯èªã¿èŸŒãŸããŸããã
settingSources ãå¶åŸ¡ããªããã®
settingSources ã¯ãŠãŒã¶ãŒããããžã§ã¯ããããŒã«ã«èšå®ãã«ããŒããŸãããã®å€ã«é¢ä¿ãªãèªã¿èŸŒãŸããããã€ãã®å
¥åããããŸãã
| å ¥å | åäœ | ç¡å¹ã«ããã«ã¯ |
|---|---|---|
| ãããŒãžãããªã·ãŒèšå® | ãã¹ãã«ååšããå Žåã¯åžžã«èªã¿èŸŒãŸããŸã | ãããŒãžãèšå®ãã¡ã€ã«ãåé€ããŸã |
~/.claude.json ã°ããŒãã«èšå® |
åžžã«èªã¿èŸŒãŸããŸã | env ã® CLAUDE_CONFIG_DIR ã§åé
眮ããŸã |
~/.claude/projects/<project>/memory/ ã®èªåã¡ã¢ãª |
ããã©ã«ãã§ã¯ã·ã¹ãã ããã³ããã«èªã¿èŸŒãŸããŸã | èšå®ã§ autoMemoryEnabled: false ãèšå®ããããenv ã§ CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 ãèšå®ããŸã |
ãã«ãããã³ãåé¢ã®ããã«ããã©ã«ãã® query() ãªãã·ã§ã³ã«äŸåããªãã§ãã ãããäžèšã®å
¥å㯠settingSources ã«é¢ä¿ãªãèªã¿èŸŒãŸãããããSDK ããã»ã¹ã¯ãã¹ãã¬ãã«ã®èšå®ãšãã£ã¬ã¯ããªããšã®ã¡ã¢ãªãååŸã§ããŸãããã«ãããã³ãå±éã®å Žåã¯ãåããã³ããç¬èªã®ãã¡ã€ã«ã·ã¹ãã ã§å®è¡ããsettingSources: [] ãš env ã§ CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 ãèšå®ããŸããã»ãã¥ã¢ãªå±éãåç
§ããŠãã ããã
ãããžã§ã¯ãæç€ºïŒCLAUDE.md ãšã«ãŒã«ïŒ
CLAUDE.md ãã¡ã€ã«ãš .claude/rules/*.md ãã¡ã€ã«ã¯ããšãŒãžã§ã³ãã«ãããžã§ã¯ãã«é¢ããæ°žç¶çãªã³ã³ããã¹ããæäŸããŸããã³ãŒãã£ã³ã°èŠçŽããã«ãã³ãã³ããã¢ãŒããã¯ãã£ã®æ±ºå®ãæç€ºã§ããsettingSources ã« "project" ãå«ãŸããŠããå ŽåïŒäžèšã®äŸã®ããã«ïŒãSDK ã¯ã»ãã·ã§ã³éå§æã«ãããã®ãã¡ã€ã«ãã³ã³ããã¹ãã«èªã¿èŸŒã¿ãŸãããã®åŸããšãŒãžã§ã³ãã¯ãããžã§ã¯ãèŠçŽã«åŸãããã¹ãŠã®ããã³ããã§ç¹°ãè¿ãå¿
èŠããããŸããã
CLAUDE.md èªã¿èŸŒã¿å Žæ
| ã¬ãã« | å Žæ | èªã¿èŸŒãŸãããšã |
|---|---|---|
| ãããžã§ã¯ãïŒã«ãŒãïŒ | <cwd>/CLAUDE.md ãŸã㯠<cwd>/.claude/CLAUDE.md |
settingSources ã« "project" ãå«ãŸãã |
| ãããžã§ã¯ãã«ãŒã« | <cwd>/.claude/rules/*.md |
settingSources ã« "project" ãå«ãŸãã |
| ãããžã§ã¯ãïŒèŠªãã£ã¬ã¯ããªïŒ | cwd ããäžã®ãã£ã¬ã¯ããªã® CLAUDE.md ãã¡ã€ã« |
settingSources ã« "project" ãå«ãŸããã»ãã·ã§ã³éå§æã«èªã¿èŸŒãŸããŸã |
| ãããžã§ã¯ãïŒåãã£ã¬ã¯ããªïŒ | cwd ã®ãµããã£ã¬ã¯ããªã® CLAUDE.md ãã¡ã€ã« |
settingSources ã« "project" ãå«ãŸãããšãŒãžã§ã³ãããã®ãµãããªãŒã®ãã¡ã€ã«ãèªã¿èŸŒããšãã«ãªã³ããã³ãã§èªã¿èŸŒãŸããŸã |
| ããŒã«ã«ïŒgitignoredïŒ | <cwd>/CLAUDE.local.md |
settingSources ã« "local" ãå«ãŸãã |
| ãŠãŒã¶ãŒ | ~/.claude/CLAUDE.md |
settingSources ã« "user" ãå«ãŸãã |
| ãŠãŒã¶ãŒã«ãŒã« | ~/.claude/rules/*.md |
settingSources ã« "user" ãå«ãŸãã |
ãã¹ãŠã®ã¬ãã«ã¯å ç®çã§ãããããžã§ã¯ããšãŠãŒã¶ãŒã®äž¡æ¹ã® CLAUDE.md ãã¡ã€ã«ãååšããå ŽåããšãŒãžã§ã³ãã¯äž¡æ¹ãèŠãŸããã¬ãã«éã«å³å¯ãªåªå é äœã«ãŒã«ã¯ãããŸãããæç€ºãç«¶åããå Žåãçµæã¯ Claude ãããããã©ã®ããã«è§£éãããã«äŸåããŸããç«¶åããªãã«ãŒã«ãèšè¿°ããããããå ·äœçãªãã¡ã€ã«ã§åªå é äœãæç€ºçã«è¿°ã¹ãŸãïŒããããã®ãããžã§ã¯ãæç€ºã¯ãç«¶åãããŠãŒã¶ãŒã¬ãã«ã®ããã©ã«ãããªãŒããŒã©ã€ãããŸããïŒã
systemPrompt çµç±ã§ã³ã³ããã¹ããçŽæ¥æ³šå
¥ããããšãã§ããŸããCLAUDE.md ãã¡ã€ã«ã䜿çšããå¿
èŠã¯ãããŸãããã·ã¹ãã ããã³ããã倿Žãããåç
§ããŠãã ãããCLAUDE.md ã¯ãåãã³ã³ããã¹ããã€ã³ã¿ã©ã¯ãã£ã㪠Claude Code ã»ãã·ã§ã³ãš SDK ãšãŒãžã§ã³ãéã§å
±æãããå Žåã«äœ¿çšããŸãã
CLAUDE.md ã³ã³ãã³ãã®æ§é ãšæŽçæ¹æ³ã«ã€ããŠã¯ãClaude ã®ã¡ã¢ãªã管çãããåç §ããŠãã ããã
ã¹ãã«
ã¹ãã«ã¯ããšãŒãžã§ã³ãã«å°éç¥èãšåŒã³åºãå¯èœãªã¯ãŒã¯ãããŒãæäŸããããŒã¯ããŠã³ãã¡ã€ã«ã§ããCLAUDE.mdïŒãã¹ãŠã®ã»ãã·ã§ã³ã§èªã¿èŸŒãŸããïŒãšã¯ç°ãªããã¹ãã«ã¯ãªã³ããã³ãã§èªã¿èŸŒãŸããŸãããšãŒãžã§ã³ãã¯ã¹ã¿ãŒãã¢ããæã«ã¹ãã«ã®èª¬æãåãåããé¢é£ãããšãã«å®å
šãªã³ã³ãã³ããèªã¿èŸŒã¿ãŸãã
ã¹ãã«ã¯ settingSources ãéããŠãã¡ã€ã«ã·ã¹ãã ããæ€åºãããŸããããã©ã«ããªãã·ã§ã³ã§ã¯ããŠãŒã¶ãŒãšãããžã§ã¯ãã®ã¹ãã«ãèªåçã«èªã¿èŸŒãŸããŸããallowedTools ãæå®ããªãå ŽåãSkill ããŒã«ã¯ããã©ã«ãã§æå¹ã«ãªããŸããallowedTools èš±å¯ãªã¹ãã䜿çšããŠããå Žåã¯ã"Skill" ãæç€ºçã«å«ããŸãã
from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage
# Skills in .claude/skills/ are discovered automatically
# when settingSources includes "project"
async for message in query(
prompt="Review this PR using our code review checklist",
options=ClaudeAgentOptions(
setting_sources=["user", "project"],
allowed_tools=["Skill", "Read", "Grep", "Glob"],
),
):
if isinstance(message, ResultMessage) and message.subtype == "success":
print(message.result)
import { query } from "@anthropic-ai/claude-agent-sdk";
// Skills in .claude/skills/ are discovered automatically
// when settingSources includes "project"
for await (const message of query({
prompt: "Review this PR using our code review checklist",
options: {
settingSources: ["user", "project"],
allowedTools: ["Skill", "Read", "Grep", "Glob"]
}
})) {
if (message.type === "result" && message.subtype === "success") {
console.log(message.result);
}
}
ã¹ãã«ã¯ãã¡ã€ã«ã·ã¹ãã ã¢ãŒãã£ãã¡ã¯ãïŒ.claude/skills/<name>/SKILL.mdïŒãšããŠäœæããå¿
èŠããããŸããSDK ã«ã¯ã¹ãã«ãç»é²ããããã®ããã°ã©ããã£ã㯠API ããããŸããã詳现ã«ã€ããŠã¯ãSDK ã®ãšãŒãžã§ã³ãã¹ãã«ãåç
§ããŠãã ããã
ã¹ãã«ã®äœæãšäœ¿çšã®è©³çްã«ã€ããŠã¯ãSDK ã®ãšãŒãžã§ã³ãã¹ãã«ãåç §ããŠãã ããã
ããã¯
SDK 㯠2 ã€ã®æ¹æ³ã§ããã¯ãå®çŸ©ããããšããµããŒãããŠããããããã¯äžŠè¡ããŠå®è¡ãããŸãã
- ãã¡ã€ã«ã·ã¹ãã ããã¯ïŒ
settings.jsonã§å®çŸ©ãããã·ã§ã«ã³ãã³ããsettingSourcesã«é¢é£ãããœãŒã¹ãå«ãŸããŠããå Žåã«èªã¿èŸŒãŸããŸãããããã¯ã€ã³ã¿ã©ã¯ãã£ã㪠Claude Code ã»ãã·ã§ã³çšã«èšå®ããã®ãšåãããã¯ã§ãã - ããã°ã©ããã£ãã¯ããã¯ïŒ
query()ã«çŽæ¥æž¡ãããã³ãŒã«ããã¯é¢æ°ããããã¯ã¢ããªã±ãŒã·ã§ã³ããã»ã¹ã§å®è¡ãããæ§é åãããæ±ºå®ãè¿ãããšãã§ããŸããããã¯ã§å®è¡ãå¶åŸ¡ãããåç §ããŠãã ããã
äž¡æ¹ã®ã¿ã€ãã¯åãããã¯ã©ã€ããµã€ã¯ã«äžã«å®è¡ãããŸãããããžã§ã¯ãã® .claude/settings.json ã«ããã¯ãæ¢ã«ãããsettingSources: ["project"] ãèšå®ããŠããå Žåããããã®ããã¯ã¯è¿œå ã®èšå®ãªãã§ SDK ã§èªåçã«å®è¡ãããŸãã
ããã¯ã³ãŒã«ããã¯ã¯ããŒã«å
¥åãåãåããæ±ºå®èŸæžãè¿ããŸãã{} ïŒç©ºã®èŸæžïŒãè¿ãããšã¯ããŒã«ã®å®è¡ãèš±å¯ããããšãæå³ããŸãã{"decision": "block", "reason": "..."} ãè¿ãããšã¯å®è¡ãé²ããçç±ã¯ Claude ã«ããŒã«çµæãšããŠéä¿¡ãããŸããå®å
šãªã³ãŒã«ããã¯çœ²åãšæ»ãå€ã®åã«ã€ããŠã¯ãããã¯ã¬ã€ããåç
§ããŠãã ããã
from claude_agent_sdk import query, ClaudeAgentOptions, HookMatcher, ResultMessage
# PreToolUse hook callback. Positional args:
# input_data: HookInput dict with tool_name, tool_input, hook_event_name
# tool_use_id: str | None, the ID of the tool call being intercepted
# context: HookContext, carries session metadata
async def audit_bash(input_data, tool_use_id, context):
command = input_data.get("tool_input", {}).get("command", "")
if "rm -rf" in command:
return {"decision": "block", "reason": "Destructive command blocked"}
return {} # Empty dict: allow the tool to proceed
# Filesystem hooks from .claude/settings.json run automatically
# when settingSources loads them. You can also add programmatic hooks:
async for message in query(
prompt="Refactor the auth module",
options=ClaudeAgentOptions(
setting_sources=["project"], # Loads hooks from .claude/settings.json
hooks={
"PreToolUse": [
HookMatcher(matcher="Bash", hooks=[audit_bash]),
]
},
),
):
if isinstance(message, ResultMessage) and message.subtype == "success":
print(message.result)
import { query, type HookInput, type HookJSONOutput } from "@anthropic-ai/claude-agent-sdk";
// PreToolUse hook callback. HookInput is a discriminated union on
// hook_event_name, so narrowing on it gives TypeScript the right
// tool_input shape for this event.
const auditBash = async (input: HookInput): Promise<HookJSONOutput> => {
if (input.hook_event_name !== "PreToolUse") return {};
const toolInput = input.tool_input as { command?: string };
if (toolInput.command?.includes("rm -rf")) {
return { decision: "block", reason: "Destructive command blocked" };
}
return {}; // Empty object: allow the tool to proceed
};
// Filesystem hooks from .claude/settings.json run automatically
// when settingSources loads them. You can also add programmatic hooks:
for await (const message of query({
prompt: "Refactor the auth module",
options: {
settingSources: ["project"], // Loads hooks from .claude/settings.json
hooks: {
PreToolUse: [{ matcher: "Bash", hooks: [auditBash] }]
}
}
})) {
if (message.type === "result" && message.subtype === "success") {
console.log(message.result);
}
}
ã©ã®ããã¯ã¿ã€ãã䜿çšããã
| ããã¯ã¿ã€ã | æé©ãªçšé |
|---|---|
ãã¡ã€ã«ã·ã¹ãã ïŒsettings.jsonïŒ |
CLI ãš SDK ã»ãã·ã§ã³éã§ããã¯ãå
±æããŸãã"command"ïŒã·ã§ã«ã¹ã¯ãªããïŒã"http"ïŒãšã³ããã€ã³ããžã® POSTïŒã"mcp_tool"ïŒæ¥ç¶ããã MCP ãµãŒããŒã®ããŒã«ãåŒã³åºãïŒã"prompt"ïŒLLM ãããã³ãããè©äŸ¡ããïŒã"agent"ïŒæ€èšŒãšãŒãžã§ã³ããçæããïŒããµããŒãããŸãããããã¯ã¡ã€ã³ãšãŒãžã§ã³ããšãããçæãããµããšãŒãžã§ã³ãã§å®è¡ãããŸãã |
ããã°ã©ããã£ã㯠ïŒquery() ã®ã³ãŒã«ããã¯ïŒ |
ã¢ããªã±ãŒã·ã§ã³åºæã®ããžãã¯ãæ§é åãããæ±ºå®ãè¿ããããã»ã¹å çµ±åãã¡ã€ã³ã»ãã·ã§ã³ã®ã¿ã«ã¹ã³ãŒããããŸãã |
TypeScript SDK 㯠Python ãè¶
ãã远å ã®ããã¯ã€ãã³ãããµããŒãããŠãããSessionStartãSessionEndãTeammateIdleãTaskCompleted ãå«ãŸããŸããå®å
šãªã€ãã³ãäºææ§ããŒãã«ã«ã€ããŠã¯ãããã¯ã¬ã€ããåç
§ããŠãã ããã
ããã°ã©ããã£ãã¯ããã¯ã®è©³çްã«ã€ããŠã¯ãããã¯ã§å®è¡ãå¶åŸ¡ãããåç §ããŠãã ããããã¡ã€ã«ã·ã¹ãã ããã¯æ§æã«ã€ããŠã¯ãããã¯ãåç §ããŠãã ããã
é©åãªæ©èœãéžæãã
Agent SDK ã¯ããšãŒãžã§ã³ãã®åäœãæ¡åŒµããããã€ãã®æ¹æ³ãžã®ã¢ã¯ã»ã¹ãæäŸããŸããã©ãã䜿çšãããäžç¢ºããªå Žåããã®ããŒãã«ã¯äžè¬çãªç®æšãæ£ããã¢ãããŒãã«ãããããŸãã
| å®çŸãããããš | äœ¿çš | SDK ãµãŒãã§ã¹ |
|---|---|---|
| ãšãŒãžã§ã³ããåžžã«åŸããããžã§ã¯ãèŠçŽãèšå®ãã | CLAUDE.md | settingSources: ["project"] ããããèªåçã«èªã¿èŸŒã¿ãŸã |
| ãšãŒãžã§ã³ããé¢é£ãããšãã«èªã¿èŸŒãåèè³æãæäŸãã | ã¹ãã« | settingSources + allowedTools: ["Skill"] |
| åå©çšå¯èœãªã¯ãŒã¯ãããŒïŒãããã€ãã¬ãã¥ãŒããªãªãŒã¹ïŒãå®è¡ãã | ãŠãŒã¶ãŒåŒã³åºãå¯èœã¹ãã« | settingSources + allowedTools: ["Skill"] |
| åé¢ããããµãã¿ã¹ã¯ïŒç ç©¶ãã¬ãã¥ãŒïŒãæ°ããã³ã³ããã¹ãã«å§è²ãã | ãµããšãŒãžã§ã³ã | agents ãã©ã¡ãŒã¿ + allowedTools: ["Agent"] |
| å ±æã¿ã¹ã¯ãªã¹ããšçŽæ¥çãªãšãŒãžã§ã³ãéã¡ãã»ãŒãžã³ã°ã§è€æ°ã® Claude Code ã€ã³ã¹ã¿ã³ã¹ã調æŽãã | ãšãŒãžã§ã³ãããŒã | SDK ãªãã·ã§ã³çµç±ã§çŽæ¥èšå®ãããŸããããšãŒãžã§ã³ãããŒã 㯠CLI æ©èœã§ã1 ã€ã®ã»ãã·ã§ã³ãããŒã ãªãŒããšããŠæ©èœããç¬ç«ããããŒã ã¡ã€ãéã§äœæ¥ã調æŽããŸã |
| ããŒã«åŒã³åºãã§æ±ºå®è«çããžãã¯ãå®è¡ããïŒç£æ»ããããã¯ãå€æïŒ | ãã㯠| hooks ãã©ã¡ãŒã¿ãšã³ãŒã«ããã¯ããŸã㯠settingSources çµç±ã§èªã¿èŸŒãŸããã·ã§ã«ã¹ã¯ãªãã |
| Claude ã«å€éšãµãŒãã¹ãžã®æ§é åããŒã«ã¢ã¯ã»ã¹ãæäŸãã | MCP | mcpServers ãã©ã¡ãŒã¿ |
ãµããšãŒãžã§ã³ã察ãšãŒãžã§ã³ãããŒã ïŒ ãµããšãŒãžã§ã³ãã¯äžæçã§åé¢ãããŠããŸããæ°ããäŒè©±ã1 ã€ã®ã¿ã¹ã¯ã芪ã«è¿ãããèŠçŽããšãŒãžã§ã³ãããŒã ã¯ãã¿ã¹ã¯ãªã¹ããå ±æããçŽæ¥ã¡ãã»ãŒãžãéãåãè€æ°ã®ç¬ç«ãã Claude Code ã€ã³ã¹ã¿ã³ã¹ã調æŽããŸãããšãŒãžã§ã³ãããŒã 㯠CLI æ©èœã§ãã詳现ã«ã€ããŠã¯ããµããšãŒãžã§ã³ããç¶æ¿ãããã®ãšãšãŒãžã§ã³ãããŒã æ¯èŒãåç §ããŠãã ããã
æå¹ã«ããæ©èœããšã«ããšãŒãžã§ã³ãã®ã³ã³ããã¹ããŠã£ã³ããŠã«è¿œå ãããŸããæ©èœããšã®ã³ã¹ããšãããã®æ©èœãã©ã®ããã«å±€ç¶ã«é 眮ããããã«ã€ããŠã¯ãClaude Code ãæ¡åŒµãããåç §ããŠãã ããã
é¢é£ãªãœãŒã¹
- Claude Code ãæ¡åŒµããïŒãã¹ãŠã®æ¡åŒµæ©èœã®æŠå¿µçãªæŠèŠãæ¯èŒããŒãã«ãã³ã³ããã¹ãã³ã¹ãåæ
- SDK ã®ã¹ãã«ïŒã¹ãã«ãããã°ã©ã ã§äœ¿çšããããã®å®å šãªã¬ã€ã
- ãµããšãŒãžã§ã³ãïŒåé¢ããããµãã¿ã¹ã¯çšã®ãµããšãŒãžã§ã³ããå®çŸ©ããŠåŒã³åºã
- ããã¯ïŒäž»èŠãªå®è¡ãã€ã³ãã§ãšãŒãžã§ã³ãã®åäœãã€ã³ã¿ãŒã»ããããŠå¶åŸ¡ãã
- æš©éïŒã¢ãŒããã«ãŒã«ãã³ãŒã«ããã¯ã§ããŒã«ã¢ã¯ã»ã¹ãå¶åŸ¡ãã
- ã·ã¹ãã ããã³ããïŒCLAUDE.md ãã¡ã€ã«ãªãã§ã³ã³ããã¹ããæ³šå ¥ãã