Claude Codeを使い始めた頃、 settings.jsonにどう書けばいいか分からない まま放置していました。

放置していても普通に動くから、 「とりあえず後でいいや」 と思っていたのですが、実はここを整えるだけで 毎日の作業時間が地味に短くなる ことに気づいたのが先月。

非エンジニア視点で「これだけ入れておけば9割楽になる」設定を6つに絞って共有します。

まず — settings.jsonとCLAUDE.mdは別物

混同しやすいので最初に整理します。

ファイル

役割

settings.json

Claude Codeの 動作設定(言語、権限、Hooks、MCPサーバーなど)

CLAUDE.md

プロジェクト固有の 指示書(ルール、用語、口調、文脈)

「動作のチューニング」が settings.json、「依頼内容の常駐指示」がCLAUDE.md。役割が違うので、両方を書く前提で考えます。

CLAUDE.mdの書き方は別記事で扱っているので、今日はsettings.jsonに専念します。

設定ファイルの階層 — 3つを使い分ける

settings.jsonは 3つの場所 に書けます。

場所

用途

優先度

~/.claude/settings.json

自分専用のグローバル設定

<プロジェクト>/.claude/settings.json

チームで共有する設定

<プロジェクト>/.claude/settings.local.json

自分専用のプロジェクト固有設定

最高

迷ったら、 個人用は ~/.claude/settings.json、チーム共有は .claude/settings.json、自分のローカル上書きは .claude/settings.local.json という棲み分けがシンプル。

settings.local.json.gitignore に追加しておく前提です(個人設定をリポジトリに上げない)。

設定1 — 言語を日本語に固定

最初に入れるべきはこれ。

{
  "language": "japanese"
}

Claude Codeはデフォルトだと、たまに英語で返してくることがあります。これを書いておくと 常に日本語応答 になります。

地味ながら、業務効率が 5%くらい上がる 設定。「英語で返ってきたから日本語にしてもらう」という1往復が消えるのが大きい。

設定2 — $schema で補完を有効化

これは見落とされがちですが、 後でハマらないために重要

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json"
}

VS Codeなどのエディタで .claude/settings.json を開いた時、 設定キーの補完とバリデーション が効くようになります。

タイプミスで設定キーを間違えても、即座に赤線で教えてくれる。私もこれを入れていなかった頃、 permissionspermission(複数形忘れ)と書いて30分悩んだことがあります。

設定3 — 自動更新をstableチャネルに

毎日のように出るアップデートを、自動で当ててほしい場合。

{
  "autoUpdatesChannel": "stable"
}

stable を指定すると 安定版のみ自動取得。テスター気質の人は latest でもいいですが、業務で使うなら stable が無難です。

不要な手動アップデートが消えるので、 作業の中断が減る 効果があります。

設定4 — 権限の事前承認(permissions.allow)

ここが効率にもっとも影響します。

{
  "permissions": {
    "allow": [
      "Bash(npm install:*)",
      "Bash(npm run build:*)",
      "Bash(git status)",
      "Bash(git diff:*)",
      "Read(~/.claude/**)",
      "Edit(./src/**)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(git push:*)",
      "Edit(./.env*)"
    ]
  }
}

allow に書いたコマンド・操作は、 毎回承認を求められずに自動実行 されます。 deny に書いたものは絶対に実行されません。

毎日叩くコマンド(npm install, git status, ファイル読み込みなど)を allow に入れておくと、 承認ダイアログが減って作業のテンポが上がる

逆に git push.env 書き換えなど、 危険な操作deny に入れて、絶対に通らないようにしておくのが安全。

設定5 — Hooksで作業終了時の自動処理

Hooksは 特定のイベント が起きたときに自動でコマンドを実行する仕組み。

代表例として、セッション終了時に会話ログを自動保存する設定。

{
  "hooks": {
    "Stop": [
      {
        "matcher": ".*",
        "hooks": [
          {
            "type": "command",
            "command": "/export ~/Documents/claude-logs/$(date +%Y-%m-%d-%H%M).md"
          }
        ]
      }
    ]
  }
}

これで claude を終了するたびに、Markdownの会話ログが自動生成されます。 業務記録が勝手に積み上がる ので、月末の振り返りや引き継ぎ資料に使える。

他にも PostToolUse(ツール実行後)、 PreToolUse(ツール実行前)、 Notification(通知時)など複数のフックポイントがあります。

設定6 — MCPサーバーの登録

MCP(Model Context Protocol)サーバーを使うと、Claude Codeから 外部サービス を直接操作できます。

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "NOTION_TOKEN": "ntn_xxxxxxxxxxxx"
      },
      "alwaysLoad": true
    },
    "figma": {
      "transport": "http",
      "url": "https://mcp.figma.com/mcp"
    }
  }
}

毎日使うMCPサーバー(Notion・Figma・GSCなど)は、 alwaysLoad: true を付けると 起動直後から即座に呼べる 状態になります(v2.1.121以降の機能)。

Notion MCPやFigma MCPの具体的な使い方は別記事で扱っているので、そちらも併せて参照してください。

完成形のサンプル(コピペ可)

ここまでの6設定をまとめると、こんな感じになります。

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "language": "japanese",
  "autoUpdatesChannel": "stable",
  "permissions": {
    "allow": [
      "Bash(git status)",
      "Bash(git diff:*)",
      "Bash(npm install:*)",
      "Read(~/.claude/**)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(git push:*)",
      "Edit(./.env*)"
    ]
  },
  "hooks": {
    "Stop": [
      {
        "matcher": ".*",
        "hooks": [
          {
            "type": "command",
            "command": "/export ~/Documents/claude-logs/$(date +%Y-%m-%d-%H%M).md"
          }
        ]
      }
    ]
  },
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": { "NOTION_TOKEN": "ntn_xxxxxxxxxxxx" },
      "alwaysLoad": true
    }
  }
}

これを ~/.claude/settings.json に貼り付けて、自分の環境に合わせて編集すれば、 最低限のチューニングが完了 します。

注意点 — 機密情報の扱い

NOTION_TOKEN や API キーなどを settings.json に直接書くのは便利ですが、 このファイルをGitに上げると漏洩 します。

対策は2つ。

A. 環境変数経由で読ませる

settings.json には ${NOTION_TOKEN} のように書いて、シェル設定で export NOTION_TOKEN=xxx する形。

B. settings.local.json に分離

機密情報は .claude/settings.local.json に書いて、 .gitignore で除外する。

私はAの方が運用が楽なのでこっち派ですが、好みで選んでください。

まとめ

  • settings.jsonとCLAUDE.mdは 役割が違う(動作設定 vs 指示書)
  • 設定は3階層(global / project / local)、local.gitignore 必須
  • 入れておきたい6つは 言語 / $schema / 自動更新 / 権限 / Hooks / MCPサーバー
  • permissions.allow で承認ダイアログを減らすのが、 体感速度を上げる最大の効果
  • Stop Hookで会話ログを自動保存すると、業務記録が勝手に貯まる
  • 機密情報は環境変数 or settings.local.json に分離

「Claude Code、便利だけど毎日の操作が地味にだるい」と感じている方は、今週のうちにこの6設定を入れてみてください。月曜の朝、 作業の感触がワンランク変わる はずです。