🎍

【2026年1月】Claude Code の Update & Tips まとめ

に公開

はじめに

前回自分の気に入っている Claude Code の機能などをまとめていたのですが、個人的に勉強や整理の時間にもなりよかったので、定期的に続けていきたいなと思っているところです。1月といいつつも前回以降に追加された機能や使うようになった機能がメインです。

前回はこちら↓
https://zenn.dev/kozoka_ai/articles/claude-code-updates-and-tips-202512

Claude Code のアップデート内容を確認する

Claude Code の設定ファイル中~/.claude/cache/changelog.mdにアップデート内容が更新されるようになっていました。
自分は Claude Code 含めた設定ファイルをdotfilesで管理しているため、gitの差分でアップデートを確認できるのが便利だなと感じています。
Claude Code に差分を確認させ、説明してもらうようにしています。

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

標準機能

/copy command

このコマンドを入力することで、直前の出力結果をコピーすることが可能になりました。
ただし、直前以外はコピーできないので注意です。
Weztermコピーモードなどを使いましょう。

個人的には、実装計画の許可を求められているタイミングでコピーできる機能が欲しい...

許諾前のコマンドに対する説明

使用するコマンドの許可を求められた際に、<C-e>でそのコマンドに対する説明を出力させることが可能になりました。
わざわざ別のセッションを立ち上げる必要が無くなったので便利ですが、後述する言語設定が反映されていないのが微妙です。

設定項目

コンテキストのパーセンテージが取得可能に

statuslineにおいてコンテキスト使用量の可視化が簡単になっていました。

  • context_window.used_percentage
  • context_window.remaining_percentage
Auto Compact との一致

前回の記事でも記載の通りAuto Compactとは一致しないため以下の計算方法がおすすめです。

statusline.sh
#!/bin/bash
# stdinからJSON入力を読み取る
input=$(cat)

# コンテキスト使用率を計算 ------------------------------------------------------
CONTEXT_SIZE=$(echo "$input" | jq -r '.context_window.context_window_size')
USAGE=$(echo "$input" | jq '.context_window.current_usage')

# AUTOCOMPACT_BUFFER
AUTOCOMPACT_BUFFER=45000
if [ "$USAGE" != "null" ] && [ "$CONTEXT_SIZE" != "null" ] && [ "$CONTEXT_SIZE" -gt 0 ] 2>/dev/null; then
    CURRENT_TOKENS=$(echo "$USAGE" | jq '.input_tokens + .cache_creation_input_tokens + .cache_read_input_tokens')
    CURRENT_TOKENS=$((CURRENT_TOKENS + AUTOCOMPACT_BUFFER))
    PERCENT_USED=$((CURRENT_TOKENS * 100 / CONTEXT_SIZE))
    CONTEXT_INFO="${PERCENT_USED}%"
else
    CURRENT_TOKENS=$((AUTOCOMPACT_BUFFER))
    PERCENT_USED=$((CURRENT_TOKENS * 100 / CONTEXT_SIZE))
    CONTEXT_INFO="${PERCENT_USED}%"
fi

https://github.com/anthropics/claude-code/issues/17959

出力言語設定

今まで、CLAUDE.mdでしつこく指定してきた言語設定が不要になりました。
/configコマンドで起動できる設定一覧から、Languageを選択することで設定可能です。
直接設定ファイルに記載する場合は以下のようにsettings.jsonを修正してください。

settings.json
{
    <!-- 省略 -->
    "language": "Japanese"
}

どうやら日本人の方が作成されたようです。
設定内容が記述式であるため、「ギャル語で喋って」のようなバラエティあふれる設定ができるようです。

https://x.com/__sosukesuzuki/status/2009076717860893061?s=46

これに合わせて、ユーザー設定のCLAUDE.mdは検証的な意味も含めて現在空にしてあります。
現状、困ったことは<C-e>ぐらいしかありません。

Plan ファイルの作成されるディレクトリを指定可能に

前回の記事作成時点でもすでにPlan Modeで作成された実装計画は特定のディレクトリに保存されるようになっていましたが、全て同じ箇所に保存されていました。この保存先を指定できるようになりました。
settings.jsonを以下のように書き換えてください。私は作業ディレクトリ毎に分けられた方が後で確認しやすいだろうということで相対パスで設定しています。チーム毎に実装計画を共有しておきたい場合に便利かと思われます。

settings.json
{
    <!-- 省略 -->
    "language": "Japanese",
    "plansDirectory": "./.config/claude/plans"
}

ただし、使用する中でディレクトリ移動が起こった際に、移動先から相対パスで実装計画ファイルが作成されることが度々生じました。
以下の情報を参考に、↓ 作業ディレクトリを固定することで解決しました。

https://x.com/nukonuko/status/1998864705520295969?s=46

公式ドキュメントの記載

作業ディレクトリが永続化:Claude が作業ディレクトリを変更する場合(例:cd /path/to/dir)、後続の Bash コマンドはそのディレクトリで実行されます。CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 を使用して、各コマンド後にプロジェクトディレクトリにリセットできます。

https://code.claude.com/docs/ja/settings#bash-ツール動作

PR の状態が表示可能に

プロンプト入力欄の下側(statuslineを設定している場合はさらにその下側)に現在のブランチに紐づくPRの状態が表示されるようになっていました。
/configShow PR status footerから切り替えられます。

個人的に表示されていて嬉しいことがなかったのと、必要であればgh pr viewなどを使ってstatuslineの実装をした方が良いのではと思いオフにしています。

カスタムコマンド

任意のコマンドの出力結果を埋め込み

これはもしかすると以前から使えた可能性はありますが、Claude Codeにカスタムコマンドを実装させていた際に発見しました。
!<command>でコマンドの出力結果を文章内に埋め込むことが可能です。

!プレフィックスを使用してスラッシュコマンドが実行される前にbashコマンドを実行します。出力はコマンドコンテキストに含まれます。allowed-toolsにBashツールを含める_必要がありますが_、許可する特定のbashコマンドを選択できます。

https://code.claude.com/docs/en/slash-commands#inject-dynamic-context

セキュリティの関係から引数は展開するコマンドには含められないようです。
操作系のコマンドというより表示するためのコマンド(現在のブランチ名表示など)を自動的に入れるなどすると便利かと思います。

複数引数の対応

これまで、カスタムコマンドにおいて引数は$ARGUMENTのみで、複数の引数を追加することはできませんでした。
これが以下のように追加できるようになりました。

  • $ARGUMENT[<number>]
  • $<number>

https://code.claude.com/docs/en/skills#available-string-substitutions

Skills

実行できる操作を制限

これも正確にはいつ頃から利用可能になったのか把握していないのですが、

---
name: <skill-name>
description: ...
allowed-tools: Read, Grep, Glob

のように予めSkillsが利用できる操作を制限できるようになりました。
制限とは言いつつもBash(git *)のように予め利用可能な操作を許可するという使い方も可能です。

https://code.claude.com/docs/en/skills#restrict-tool-access

GitHubで編集を提案
株式会社kozokaAI 開発チーム

Discussion