機能

ショートカットコマンド

最終更新日: 2026年10月19日
ccam 0.6.0とClaude Code 2.1.302で確認済み

このページは英語から機械翻訳されています。修正を歓迎します。 GitHubでこのページを編集

このページの内容

ショートカットは、1つのアカウントとしてClaude Codeを起動する、自分で名前を付けたコマンドです。ccwork --resumeはccam work --resumeと同じ動作をします。実体は~/.local/binにあるccamへのリンクなので、bash、zsh、スクリプトなど、PATHからプログラムを実行するあらゆる場所で動作します。ショートカットは任意です。よく起動するアカウントに作成してください。

使い方

ccam shortcut work ccwork     # create the shortcut ccwork for work
ccam shortcut 2 ccside        # the account with number 2
ccam shortcut work            # show it
ccam shortcut work ccw        # rename it; the old link is removed
ccam shortcut work --remove   # delete it
ccam add side --shortcut ccside
ccam shims install            # recreate missing links of all accounts
ccwork -p "summarise" --output-format json

ccamは変更のたびに結果を表示します。

$ ccam shortcut work ccwork
✓ shortcut for work: ccwork
$ ccam shortcut work ccw
✓ shortcut for work: ccw (was ccwork)
$ ccam shortcut work --remove
✓ ccw removed; work has no shortcut now
$ ccam shortcut work
work: none (add one with `ccam shortcut work ccwork`)

1つのアカウントが持てるショートカットは最大1つで、~/.config/ccam/config.tomlにshortcutとして保存されます。ccam addのウィザードはCreate a shortcut command for <name>? [y/N]と尋ね、続いてShortcut name [cc<name>]:と尋ねます。ウィザード以外では、ccam addは--shortcutを付けた場合だけショートカットを作成します。ccam listは各アカウントのショートカットを表示し、ない場合は-と表示します。

ショートカットは、ccam <name>が名前より後の引数を扱うのと同じように、すべての引数をClaude Codeに渡します。--dry-runや--helpも含まれます。起動をプレビューするには、ccam --dry-run workを使ってください。

オプション

オプション 効果 デフォルト
--remove アカウントのショートカットとそのリンクを削除します オフ
-h、--help コマンドのヘルプ
--dry-run ccam shortcutは対応しています。名前を確認し、保存もリンクもせずにWould set the shortcut of work to ccwork.またはWould remove ccwork, the shortcut of work.と表示します オフ

ccam shims installは引数を取らず、--dry-runをccam: --dry-run is not supported by `ccam shims install`; nothing was changedで拒否します。

名前の規則は、次の順序で確認されます。

  • a-z、0-9、.、-、_を使った1~64文字で、先頭は英字か数字であること
  • ccam、claude、runやusageなどのccamのコマンドではないこと
  • ほかのアカウントのショートカットではないこと
  • ~/.local/binにある、ccamへのリンクではないファイルと同じ名前ではないこと
  • PATH上にあるほかの実行ファイルの名前ではないこと

コマンドと--removeを同時に指定すると、give a command or --remove, not bothで停止します。アカウントがすでに持っている名前を設定するとwork: ccwork (unchanged)と表示し、リンクがなければ作り直します。

しくみ

名前を設定するとcheckShortcutが実行され、binフォルダーとccamのバイナリの実際のパスを指定してshim.Checkを呼び出します。

名前は確認を順に通っていきます。各確認の横には、その確認で拒否される名前を示しています。Workはパターンに合わず、runはccamのコマンドで、ccsideはほかのアカウントのもので、ccfileは~/.local/binにある既存のファイルで、gitは/usr/bin/gitを隠してしまいます。すべての確認に通った名前だけが保存され、リンクされます。

  1. shim.Checkは、名前を^[a-z0-9][a-z0-9._-]{0,63}$、config.Reserved、cfg.FindShortcutの順に照合します。~/.local/bin/<name>に対してos.Lstatを呼び出し、PATH上のそれ以外の各フォルダーに対してはos.Statを呼び出して、ccamへのリンクではない実行ファイルがあれば拒否します。
  2. ccamはfsutil.AtomicWrite(一時ファイル、fsync、rename)でconfig.tomlを保存します。
  3. shim.Removeが古いショートカットのリンクを削除します。ただし、それがccamへのリンクである場合だけです。
  4. shim.Installが、設定されているショートカットのうち足りないものについて、os.Symlinkでccamのバイナリへのリンクを作成します。バイナリのパスはos.Executableとfilepath.EvalSymlinksで求めます。何かを削除することはありません。

os.Readlinkがccamのパスを返す場合、またはリンクとccamのパスが同じファイルに解決される場合、そのリンクはccam自身のものとみなされます。削除と上書きの確認はすべてこの判定を通るので、ccamが自分で作成していないファイルに触れることはありません。

ショートカットを実行したとき、ccamが必要とするのは入力された名前だけです。

シェルがPATH上でccworkを見つけ、カーネルがリンクをたどってccamのバイナリを起動します。このときargv[0]はccworkのままです。app.Mainでは、ccam以外の名前の場合、config.tomlを一度読み込んでshim.Lookupを呼び出し、shortcutがfilepath.Base(argv[0])と一致するアカウントを見つけます。続いてlauncher.LaunchWithが、読み込み済みの設定を使ってccam <name>と同じ手順をたどり、argv[1:]をそのままclaudeに渡します。

シェルのエイリアスやラッパースクリプトではなくシンボリックリンクを使う理由は、すべてのシェルとスクリプトで動作し、シェルの起動が余分に発生せず(約1~2 ms)、起動時に読むファイルも1つのままだからです。scripts/perf-check.shは、ccam <name>と同じ10 ms(p95)の上限で、hyperfineを使ってショートカットを計測します。

安全性と特殊なケース

  • どのアカウントのものでもないリンク。 config.tomlのshortcutを手動で編集した後などに、~/.local/binにあるccamへのリンクの名前をどのアカウントも使っていない場合、ccamはデフォルトのアカウントにフォールバックしません。ccam: ccold is not the shortcut of any account (see `ccam list`, `ccam shortcut`)で停止します。ccam shortcutで名前を設定し直すか、リンクを削除してください。
  • 既存のファイル。 ccamは自分で作成していないファイルを置き換えることはありません。ccam shims installは<path> already exists and is not a ccam link, so it was left aloneで停止します。
  • ccamのバイナリを移動した場合。 古いリンクは存在しないパスを指すことになり、ccamはそれを自身のものとみなしません。それらを削除してからccam shims installを実行してください。
  • 名前の変更と削除。 ccam renameではショートカットの名前は変わらず、リンクも動作し続けます。リンクはccamを指しており、ccamがconfig.tomlで名前を調べるためです。ccam removeはアカウントのリンクを削除します。ccam shortcut <account> <new>は、新しいリンクを作成する前に古いリンクを削除します。
  • PATH。 ccamがリンクを作成したときに~/.local/binがPATHにない場合、Note: /home/me/.local/bin is not in PATH. Add it to ~/.bashrc or ~/.zshrc:に続けて、追加すべきexport PATH=...の行を表示します。
  • あとから確認する。 ccam doctorはmissing shortcuts in /home/me/.local/bin: ccworkと報告し、フォルダーがPATHにない場合は警告します。ccam doctor --fixは足りないリンクを作成します。