# Claude Code Advanced Setup Guide ## 🔧 Terminal環境との統合 ### tmux統合 ```bash # .tmux.conf に追加 bind-key c command-prompt -p "claude prompt:" "new-window 'claude \"%1\"'" bind-key C send-keys "claude " C-m # Claude Code専用のtmuxセッション alias claude-session='tmux new-session -s claude -d "claude --resume" \; attach' ``` ### Vim/Neovim統合 ```vim " .vimrc または init.vim " Claude Codeに現在のファイルを送る nnoremap cc :!claude "このコードをレビューして: $(cat %)" nnoremap ce :!claude "このエラーを解決して: $(cat %)" " 選択範囲をClaude Codeに送る vnoremap cs :w !claude "この部分を説明して" ``` ## 🤖 AI連携パターン ### 1. ChatGPT → Claude Code パイプライン ```bash # ChatGPTの会話ログをClaude Codeに渡す function ai-handoff() { local chatgpt_log="$1" claude "以下のChatGPTとの会話を踏まえて、実装を進めてください: $(cat $chatgpt_log)" } # 使用例 ai-handoff ~/chatgpt-logs/feature-design.md ``` ### 2. 複数AIの比較検証 ```bash # 同じプロンプトを複数のAIに送る function ai-compare() { local prompt="$1" echo "=== Claude Code ===" > ai-comparison.md claude "$prompt" >> ai-comparison.md echo -e "\n=== ChatGPT ===" >> ai-comparison.md # ChatGPT CLIがある場合 # chatgpt "$prompt" >> ai-comparison.md } ``` ## 🔌 MCP (Model Context Protocol) 活用 ### 基本的なMCPツール設定 ```json // ~/.claude/claude_desktop_config.json { "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"], "env": { "FILESYSTEM_ROOT": "/home/user/projects" } }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "your-token" } }, "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres"], "env": { "DATABASE_URL": "postgresql://localhost/mydb" } } } } ``` ### カスタムMCPサーバー例 ```python # custom-mcp-server.py import asyncio from mcp.server import Server from mcp.types import Tool, TextContent app = Server("custom-tools") @app.tool() async def search_codebase(query: str) -> TextContent: """コードベース全体を検索""" result = await asyncio.create_subprocess_exec( "rg", query, "--json", stdout=asyncio.subprocess.PIPE ) stdout, _ = await result.communicate() return TextContent(text=stdout.decode()) if __name__ == "__main__": app.run() ``` ## 🚀 実践的なワークフロー ### 1. ドキュメント駆動開発 ```bash # ChatGPTで設計 → Claude Codeで実装 function design-to-code() { local design_doc="$1" # 設計ドキュメントをCLAUDE.mdに追加 echo "## 設計仕様" >> CLAUDE.md cat "$design_doc" >> CLAUDE.md # Claude Codeセッション開始 claude "この設計に基づいて実装を開始してください" } ``` ### 2. エラー解決フロー ```bash # エラーログを自動的にClaude Codeに送る function debug-with-claude() { local error_log="/tmp/last-error.log" # エラーをキャプチャ "$@" 2> "$error_log" if [ $? -ne 0 ]; then claude "このエラーを解決してください: $(cat $error_log)" fi } # 使用例 debug-with-claude npm test ``` ### 3. コードレビュー自動化 ```bash # Git pre-commit hook #!/bin/bash # .git/hooks/pre-commit changed_files=$(git diff --cached --name-only) if [ -n "$changed_files" ]; then echo "$changed_files" | xargs cat | \ claude "これらの変更をレビューして、問題があれば指摘してください" fi ``` ## 🔧 Arch Linux / macOS 固有の設定 ### Arch Linux ```bash # AURヘルパーとの統合 function aur-with-claude() { local package="$1" yay -G "$package" cd "$package" claude "このPKGBUILDをレビューして、セキュリティ上の問題がないか確認してください" } ``` ### macOS ```bash # Homebrew formula作成支援 function brew-formula-helper() { local app_name="$1" claude "Homebrew formulaを作成してください: $app_name" } ``` ## 📊 パフォーマンス最適化 ### tmuxでの並列実行 ```bash # 複数のClaude Codeセッションを並列実行 function claude-parallel() { tmux new-session -d -s claude1 "claude 'タスク1を実行'" tmux new-session -d -s claude2 "claude 'タスク2を実行'" tmux new-session -d -s claude3 "claude 'タスク3を実行'" } ``` ### リソース監視 ```bash # Claude Code実行中のリソース使用状況を監視 function claude-monitor() { claude "$@" & local pid=$! while kill -0 $pid 2>/dev/null; do ps -p $pid -o %cpu,%mem,cmd sleep 1 done } ``` ## 🔐 セキュリティ考慮事項 1. **APIキーの管理** ```bash # 環境変数を使用 export ANTHROPIC_API_KEY="$(pass show anthropic/api-key)" ``` 2. **サンドボックス実行** ```bash # Firejailを使用 (Arch Linux) alias claude-safe='firejail --private claude' ``` 3. **監査ログ** ```bash # すべてのClaude Codeセッションを記録 alias claude='script -a ~/claude-logs/$(date +%Y%m%d-%H%M%S).log claude' ```