Claudeしたい(claude-code)
$ claude [options] [command] [prompt]
$ claude # セッションを開始
$ claude --continue # 最近のセッションを再開
$ claude --resume <id> # セッションIDを指定して再開
$ claude --print # 結果をターミナルに表示して終了(パイプ利用)
$ claude config list # 設定を確認
claudeコマンドで、Claudeのセッションを開始できます。
セッションの内容は~/.claude/の中に保存されるようで、
--resumeオプションで、過去のセッションから再開することもできます。
インストールしたい(claude-code)
$ brew install --cask claude-code
$ claude --version
1.0.98 (Claude Code)
// 自動更新をOFFにする
$ claude config set -g autoUpdates false
$ claude config get -g autoUpdates
// 手動で更新する
$ brew upgrade --cask claude-code
Homebrewでclaude-codeをインストールできます。
Homebrewで管理する場合は、Claudeの自動更新はOFFにして、手動で更新するほうがよいそうです。
注釈
claudeはデスクトップアプリ用、
claude-codeはCLI用のcaskのようです。
ターミナル入力で改行したい(/terminal-setup)
> /terminal-setup
⎿ Configured Terminal.app settings:
- Enabled "Use Option as Meta key"
- Switched to visual bell
Option+Enter will now enter a newline.
You must restart Terminal.app for changes to take effect. dark-ansi
/terminal-setupでClaudeセッション内で
改行(Option+Enter)できるようになります。
リポジトリの初期設定したい(/init)
> /init
/initで、プロジェクト内のファイルを確認し、適切なCLAUDE.mdを生成します。
既存のリポジトリで、すぐにClaudeによるサポート体制を組むことできます。
注釈
ある程度、形が整っているリポジトリだと非常にうまく移行できます。
まだ、整っていない場合でも README.md に、やりたいことなどを書きだしておくと、
それらを読み込み、より目的に近づいた設定ファイルを生成してくれます。
vimモードしたい(/vim)
> /vim
/vimで、Claudeセッションをnormalモードとvimモードに変更できます。
vimモードにすると、vimエディターのようにモーダル(NORMAL/INSERT)切り替えが有効になります。
権限管理したい(/permissions)
> /permissions
╭───────────────────────────────────────────────────────────────────────╮
│ Permissions: Allow Ask Deny Workspace │
│ │
│ Claude Code won't ask before using allowed tools. │
│ │
│ ❯ 1. Add a new rule… │
│ │
╰───────────────────────────────────────────────────────────────────────╯
Tab to select tab · Enter to confirm · Esc to cancel
セッション内で/permissionsコマンドを実行すると、Claudeの権限を設定できます。
Allow、Ask、Deny、WorkspaceをTABもしくは矢印キーで選択し、
表示されたダイアログにしたがって、操作対象を入力して設定します。
設定した内容は
プロジェクトのローカル設定(.claude/settings.local.json)、
プロジェクト設定(.claude/settings.json)、
ユーザー設定(~/.claude/settings.json)のいずれかに保存できます。
注釈
.claude/settings.jsonは、開発チーム全体で共有したいプロジェクト設定を記述するファイルです。
一方、.claude/settings.local.jsonは、チームには共有しない個人用設定です。
サブエージェントしたい(/agents)
> /agents
╭───────────────────────────────────────────────────────────────────────╮
│ Agents │
│ No agents found │
│ │
│ ❯ Create new agent │
│ │
│ No agents found. Create specialized subagents that Claude can │
│ delegate to. │
│ Each subagent has its own context window, custom system prompt, and │
│ specific tools. │
│ Try creating: Code Reviewer, Code Simplifier, Security Reviewer, Tech │
│ Lead, or UX Reviewer. │
│ │
│ │
│ Built-in (always available): │
│ general-purpose · sonnet │
│ statusline-setup · sonnet │
│ output-style-setup · sonnet │
│ │
╰───────────────────────────────────────────────────────────────────────╯
Press ↑↓ to navigate · Enter to select · Esc to go back
/agentsコマンドで、サブエージェントを追加できます。
サブエージェントの設定は
プロジェクト設定(.claude/agents/)、
ユーザー設定(~/.claude/agents/)のいずれかの中に保存できます。
ビルトインのサブエージェントとして、
general-purpose、
statusline-setup、
output-stype-setupが用意されているようです。
新規サブエージェントもダイアログにしたがって進めると、Claude自身が生成してくれます。 生成された内容をカスタマイズするのが推奨されています。
フックしたい(/hooks)
> /hooks
╭───────────────────────────────────────────────────────────────────────╮
│ Hook Configuration │
│ │
│ Hooks are shell commands you can register to run during Claude Code │
│ processing. Docs │
│ │
│ Select hook event: │
│ ❯ 1. PreToolUse - Before tool execution │
│ 2. PostToolUse - After tool execution │
│ 3. Notification - When notifications are sent │
│ 4. UserPromptSubmit - When the user submits a prompt │
│ ↓ 5. SessionStart - When a new session is started │
╰───────────────────────────────────────────────────────────────────────╯
Enter to acknowledge risks and continue · Esc to exit
/hooksコマンドで、Claudeの処理に合わせたフックを設定できます。
PreToolUse、
PostToolUse、
UserPromptSubmit,
Notification、
Stop、
SubagentStop、
PreCompact、
SessionStart,
SessionEndに対してフックを設定できます。
設定したい(.claude/settings.json)
{
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(uv:*)",
"Bash(task:*)",
"Bash(pytest:*)",
"Bash(ruff:*)",
"Bash(mkdocs:*)",
"Bash(glab:*)",
"Read",
"Glob",
"Grep",
"LS",
"Task",
"TodoWrite"
],
"ask": [
"Edit",
"Write",
"MultiEdit",
"Bash(git commit:*)"
]
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./**/.env)",
"Read(./**/.env.*)",
"Read(./secrets/**)",
"Bash(rm -rf:*)",
"Bash(git push -f:*)",
"Bash(git push --force:*)",
"Bash(sudo:*)",
"Bash(curl:*)"
],
"defaultMode": "default",
"additionalDirectories": [
"./docs/",
"./examples/"
]
},
"env": {
"PYTHONPATH": "src"
},
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write|MultiEdit",
"hooks": [
{
"type": "command",
"command": "task lint 2>/dev/null || true"
}
]
}
]
},
"includeCoAuthoredBy": false
}
Claudeの設定は
~/.claude/settings.jsonもしくは、
プロジェクトごとの(project_root)/.claude/settings.jsonで変更できます。
権限を管理したい(permissions)
{
"permissions": {
"allow": ["..."],
"deny": ["..."],
"defaultMode": "...",
"additionalDirectories": ["..."],
"disableBypassPermissionsMode": "..."
}
}
permissionsキーでClaudeが操作できる権限を設定できます。
サブキーとして
allow、
ask、
deny、
additionalDirectories、
defaultMode、
disableBypassPermissionsModeを設定できます。
許可したい(permissions.allow)
"allow": [
"Bash", // 全てのBashコマンド
"Bash(git:*)", // git関連コマンドのみ
"Read", // ファイル読み取り
"Glob", // パターン検索
"Grep", // 文字列検索
"LS", // ディレクトリ一覧
"Task", // タスク実行
"WebSearch", // Web検索
"TodoWrite" // TODO作成
]
allowキーにはClaudeによる使用を許可する操作をリスト形式で指定します。
Bashはすべてのbashコマンドを許可してしまうので、
askキーやdenyキーを適切に設定するか、
Bash(git:*)のようにコマンド名を限定するようにします。
注釈
Bash(uv:*)、Bash(glab:*)、Bash(task:*)のように、
プロジェクトごとに利用するコマンドを追加します。
確認したい(permissions.ask)
"ask": [
"Edit", // ファイル編集
"Write", // ファイル作成
"MultiEdit", // 複数ファイル編集
"WebFetch", // Web取得
]
askキーには、Claudeによる使用に確認を求める操作をリスト形式で指定します。
Edit、Write、MultiEditのようなファイルを編集する操作を追加しました
WebFetchも、意図しないサイトに勝手にアクセスしないように追加しています。
拒否したい(permissions.deny)
"deny": [
"Bash(curl:*)", // curl系コマンド拒否
"Bash(rm -rf:*)", // 危険な削除コマンド拒否
"Bash(git push -f:*)", // 危険な削除コマンド拒否
"Bash(git push --force:*)", // 危険な削除コマンド拒否
"Read(./.env)", // ルートの環境変数ファイル読み取り拒否
"Read(./.env.*)", // ルートの環境変数系ファイル拒否
"Read(./**/.env)", // サブディレクトリの環境変数ファイル読み取り拒否
"Read(./**/.env.*)", // サブディレクトリの環境変数系ファイル拒否
"Read(./secrets/**)", // secretsディレクトリ拒否
"Read(./config/credentials.json)", // 認証情報拒否
"WebFetch" // Web機能全体拒否
]
denyキーには、Claudeによる使用を拒否する操作をリスト形式で指定します。
rm -rfやgit push --forceのようにClaudeに実行されると困るコマンドを追加します。
また、.envにパスワードやAPIトークンなどの機密情報が含まれる場合は、Readできないようにしておきます。
注釈
Readできないようにすると、EditもWriteもできなくなります。
初回モード(permissions.defaultMode)
"defaultMode": "default" // 標準モード(初回確認)
"defaultMode": "acceptEdits" // 編集自動承認
"defaultMode": "plan" // 読み取り専用モード
defaultModeキーでClaudeを起動した時の権限モードを指定できます。
デフォルト値はacceptEditsになっているので、defaultを設定しておくとよいと思います。
読み取り専用で動作させたいプロジェクトではplanにします。
追加ディレクトリ(permissions.additionalDirectories)
"additionalDirectories": [
"./docs/", // ドキュメントディレクトリ
"~/shared/libraries/", // 共有ライブラリ
"/usr/local/bin/" // システムディレクトリ
]
additionalDirectoriesキーで、Claudeがアクセスできる場所を追加できます。
プロジェクトルートからの相対パス、もしくは絶対パスで指定します。
バイパスモード(permissions.disableBypassPermissionsMode)
"disableBypassPermissionsMode": "disable" // バイパスモード無効化
disableBypassPermissionsModeキーでバイパスモードを変更できます。
デフォルト値のdisableのままにしておくのがよいです。
フックしたい(hooks)
{
"hooks": {
"PreToolUse": [...], // ツール呼び出し前に実行
"PostToolUse": [...], // ツール呼び出し後に実行
"UserPromptSubmit": [...], // プロンプト送信後に実行(Claudeの処理前)
"Notification": [...], // Claudeの通知送信時に実行
"Stop": [...], // 応答終了時に実行
"SubagentStop": [...], // サブエージェントのタスク完了時に実行
"PreCompact": [...], // コンパクト操作する前に実行
"SessionStart": [...], // セッションを開始/再開するときに実行
"SessionEnd": [...], // セッション終了するときに実行
}
}