フォルダーごとのアカウント
このページは英語から機械翻訳されています。修正を歓迎します。 GitHubでこのページを編集
このページの内容
ccam folder work ~/code/companyを実行すると、~/code/companyとその下のどのフォルダーでも、アカウント名を指定しない起動はすべてworkとしてClaude Codeを起動します。その外では、これまでどおりデフォルトのアカウントが起動します。ccam personalやccpersonalのようなショートカットでアカウントを指定した場合は、常にそのアカウントが起動します。
使い方
ccam folder work ~/code/company # use work in ~/code/company and below
ccam folder personal # use personal in the current folder
ccam folder # list the folders and the account used here
ccam folder --remove ~/code/company # stop using an account there
cd ~/code/company/api && ccam -p "summarise the open issues" # runs as work$ ccam folder work ~/code/company
✓ /home/me/code/company → work
ccam without an account name starts work here and in every folder below.
$ cd ~/code/company/api && ccam folder
/home/me/code/company → work
Here (/home/me/code/company/api): work, set for /home/me/code/company次の起動では、フォルダーのアカウントが使われます。
ccam -p "…"、および最初の引数がClaude Codeのオプションであるそのほかの起動- 名前なしの
ccam runと、ccam --dry-run ccam --fallback -p "…"の最初の試行- ピッカー(
ccam単体)。フォルダーのアカウントにカーソルを置いた状態で開きます
オプション
| オプション | 効果 | デフォルト |
|---|---|---|
<account> |
使うアカウントの名前か番号 | |
[folder] |
フォルダー(相対パスまたは絶対パス) | 現在のフォルダー |
--remove |
そのフォルダーちょうどのエントリーを削除します | オフ |
--dry-run |
対応しています。変更を保存せずに表示します | オフ |
しくみ
各フォルダーは、~/.config/ccam/config.tomlの1つの[[folder]]エントリーです。このファイルは、どの起動でもいずれにせよ読み込まれます。
[[folder]]
path = '/home/me/code/company'
account = 'work'ccam folderは、フォルダーをシンボリックリンクを解決した絶対パスにして保存します。同じフォルダーをもう一度設定すると、そのアカウントが置き換わります。- 名前なしの起動は
launcher.HereProfileを呼び出します。エントリーがなければ、すぐにデフォルトのアカウントを使います。 - エントリーがある場合は、作業ディレクトリを各
pathと文字列として比較します。一致するのはそのフォルダー自体かその下のフォルダーだけで、同じ文字で始まるだけのフォルダーは一致しません(/code/companyは/code/companyxを含みません)。最も深いエントリーが優先されるので、~/codeをpersonalにしつつ、~/code/companyをworkにできます。 - 作業ディレクトリがそのままではどれにも一致しない場合に限り、ccamはそのシンボリックリンクを解決して、もう一度比較します。
- Windowsでは、Windowsと同じように、比較で大文字と小文字を区別しません。
config.toml以外のファイルは読まないので、フォルダー内での起動にかかる時間は測定できるほど増えません(エントリーの有無にかかわらず4.0 ms、hyperfine、300回)。
安全性と特殊なケース
ccam renameはフォルダーのエントリーを新しい名前に引き継ぎ、ccam removeは削除したアカウントのエントリーを削除します。- アカウントがもう存在しないエントリーがあると、そのフォルダーでの名前なしの起動は停止します:
<folder> is set to account "<name>", which does not exist. Change it with ccam folder。ccam doctorは、そのようなエントリーと、フォルダーがなくなったエントリーを報告します。 - 上のフォルダーからアカウントを受け継いでいるフォルダーの中で
ccam folder --removeを実行すると、何も削除せずに、その上のフォルダーを示します。 ccam nextはローテーションか使用量でアカウントを選び、フォルダーは考慮しません。