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

ローカル深層研究ツールの現状:GPT Researcherとローカル深層研究がリード、STORMとLangChainプロジェクトは停滞
2026年5月時点のローカルディープリサーチプロジェクトに関するReddit調査では、GPT ResearcherとLearningCircuitのLocal Deep Researchが最も活発で、STORMとLangChainのOpen Deep Researchは放棄または半放棄状態であることが判明しました。

git-prism v0.9.0: MCPを通じてAIコーディングエージェントに構造化された差分を提供
git-prismは、AIコーディングエージェントに生のgit diffテキストの代わりに構造化JSONを提供するMCPサーバーです。v0.9.0ではPATHレベルのインターセプトを実装し、サブプロセスやghコマンドもキャッチします。

テザー:SQLiteを介してAIモデル間でコンテキストを共有するためのMCPサーバー
Tetherは、JSONデータを28バイトのコンテンツアドレス付きハンドルに圧縮するオープンソースツールで、複数のAIモデルが共有SQLiteデータベースを通じてコンテキストを共有できるようにします。MCPサーバーとして機能し、ClaudeやMiniMaxなどのモデル間でコピー&ペーストなしに直接通信を可能にします。

Agents Elements: Claude Code & CodexインストールのためのmacOSダッシュボード
ネイティブSwiftUI製のmacOSアプリで、~/.claudeと~/.codexをスキャンし、インストール済みのスキル、サブエージェント、コマンド、プラグイン、MCPサーバー、フック、セッション状況とトークン使用量を表示します。