想定環境: Bash (Git Bash 含む)、zsh
Claude Code (claude コマンド) を意図しないディレクトリで起動すると、起動するだけでディレクトリ情報が ~/.claude.json や ~/.claude/projects に記録されてしまうし、普段のディレクトリと誤解して作業依頼までしてしまうとトークン量を無駄遣いしてしまいます。
そこで、以下のラッパー関数を ~/.bashrc や ~/.zshrc に書いておけば、claude と実行したときに許可ディレクトリならそのまま起動し、許可ディレクトリでないなら「本当に続行しますか?」と確認を挟むことができます。
~/.bashrc や ~/.zshrc に以下を追記
claude_allowed_dirs=(
# Claude Code 許可ディレクトリをここに書いておく
"${HOME}/aaa"
"${HOME}/bbb/ccc"
)
claude() {
local current_dir
current_dir=$(pwd)
for dir in "${claude_allowed_dirs[@]}"; do
[ "$current_dir" = "$dir" ] && { command claude "$@"; return; }
done
echo 'このディレクトリでは Claude Code の起動が想定されていません'
read -p '本当に続行しますか? (y/n): ' ans
[ "$ans" = 'y' ] || { echo '中止します'; return; }
command claude "$@"
}