Claude Desktopのスラッシュコマンドが日本語名だと送れない不具合と回避策
Claude DesktopのCodeタブで、日本語など非ASCII名のスラッシュコマンドが送信できない不具合が報告されています。症状、報告された原因の見立て、ASCII名への回避策をまとめます。
Claude DesktopのClaude Code(Codeタブ)で、日本語や韓国語など非ASCII文字を含む名前のスラッシュコマンドが送信できなくなる不具合が報告されています。入力欄ではコマンドが認識されて補完にも出ますが、Enterを押すと警告が出て何も送られません。報告時点では、同じ内容でASCII名にしたコマンドは問題なく動いています。
どんな症状が出るのか
GitHubのissue #98577(2026年10月1日起票、10月10日時点でopen)の報告では、症状は次の形です。
~/.claude/commands/に置いた、名前に韓国語を含むカスタムコマンドが送れない- 入力欄ではコマンドが強調表示され、オートコンプリートにも出る
- 送信すると警告が出て、メッセージは送られない
- 報告者の環境では20本以上ある韓国語名のコマンドがすべて該当した
- 中身が同じでASCII名のコマンドは、正常に実行できる
警告の文言は、日本語UIでは次のように表示されると別のissue(#98925)に載っています。
コマンドではファイルの@メンションを使用できますが、それ以外の@メンション、スラッシュコマンド、リンク、インライン書式は使用できないため、送信されませんでした。これらを削除してください。入力欄にはスラッシュコマンドしか入れていないのに「スラッシュコマンドは使えない」と言われる、矛盾した警告です。#98925の報告者もこの点を指摘しています。
再現手順と切り分け
#98577の手順を、日本語名に置き換えると次の形になります。
# 日本語名のコマンドとASCII名のコマンドを、同じ中身で用意する
printf -- '---\ndescription: テスト\n---\n' > ~/.claude/commands/テスト.md
cp ~/.claude/commands/テスト.md ~/.claude/commands/test-alias.mdDesktopアプリで新しいセッションを開き、入力欄に /テスト を入れてEnterを押すと送信が止まります。/test-alias を入れると通常どおり実行されます。
報告者は、次の要因を切り分けて除外しています。いずれの場合も、日本語名側は送れませんでした。
- 名前が数字で始まるか、文字で始まるか
- 説明文の中のスラッシュコマンドの例
- フロントマターの
allowed-toolsとargument-hint - 引数の有無、新しいセッションかどうか
- ファイル名のUnicode正規化(すべてNFC)
#98925では、Windows 11のDesktopアプリ(日本語UI)で /予定検出 と /配当金 が送れず、内蔵の /agents とASCII名の /testcmd は動いたとされています。macOSの韓国語環境の報告と、Windowsの日本語環境の報告で、症状が一致しています。
動く場所と動かない場所
利用面ごとの報告は次のとおりで、壊れているのはDesktopとwebの送信だけです。
| 利用面 | 日本語名のコマンド | 根拠 |
|---|---|---|
| DesktopアプリのCodeタブ(ローカルセッション) | 日本語名のコマンド送信できない | 根拠#98577、#98925 |
| Claude Code on the web(claude.ai/code) | 日本語名のコマンド送信できないと報告 | 根拠#98577のコメント(中国語名で再現) |
| ターミナルのCLI | 日本語名のコマンド影響なしと報告 | 根拠#98577のコメント(CLI 2.1.286) |
| モデルによる呼び出し | 日本語名のコマンド動く | 根拠#98577のコメント |
最後の行は、報告者の一人が「Claude自身が同じコマンドを呼び出すことはできる」と書いている内容です。コマンドファイルの読み込み自体は壊れていないことになります。補完にも出るため、登録や一覧表示も動いています。壊れているのは、送信直前の検証だけという見立てです。
報告されている原因の見立て
#98577のコメントの一つは、配信されているフロントエンドのJavaScriptから、次のように推測しています。送信前に先頭のコマンド部分を検証していて、その名前判定が /^\/([\w:-]+)(?=\s|$)/ という正規表現だという見立てです。u フラグが付かない \w はASCII文字しか拾いません。日本語や中国語の名前は一致せず、「許可されていない別のスラッシュコマンド」として弾かれる、という説明です。
これはユーザーによる推測で、Anthropicが原因を確認したという記述はissueにありません。ただ、症状とは整合します。#98925の報告者も、ASCII名は通りUnicode名だけ弾かれることから、コマンド名をトークン化する段階で登録済みの一覧と照合できていないのではないかと書いています。補完は別の経路で動いているため、一覧には出るのに送れません。
ドット入りの名前にも広がる報告
#98577には、ASCIIだけの名前でも同じ警告が出るという報告がありました。プロジェクトのスキル名に <namespace>.<name> のようにドットを含めた例で、/bloomays.work-linear-issue などが送信できないとされています。内蔵の /compact は送れました。
報告者は、検証側が受け付ける文字が補完より狭く、ドットの手前までしか読まないのではないかと推測しています。spec-kitが生成する /speckit.plan のようなドット入りの名前にも影響する可能性があるが、そちらは試していない、とも書いています。非ASCII文字とドットが同じ不具合の別の症状なのかどうかは、現時点でも決着していません。
日本語名のコマンドを使い続ける回避策
報告されている回避策は、4つです。
- ASCII名のエイリアスを作る: 元のコマンドを参照するだけの、ASCII名のファイルを置く(#98577の報告者)
- ASCII名のシンボリックリンクを張る: 日本語名のファイルに、ASCII名のリンクを作る(#98577のコメント)
- スラッシュなしで頼む: スキルの用途を普通の文章で伝える(#98577のコメント、#98925の報告者)
- CLIで実行する: ターミナルの
claudeでは影響がないと報告されている
4つを、日本語名を残せるかどうかと手間で比べると次のようになります。
| 回避策 | 日本語名のファイル | Desktopで使えるか | 手間 |
|---|---|---|---|
| ASCII名のエイリアス | 日本語名のファイル残る | Desktopで使えるか使える | 手間コマンドごとに1ファイル |
| シンボリックリンク | 日本語名のファイル残る | Desktopで使えるか使える | 手間コマンドごとに1コマンド |
| スラッシュなしで頼む | 日本語名のファイル残る | Desktopで使えるか使える(補完は使わない) | 手間毎回文章で指定 |
| CLIで実行 | 日本語名のファイル残る | Desktopで使えるかDesktopでは使わない | 手間作業場所を切り替える |
「Desktopで使えるか」の列は、#98577と#98925のコメントで報告された結果です。
シンボリックリンクの例は次のとおりです。コマンド名は例で、リンクが動作する保証はissueの報告以上のものではありません。
ln -s ~/.claude/commands/予定検出.md ~/.claude/commands/yotei-kenshutsu.mdエイリアスをファイルで作る場合は、ASCII名のコマンドの本文に「~/.claude/commands/予定検出.md の指示に従って実行する」と書く形になります。報告された回避策を、ファイルの形にすると次のようになります。
---
description: 予定検出のエイリアス
---
~/.claude/commands/予定検出.md を読み、その手順どおりに実行してください。
$ARGUMENTS.claude/commands/ のファイルは、拡張子を除いたファイル名がそのままコマンド名になります。日本語名のファイルをASCII名に改名するのが最短ですが、日本語の名前を残したいなら、スキルのディレクトリに移す形も取れます。
コマンドファイルはフロントマターのうち name と paths を受け付けないため、name で別名を付けられるのはスキル側だけです。スキルでは、ディレクトリ名か name がコマンド名になります。name を書けば、ディレクトリ名を日本語のままにしてもコマンド名はASCIIにできます。
mkdir -p ~/.claude/skills/yotei-kenshutsu---
name: yotei-kenshutsu
description: 予定を検出して一覧にする
---
(元のコマンドファイルの本文をここに移す)この形で /yotei-kenshutsu というコマンドになります。置き場所は個人用なら ~/.claude/skills/<名前>/SKILL.md、プロジェクト用なら .claude/skills/<名前>/SKILL.md です。移したあとは、.claude/commands/ 側の同名の日本語ファイルを消しておくと、同じ中身が二重に並びません。なお、スキルへ移した場合にDesktopから送れるかどうかは、どちらのissueにも報告がありません。
発生時期の経緯と、自分のアプリ版の確かめ方
いつから起きているかは、issueのコメントから追えます。
報告の流れ
- 9月29日ごろまだ動いていた
#98577の起票時に「前のバージョンでは動いていた」とされた時期です。
- 10月1日アプリが自動更新され、#98577が起票
コメントの一つに、10月1日ごろにアプリが自動更新されたとあります。
- 10月2日#98925が起票
Windows 11の日本語UIで同じ症状が報告されました(Claude Code 2.1.183)。
- 10月5日2.19675.0でも再現
より新しいアプリ版でも直っていないとコメントされています。
手元のアプリ版は、アプリのバージョン表示で確かめられます。報告では2.19675.0でも再現しているため、それより古い版だけでなく新しい版でも様子を見る必要があります。修正の入ったバージョンはissueに載っていないので、更新後はテスト用の日本語名コマンドを一つ送って確かめるのが確実です。
公式ドキュメントの案内との関係
DesktopのCodeタブのリファレンスは、スラッシュコマンドの呼び出し方を次のように書いています。入力欄で / を打つか、+ ボタンからSlash commandsを選んで一覧を開き、選んだものが入力欄でハイライトされる、という流れです。そのうえで、組み込みコマンド、自作のスキル、プロジェクトのスキル、プラグインのスキルが一覧に並ぶとされています。
今回の不具合は、この「選んでハイライトされる」までが動き、「送信」で止まる点が特徴です。DesktopのCodeタブのリファレンスには、コマンド名に使える文字の制限が載っておらず、今回の挙動は不具合として報告されています。
影響を受ける人と、次に見ておく点
日本語でスキルやコマンドの名前を付けている人が、主な対象です。ASCII名のコマンドだけを使っている人や、ターミナルのCLIだけで使っている人には、報告の限りでは影響がありません。
コード内の日本語の扱いは日本語コメントや日本語変数名の記事とは別の話です。ここで問題が出るのは、コマンド名をDesktopの入力欄から送る場面に限られます。スラッシュコマンドの一般的な使い方はClaude Codeスラッシュコマンド一覧にまとめています。
issueは10月10日時点でopenで、修正バージョンの記載もありません。修正が入るまでは、ASCII名のエイリアスを置くか、CLIで実行するのが現実的な選択肢です。