add
This commit is contained in:
222
docs/advanced-setup.md
Normal file
222
docs/advanced-setup.md
Normal file
@ -0,0 +1,222 @@
|
||||
# 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 <leader>cc :!claude "このコードをレビューして: $(cat %)"<CR>
|
||||
nnoremap <leader>ce :!claude "このエラーを解決して: $(cat %)"<CR>
|
||||
|
||||
" 選択範囲をClaude Codeに送る
|
||||
vnoremap <leader>cs :w !claude "この部分を説明して"<CR>
|
||||
```
|
||||
|
||||
## 🤖 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'
|
||||
```
|
Reference in New Issue
Block a user