【完全版】Claude Codeの隠れた神機能!Hooks・カスタムコマンド・音声連携で開発効率を10倍にする方法
もう手動作業なんてしてられない!
「タスク終わったら音を鳴らして教えて」
「PR作成の手順、毎回同じなのに手動でやってる」
「音声で指示出せたら楽なのに...」
そんな悩み、全部解決できます。
tonkotsuboyさん(@tonkotsuboy_com)がFindy Claude Code Meetupで発表した内容を元に、Claude Codeの真の力を解き放つ方法をお伝えします。
🎪 今回紹介する5つの神機能
- Hooks - タスク前後の自動処理
- カスタムスラッシュコマンド - 定型処理の高速化
- MCP連携 - 外部システムとの統合
- Aqua Voice - 音声でAIに指示
- Kiro × Claude Code - 設計と実装の最強タッグ
それでは、一つずつ詳しく見ていきましょう!
🪝 Hooks:タスクの前後で魔法を起こす
Hooksって何?
Claude Codeの様々なイベント(ツール使用前後、ユーザープロンプト送信時など)で、任意のシェルコマンドを自動実行できる機能です。
実例1:タスク完了を音で通知
tonkotsuboyさんの設定がこちら:
// ~/.claude/settings.json
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "afplay /Users/takeshi.kano/.claude/buhi.m4a"
}
]
}
]
}
}
なんと、タスク完了時に「ブヒー」という音が鳴るんです!
実例2:自動コードフォーマット
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "npm run format && npm run lint:fix"
}
]
}
]
}
}
タスク終了時に自動でフォーマットとLint修正が走ります。もう手動でやる必要なし!
実例3:作業ログの自動記録
{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "echo \"[$(date)] プロンプト送信\" >> ~/.claude/work.log"
}
]
}
],
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "echo \"[$(date)] タスク完了\" >> ~/.claude/work.log"
}
]
}
]
}
}
応用例:チーム通知
{
"hooks": {
"Stop": [
{
"matcher": "PR作成",
"hooks": [
{
"type": "command",
"command": "curl -X POST https://slack.com/api/chat.postMessage -H 'Authorization: Bearer $SLACK_TOKEN' -d 'channel=#dev-team&text=PR作成完了!'"
}
]
}
]
}
}
🚀 カスタムスラッシュコマンド:定型処理を瞬殺
カスタムスラッシュコマンドの威力
毎回同じプロンプトを書いてませんか?3回以上使うならコマンド化しましょう!
実例1:PR作成の完全自動化
tonkotsuboyさんの実例:
# ~/.claude/commands/create-pr.md
---
name: create-pr
description: PR作成を自動化
---
## Description
このコマンドは以下の作業を自動で実行します:
1. `npm run format` でPrettierフォーマットを実行
2. 変更内容を適切な粒度でコミットに分割
3. GitHub PRを作成
## Implementation
prettierをかけたあと、適切な粒度でコミットし、PRを作って
使い方:
> /create-pr
# → 自動でフォーマット、コミット、PR作成が完了!
実例2:テスト駆動開発コマンド
# ~/.claude/commands/tdd.md
---
name: tdd
description: TDDサイクルを実行
---
## Implementation
1. 失敗するテストを書く
2. テストをパスする最小限のコードを書く
3. リファクタリング
4. カバレッジレポートを生成
現在のファイルに対してTDDサイクルを実行してください。
実例3:リリースノート生成
# ~/.claude/commands/release-notes.md
---
name: release-notes
description: リリースノートを自動生成
---
## Implementation
1. 前回のリリースタグから現在までのコミットを取得
2. feat:, fix:, perf: などのプレフィックスでグループ化
3. CHANGELOG.mdに追記
4. 日本語でユーザー向けの説明を生成
git log --oneline $(git describe --tags --abbrev=0)..HEAD を解析して、
わかりやすいリリースノートを作成してください。
プロジェクト固有コマンド
# .claude/commands/deploy-staging.md
---
name: deploy-staging
description: ステージング環境にデプロイ
scope: project
---
## Implementation
1. テストを実行(失敗したら中止)
2. ビルド
3. ステージング環境にデプロイ
4. Slackに通知
以下のコマンドを順番に実行:
- npm test
- npm run build
- npm run deploy:staging
- curl -X POST $SLACK_WEBHOOK -d '{"text":"ステージングデプロイ完了"}'
🔌 MCP(Model Context Protocol):外部システムとの魔法の架け橋
MCPで何ができる?
Claude Codeを外部システムと直接連携させることができます。
実例1:Puppeteerでブラウザ自動操作
> PuppeteerでGitHubのPRに画像をアップロードして
Claude Codeが自動でブラウザを操作して画像をアップロード!
実例2:外部システムとの連携
MCPを使えば、様々な外部システムと連携できます。例えば:
- Puppeteerでブラウザ操作
- データベースへの直接アクセス
- 外部APIとの通信
詳細はMCP公式ドキュメントを参照してください。
実例3:o3との相談(UltraThink連携)
tonkotsuboyさんの活用例:
> 本リポジトリのパフォーマンス改善のためにできることは何? o3と相談しながら深く考えて
Claude CodeがUltraThinkモードでo3 MCPと連携し、深い分析を実行!
自作MCPの例
Ubie社のデザインシステムMCP:
- デザイントークンの自動取得
- コンポーネント仕様の参照
- スタイルガイドの適用
// MCPサーバーの例
export const server = {
tools: {
getDesignToken: {
description: "デザイントークンを取得",
inputSchema: {
type: "object",
properties: {
tokenName: { type: "string" }
}
},
handler: async ({ tokenName }) => {
// デザインシステムからトークンを取得
return await fetchDesignToken(tokenName);
}
}
}
};
🎙️ Aqua Voice連携:声でコーディング
Aqua Voiceとは?
高精度な日本語音声認識サービス。「あー」「えー」も自動補正してくれる優れもの。
実例:音声でタスク実行
# 音声入力
「このコンポーネントにローディング状態を追加して、
スケルトンスクリーンを表示するようにして」
# Claude Codeが理解して実装
> ローディング状態とスケルトンスクリーンを実装しました
メリット
- ⌨️ タイピングより速い
- 🎯 自然な日本語で指示できる
- 🚀 アイデアを即座に実装
デメリット
- 😅 オフィスだとちょっと恥ずかしい
- 🔇 静かな環境が必要
🏗️ Kiro × Claude Code:設計と実装の最強タッグ
Kiroの強みとClaude Codeの強み
ツール | 強み | 弱み |
---|---|---|
Kiro | 詳細な設計書作成 | 実装が遅い |
Claude Code | 爆速実装 | 設計が甘いことも |
実践フロー
-
Kiroで設計
対話形式で要件定義 → 詳細設計書生成
-
設計書をClaude Codeに投入
> /read task.md > この設計書通りに実装して
-
爆速で実装完了
実例:タスク管理アプリ
Kiroが生成した設計書の一部:
# タスク管理アプリケーション設計
## アーキテクチャ
- Frontend: Next.js 14 (App Router)
- State: Zustand
- Styling: Tailwind CSS
## コンポーネント構造
- TaskList
- TaskItem
- Checkbox
- Title
- DueDate
- TaskForm
- Input fields
- Validation
これをClaude Codeに渡すだけで、30分で基本機能が完成!
💡 組み合わせ技:究極の自動化フロー
朝のルーティンを完全自動化
// Hooks + カスタムコマンド + MCP
{
"hooks": {
"Start": [
{
"matcher": "/morning",
"hooks": [
{
"type": "command",
"command": "say 'おはようございます。今日も頑張りましょう'"
}
]
}
]
}
}
# ~/.claude/commands/morning.md
---
name: morning
description: 朝のルーティン
---
1. git pullで最新を取得
2. npm installで依存関係を更新
3. テストを実行
4. 昨日のPRのレビューコメントを確認
5. 今日のタスクリストを表示
6. Slackのメンションを確認(MCP経由)
リリース作業の完全自動化
# .claude/commands/release.md
---
name: release
description: リリース作業を自動化
---
1. テストを実行
2. ビルド
3. リリースノート生成
4. タグ付け
5. デプロイ
6. Slack通知(Hooks経由で音も鳴らす)
🎓 導入のベストプラクティス
1. 段階的に導入
Week 1: Hooksで簡単な自動化
Week 2: よく使うコマンドをカスタム化
Week 3: MCPで外部連携
Week 4: 音声入力を試す
2. チームで共有
# チーム共有リポジトリ
team-claude-configs/
├── hooks/
│ └── standard-hooks.json
├── commands/
│ ├── pr-create.md
│ ├── deploy.md
│ └── test-coverage.md
└── README.md
3. 効果測定
// 作業時間の計測Hook
{
"hooks": {
"Start": [{
"command": "echo START:$(date +%s) >> ~/.claude/metrics.log"
}],
"Stop": [{
"command": "echo STOP:$(date +%s) >> ~/.claude/metrics.log"
}]
}
}
🚨 注意点とトラブルシューティング
よくある失敗
-
Hooksの無限ループ
// ❌ 悪い例 { "hooks": { "Change": [{ "command": "git add ." // これが更にChangeを発火 }] } }
-
コマンドの肥大化
# ❌ 悪い例:1つのコマンドに詰め込みすぎ /do-everything # ✅ 良い例:適切に分割 /format /test /deploy
-
MCPの過度な依存
- 外部サービスがダウンしたら?
- レート制限は?
- フォールバック処理を用意
🎯 まとめ:あなたも「タスク丸投げおじさん」になろう!
tonkotsuboyさんが自称する「Claude Codeにタスク丸投げおじさん」。
これは決して怠慢ではありません。本質的な仕事に集中するための賢い選択です。
今すぐ始められること
-
まずはHooksで音を鳴らしてみる
{"hooks": {"Stop": [{"command": "say 完了しました"}]}}
-
よく使うコマンドを1つ作る
mkdir -p ~/.claude/commands echo "テストを実行して" > ~/.claude/commands/test.md
-
MCPを1つ試す
npm install -g @modelcontextprotocol/server-puppeteer
これらの機能を使いこなせば、あなたの開発効率は確実に10倍になります。
さあ、今すぐClaude Codeを開いて、最初のHookを設定してみましょう!
🔗 参考リンク
- Claude Code Hooks公式ドキュメント
- カスタムスラッシュコマンド
- MCP (Model Context Protocol)
- Aqua Voice
- Kiro
- tonkotsuboyさんのZenn記事
次回予告: 「Claude Code × GitHub Actions で実現する完全自動CI/CD」
それでは、Happy Coding with Claude! 🚀
Discussion