メインコンテンツへスキップ
見出し画像

Claude Code使いこなし術「settings.json」見られたくないファイルを確実に守る

    かに🦀です!

    以前、Claude へのお願いを書いておくファイル「CLAUDE.md」を紹介しました。今回はその相棒にあたる「settings.json」。Claude Code の動きのルールを決めるファイルです。読み終わるころには、見られたくないファイルを守る設定と、毎回の確認を減らす設定が作れるようになります。

    settings.json は「動きのルール」を決めるファイル

    CLAUDE.md と何が違うの?と思いますよね。役割がはっきり分かれています。

    • CLAUDE.md は「お願い」。文章で伝えて、Claude が読んで守ってくれる

    • settings.json は「ルール」。Claude Code という道具そのものに効いて、必ず守られる

    お願いは、ごくたまに忘れられてしまうことがあります。ルールは忘れようがありません。廊下に貼った「走らないでね」の張り紙が CLAUDE.md、扉に付けた鍵が settings.json。そんなイメージです。

    JSON(ジェイソン)は、設定を書くときによく使われる文章の形式です。かっこと引用符の決まった書き方で並べるだけで、プログラムが読める設定書になります。

    ちょこっと解説!

    置き場所は3つ。効く範囲が違う

    settings.json は、置く場所によって効く範囲が変わります。

    パソコン全体用はホームの「.claude」フォルダに、プロジェクト用は各プロジェクトの「.claude」フォルダに置く。settings.local.json は自分専用
    パソコン全体用はホームの「.claude」フォルダに、プロジェクト用は各プロジェクトの「.claude」フォルダに置く。settings.local.json は自分専用
    • ホームの .claude フォルダに置くと、どのプロジェクトでも効く

    • プロジェクトの .claude フォルダに置くと、そのプロジェクトだけに効く

    • 同じ場所の settings.local.json は「自分専用」。プロジェクトを仲間と共有していても、このファイルは自分の環境だけに効く

    まずは「パソコン全体か、このプロジェクトだけか」の2択で覚えれば十分です。3つ目の settings.local.json は、実はアプリが勝手に作ってくれるファイル。あとで登場します。

    ホームは、あなたのユーザー名がついた、パソコンの大元のフォルダのことです。設定の説明では ~ という記号で書かれることもあります。

    ちょこっと解説!

    例1。見られたくないファイルを「deny」で守る

    いちばん分かりやすくて、いちばん役に立つ例から。プロジェクトの .claude/settings.json にこう書きます。

    {
      "permissions": {
        "deny": [
          "Read(./himitsu.txt)"
        ]
      }
    }

    意味は「himitsu.txt を読むこと(Read)を禁止(deny)」。この状態で Claude に中身を聞いてみると、

    「読み取りに失敗しました」と表示され、himitsu.txt は読めなかった
    「読み取りに失敗しました」と表示され、himitsu.txt は読めなかった

    きっぱり断られました。お願いと違って、ここに書いた禁止事項は Claude の判断ではくつがえせません。

    ためしにモードを「自動」に切り替えて、もう一度おねだりしてみます。

    自動モードでも拒否され、別のコマンドで読み取りを回避することも避けると宣言された
    自動モードでも拒否され、別のコマンドで読み取りを回避することも避けると宣言された

    それでも読めないうえ、「別のコマンドで読み取りを回避することも避けます」とまで言ってくれました。パスワードのメモなど、絶対に見られたくないファイルがある人は、この deny をまず覚えておけば安心です。

    例2。「常に許可」で毎回の確認を減らす(allow)

    Claude Code は、ファイルを変えるようなコマンドを動かす前に、こんな画面で確認してきます(最初の設定である「手動」モードのとき)。

    コマンドを実行してよいか確認する画面。拒否・常に許可・一度だけ許可の3つのボタン
    コマンドを実行してよいか確認する画面。拒否・常に許可・一度だけ許可の3つのボタン

    安全のための仕組みですが、同じ確認が何度も出ると少し面倒。そこで真ん中の「常に許可」です。このボタンを押すと、プロジェクトの .claude/settings.local.json にこんな内容が自動で保存されます。

    {
      "permissions": {
        "allow": [
          "Bash(cp kakeibo.py backup.py)"
        ]
      }
    }

    意味は「このコマンドは許可(allow)済み。もう聞かなくていい」。実際、新しいセッションで同じお願いをすると、今度は確認なしでスッと実行されました。

    同じコマンドが、確認の画面なしでそのまま実行された
    同じコマンドが、確認の画面なしでそのまま実行された

    つまり僕たちは、ボタンを押すだけで settings ファイルを育てているわけです。慣れてきたら、自分で直接書き足してもかまいません。

    自分で書くときの注意

    編集するときは、3つだけ気をつけてください。

    • コメント(メモ書き)は書けない。JSON にメモを混ぜると、ファイル全体が読めなくなる

    • 引用符は必ずダブルクォート " を使う

    • deny と allow が同じものを指していたら、必ず deny が勝つ

    書き方が合っているか不安なときは、Claude 本人に「この settings.json、おかしいところない?」と見てもらうのが早いです。

    まとめ

    • settings.json は Claude Code の「動きのルール」を決めるファイル。お願い(CLAUDE.md)と違って必ず効く

    • 置き場所は3つ。パソコン全体、プロジェクト、自分専用(settings.local.json)

    • 見られたくないファイルは deny に書く。自動モードでも読まれない

    • 確認画面の「常に許可」を押すと、allow のルールが settings.local.json に自動で貯まる

    このファイルには、もっと高度な設定(決まったタイミングで自動でコマンドを動かす hooks など)も書けます。そのあたりは、またの機会に紹介しますね。

    なお、この記事の画面はデスクトップアプリの「Code」タブのものです。ターミナル版の Claude Code でも、settings.json の置き場所と書き方は同じです。

    関連記事

    それでは、かに🦀からは以上です。

    #ClaudeCode #ClaudeCode初心者 #settingsjson #AI活用

     
     
    プログラミング未経験からClaude Codeにハマったカニ🦀 非エンジニア目線で、環境構築からSkills作成まで、毎日の実践記録を投稿していきます。 初心者でも「今日から使える」情報をお届けします!

    あなたへのおすすめ