companyAnnouncementsで起動時に社内お知らせを表示する — Claude Code
settings.jsonのcompanyAnnouncementsは、Claude Codeの起動時に社内向けのお知らせを1行出す設定です。複数登録時の表示ルールと置き場所ごとの届く範囲、表示されないときの切り分けをまとめます。
companyAnnouncementsは、Claude Codeを起動したときに組織からのお知らせを表示する設定キーです。文字列の配列を書くだけで動き、社内の利用ルールや問い合わせ窓口を、全員が必ず目にする起動画面に載せられます。
この記事では、複数登録したときの選ばれ方、置き場所ごとの届く範囲、管理者が全社に配る手順、表示されないときの切り分けを順に扱います。
companyAnnouncementsは何を表示する設定か
設定リファレンスの定義は「組織のお知らせを起動時にユーザーへ表示する」です。型は文字列の配列で、既定値は未設定。何も書かなければお知らせは出ません。
| 項目 | 内容 |
|---|---|
| 型 | 内容文字列の配列 |
| 既定値 | 内容未設定(お知らせなし) |
| 置ける場所 | 内容ユーザー・共有プロジェクト・ローカル・管理設定のどのファイルでも可 |
| 表示タイミング | 内容起動時 |
置ける場所が「どのファイルでも可」なのが、この設定の使い勝手を決めています。管理者だけでなく、リポジトリの持ち主や個人も同じキーを使えます。
最小の書き方は次のとおりです。公式の例に沿った形です。
{
"companyAnnouncements": [
"Welcome to Acme Corp! Review our code guidelines at docs.example.com"
]
}日本語の組織なら、メッセージも日本語で書いてかまいません。例えば次のような形になります。
{
"companyAnnouncements": [
"監査ログが有効です。顧客の個人情報は入力しないでください。質問は #claude-code-help まで"
]
}文字数の上限や、改行・Markdownの扱いは、設定リファレンスのこの項目には記載がありません。1行に収まる短い文にしておくのが無難です。
複数登録すると、どれが表示されるか
配列に2件以上入れた場合の挙動は、次の2つだけが明記されています。
- セッションごとに、1件がランダムに選ばれる
- その人にとって初めての起動では、先頭の1件が表示される
つまりClaude Codeは、登録した全件を順番に見せるのではなく、毎回1件だけ出します。ここから運用上の含意が3つ出ます。
必ず全員に見せたい内容は、1件にまとめます。複数件に分けると、起動のたびに別の1件が選ばれるため、ある人が特定の1件を目にするまでに何回かかるかは運が決めます。
初回起動に見せたい文は、配列の先頭に置きます。新しく使い始める人が最初に目にするのは先頭の1件です。利用ルールや相談窓口のような「最初に知ってほしいこと」を先頭にすると、導入直後の人に確実に届きます。
2件目以降は、読み流されてもよい情報向きです。社内勉強会の案内や、便利な使い方の一言のような内容です。毎回ランダムに入れ替わるので、起動のたびに目に入るトピックが変わります。
複数登録は「ローテーション表示」として機能しますが、順番に回るとは書かれていません。均等に選ばれるかどうかも記載がないため、頻度を設計に使うのは避けるのが安全です。
置き場所で届く範囲が変わる
同じキーでも、どのファイルに書くかで届く相手が違います。ファイルの種類と範囲は、設定ファイルの解説ページの表で整理されています。
| 置き場所 | ファイル | 届く相手 |
|---|---|---|
| ユーザー | ファイル~/.claude/settings.json | 届く相手自分だけ(全プロジェクト) |
| 共有プロジェクト | ファイル.claude/settings.json | 届く相手そのフォルダで作業する全員(gitにコミットした場合) |
| ローカル | ファイル.claude/settings.local.json | 届く相手自分の、そのプロジェクトだけ |
| 管理設定 | ファイルmanaged-settings.json など | 届く相手組織が配布した全員 |
社内向けのお知らせという用途なら、本命は管理設定です。ユーザーが自分で消せない最上位の層に置けるため、組織の告知として確実に出せます。優先順位でも管理設定が最上位です。
一方、プロジェクトの.claude/settings.jsonに書けば、そのリポジトリを開いた人にだけ「このリポジトリでは○○ブランチ運用です」といった案内を出せます。管理者権限がないチームリーダーでも使える手段です。
なお、リスト型のキーを複数のファイルに書くと、上書きではなく結合されるのが設定全般のルールです。companyAnnouncementsの項目にはこの点の個別の記述がないため、複数の層に書く場合は、実際にどう出るかを手元で確かめてから配布してください。
用途と置き場所の対応は、次のように考えると決めやすくなります。
| 伝えたい内容 | 置き場所 | 理由 |
|---|---|---|
| 全社の利用ルール・問い合わせ窓口 | 置き場所管理設定 | 理由利用者が消せず、組織の全員に届く |
| リポジトリ単位の運用案内(ブランチ運用など) | 置き場所共有プロジェクト | 理由そのリポジトリを開いた人にだけ出る |
| 新規利用者向けの初回案内 | 置き場所管理設定の配列の先頭 | 理由初回起動は先頭の1件が表示される |
| 自分用のメモや動作確認 | 置き場所ローカル | 理由自分のそのプロジェクトだけで、gitに載らない |
手元で表示を確かめる手順
管理設定に配る前に、自分の環境で確認します。影響範囲が最も小さい.claude/settings.local.jsonを使うのが手軽です。このファイルは、Claude Codeが作成した場合はgitの対象外になります。手で作る場合は.gitignoreへの追加が必要です。
mkdir -p .claude
cat > .claude/settings.local.json <<'JSON'
{
"companyAnnouncements": ["お知らせ表示のテストです"]
}
JSON
claude起動直後の画面にメッセージが出れば成功です。確認できたら、テスト用の記述は消しておきます。出ない場合は、後半の切り分けに進んでください。
複数登録の挙動を見たいときは、配列に2件入れて何度か起動し直します。初回起動は先頭の1件という仕様なので、2回目以降の起動で選ばれ方を観察する形になります。
管理者が全社に配る
組織全体に出すなら、管理設定として配布します。配布方法は4種類あり、同じキーがどれでも使えます。
- サーバー管理設定: claude.aiの管理コンソールから配信。起動時に取得し、以後は1時間ごとに確認する
- MDMまたはOSレベルのポリシー: JamfやIntuneなどで配布。起動時に読み、30分ごとに変更を確認する
- ファイル配置:
managed-settings.jsonをシステムディレクトリに置く。起動時に読み、ファイルが変わると読み直す - Windows HKCUレジストリ: HKLMに書けないときの手段。起動時に読み、30分ごとに変更を確認する
使い分けは、すでにどの仕組みで端末を管理しているかで決まります。端末管理の仕組みがないLinuxホストや自前で作るイメージにはファイル配置、MDMやグループポリシーで管理済みならそちら、claude.aiの組織で端末に触らず1か所で変えたいならサーバー管理設定が向きます。
同じ端末に複数の方式で配ると、既定では最も優先度の高い1つだけが使われ、残りは結合されず無視されます。優先度は高い順に、サーバー管理設定、MDM・OSポリシー、管理設定ファイル、HKCUレジストリです。無視された方式への警告は出ませんが、/statusで使われた配布元と飛ばされた配布元を確かめられます。ファイルで配ったのにお知らせが出ない場合は、上位の方式が先に効いている可能性があります。なお、1つの管理設定は届く全員に同じ内容で適用され、開発者グループごとに別の告知を出すには、グループごとに別のファイルやプロファイルを配ることになります。
ファイル配置の場合、置き場所はOSごとに決まっています。
| OS | パス |
|---|---|
| macOS | パス/Library/Application Support/ClaudeCode/managed-settings.json |
| Linux・WSL | パス/etc/claude-code/managed-settings.json |
| Windows | パスC:\Program Files\ClaudeCode\managed-settings.json |
Linuxなら、次のように置けます。
sudo mkdir -p /etc/claude-code
sudo tee /etc/claude-code/managed-settings.json <<'JSON'
{
"companyAnnouncements": [
"監査ログが有効です。個人情報は入力しないでください"
]
}
JSON配った後は、1台で/statusを実行し、Setting sourcesの行にEnterprise managed settings (file)と出ていることを確かめてから全体に広げます。管理設定の全体像と他の統制キーとの組み合わせはClaude Code組織管理ガイドに、動的にポリシーを取得する方法はpolicyHelperの解説にあります。
公式の設定例も、管理設定の見本の末尾にcompanyAnnouncementsを置いています。更新の最低バージョン固定や保持期間の短縮と並べて、全員に見せたい一言として扱う位置づけです。
サーバー管理設定では初回起動の待ち時間に注意
サーバー管理設定は、起動時に取得され、以後は1時間ごとに確認されます。初めてサインインした直後など、キャッシュされた設定がない起動では、挙動が少し変わります。
- サインインを伴う起動では、取得の完了を最大5秒待ってからセッションを開く
- その間にポリシーが届けば、最初の画面から適用され、
companyAnnouncementsも同じ画面に出る - 承認が必要な内容を含むポリシーのときは、待ちを打ち切り、開発者が承認した後に適用する
- 上記以外の起動や、5秒を過ぎた場合は、取得を続けながらセッションが始まるので、設定が効くまでに短い間が空く
要するに、新入社員の初回起動のように「サインインして初めて開く」場面でも、ネットワークが速ければ最初の画面でお知らせを見せられます。逆に回線が遅い環境では、1回目の起動でお知らせが出ないことがあり得ます。
表示されないときの切り分け
お知らせが出ないとき、設定内容そのものより、設定がClaude Codeに届いているかを先に疑います。
- まず
companyAnnouncementsの綴りと、値が文字列の配列([ ])であることを見ます。文字列1つだけを直接書くと型が合いません - 次に多いのがJSONの破損です。ユーザー・プロジェクト・ローカルのファイルに不正なJSONがあると、対話セッションの開始時にSettings Errorのダイアログが出ます。ダイアログでは、Claudeの助けを借りた修正・終了・壊れた設定のまま続行を選べます。続行した後は
/statusで影響を受けたファイルを見て、claude doctorで各エラーの詳細を確かめます。-pで実行する場合はダイアログが出ず、壊れたファイルを飛ばして進むため、設定が効かないときはclaude doctorが頼りになります。そのほかの見落としは設定が反映されない原因の探し方にまとめています - 読み込まれている層は、
/statusのSetting sourcesの行で分かります。想定した層が並んでいなければ、その層のお知らせは届いていません。管理設定をファイルで配った場合はEnterprise managed settings (file)の表示が目印です - サーバー管理設定で配っているなら、取得の失敗を疑います。取得に失敗すると、インタラクティブなセッションでは「リモートポリシーが適用されていない」という警告が出ます
- 古いバージョンではサインインで始まったセッションで出ない不具合があり、現在は修正されています。経緯は下の変更履歴にあります
3と4の確認で層が読み込まれていないと分かったら、設定内容ではなく、配布や置き場所の問題です。
追加から現在までの変更履歴
この設定は、2025年11月に追加されて以来、表示まわりが何度か調整されています。
| バージョン | 日付 | 変更 |
|---|---|---|
| v2.0.32 | 日付2025年11月4日 | 変更companyAnnouncements設定を追加(起動時のお知らせ表示) |
| v2.1.162 | 日付2026年6月3日 | 変更起動表示を整理。セッション情報とお知らせが1行にまとまる |
| v2.1.243 | 日付2026年8月25日 | 変更サーバー管理のcompanyAnnouncementsが、サインインで始まったセッションで出ない不具合を修正 |
v2.1.243の修正は、先ほどの初回起動の待ち時間の仕様と対になっています。この版のほかの変更はClaude Code v2.1.243のリリースノートで確認できます。
まとめ
companyAnnouncementsは、配列に文を入れるだけで起動画面に組織の一言を出せる、導入コストの低い設定です。複数登録はランダム表示なので、必ず伝えたい内容は1件に絞り、新規利用者向けの案内は先頭に置くのが、公式の挙動に合った使い方です。
全社告知なら管理設定、チーム限定ならプロジェクトの設定と、置き場所で届く範囲を選びます。導入時の告知文そのものの作り方はClaude Code導入アナウンス文のテンプレートが参考になります。個別項目の一覧で眺めたいときはClaude Code設定ガイドにも載っています。