Claude Codeの未文書化機能:フック、メモリ、YOLO分類器など

André FigueiraがClaude Codeのソースコード(v2.1.87)を読み、数十の未公開設定オプションを発見しました。公式ドキュメントは基本をカバーしていますが、実際のパッケージ(node_modules内で自由に検査可能)には、フック、エージェントメモリ、自動モードルールなどのフィールドが公開されています。以下は、今すぐ実際に設定できる項目です。
YOLO分類機: 平易な英語でアクションを自動承認
内部では「YOLO分類機」(yoloClassifier.ts)と呼ばれるこのシステムは、環境を平易な英語で記述することで、Claudeがどの操作を自動承認できるかを決定します。settings.jsonに、"これはステージングサーバーであり、破壊的操作は許容される"のような説明を追加すると、プロンプトなしで特定のアクションが許可されます。
実行中に挙動を変えるフック戻り値
フックは標準入力でJSONを受け取り、標準出力にイベント固有のJSONを返すことができます。主要な戻り値フィールドは以下の通りです:
- PreToolUse:
updatedInput(実行前にツール入力を書き換え)、permissionDecision(許可/拒否を強制)、permissionDecisionReason、additionalContext - SessionStart:
watchPaths(ファイル変更を自動監視してFileChangedイベントを発火)、initialUserMessage(最初のユーザーメッセージに前置するコンテンツ)、additionalContext - PostToolUse:
updatedMCPToolOutput、additionalContext - PermissionRequest:
decision(updatedInputまたはupdatedPermissionsによるプログラム的な許可/拒否)
例: すべてのgit pushコマンドに--dry-runを追加するPreToolUseフック。.claude/settings.json内:
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/dry-run-pushes.sh"
}]
}]
}
}~/.claude/hooks/dry-run-pushes.shのスクリプト:
#!/bin/bash INPUT=$(jq -r '.tool_input.command'これにより、実行前にコマンドが書き換えられます。これは未公開フィールドです。
セッションコンテキストとファイル監視
SessionStartフックはwatchPathsを設定してpackage.json、.env、tsconfig.jsonなどのファイルの変更を監視し、FileChangedイベントを発火させることができます。また、initialUserMessageを注入して、現在のgitブランチや未コミットの変更数などのコンテキストを前置することもできます。
ウォッチパスと初期メッセージを返すスクリプト例:
#!/bin/bash
BRANCH=$(git branch --show-current 2>/dev/null)
CHANGES=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
jq -n \
--arg branch "$BRANCH" \
--arg changes "$CHANGES" \
'{
"watchPaths": ["package.json", ".env", "tsconfig.json"],
"initialUserMessage": "Current branch: \($branch), uncommitted changes: \($changes)"
}'永続エージェントメモリと自動モードルール
エージェントメモリは、~/.claude/agents/ディレクトリのフィールドを使用してセッション間で永続化するように設定できます。自動モードルールは平易な英語のファイルに記述でき、Claudeにアクションを自動承認するタイミングを指示します。ソースコードはさらに、Claudeが自身の設定を洗練する「自己改善ドリームループ」を示唆しています。
ファイルの場所
- 設定:
~/.claude/settings.json(個人用)または.claude/settings.json(プロジェクト用、gitで共有可能) - スキル:
~/.claude/skills/<name>/SKILL.md(個人用)または.claude/skills/<name>/SKILL.md(プロジェクト用) - エージェント:
~/.claude/agents/<name>.md(個人用)または.claude/agents/<name>.md(プロジェクト用) - フックスクリプト: 慣例として
~/.claude/hooks/に配置し、実行可能にする(chmod +x)
これらは、文書化されたAPIを超えてClaude Codeをカスタマイズしたい開発者にとって実用的です。これらの機能はリリースごとに変更される可能性があります。
📖 全文ソース: HN AI Agents
👀 See Also

Audacity MCPサーバーがClaude AIに完全な音声編集制御を提供
開発者が、Claude AIをAudacityに接続するMCPサーバーを作成し、自然言語による音声編集コマンド用に99のツールを提供しています。このオープンソースツールは、Claude Desktop、Claude Code、またはCursorで動作します。

スニップツールは、AIコーディングエージェントとの視覚的コミュニケーションを可能にします。
Snipは、開発者がAIエージェントに視覚的に意図を伝えるためのスクリーンショット、注釈、描画を可能にする無料ツールです。エージェントはCLIやMCPを通じてダイアグラムを生成したり画像を直接読み込んだりできます。現在はApple Silicon Macで動作し、Mermaidダイアグラムをサポート、HTMLサポートは開発中です。

OpenClawインストール問題の解決方法
ユーザーはopenclaw.aiとopenclawd.aiの間でインストールの課題に直面し、それぞれ異なるセットアップコマンドを提供しています。

GrapeRoot: オープンソースツールがClaude Codeのトークン使用量を40-80%削減
GrapeRootは、コードベースとClaude Codeの間に位置する無料のオープンソースローカルMCPサーバーで、モデルが既に確認した内容を追跡し、関連するコード変更のみを送信することで、トークン使用量を40〜80%削減します。