Fitur
Perintah pintasan
Halaman ini diterjemahkan dengan mesin dari bahasa Inggris. Koreksi sangat dihargai. Sunting halaman ini di GitHub
Pintasan adalah perintah yang namanya Anda pilih sendiri dan menjalankan Claude Code sebagai satu akun: ccwork --resume melakukan hal yang sama dengan ccam work --resume. Pintasan adalah tautan ke ccam di ~/.local/bin, sehingga berfungsi di bash, zsh, skrip, dan apa pun yang menjalankan program dari PATH. Pintasan bersifat opsional; buatlah untuk akun yang sering Anda jalankan.
Penggunaan
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 jsonccam mengonfirmasi setiap perubahan:
$ 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`)Sebuah akun memiliki paling banyak satu pintasan, disimpan sebagai shortcut di ~/.config/ccam/config.toml. Wizard ccam add bertanya Create a shortcut command for <name>? [y/N] lalu Shortcut name [cc<name>]:. Di luar wizard, ccam add hanya membuat pintasan dengan --shortcut. ccam list menampilkan pintasan setiap akun, atau -.
Pintasan meneruskan setiap argumen ke Claude Code, sama seperti ccam <name> setelah nama. Itu termasuk --dry-run dan --help: untuk meninjau peluncuran, gunakan ccam --dry-run work.
Opsi
| Opsi | Fungsinya | Default |
|---|---|---|
--remove |
Menghapus pintasan akun beserta tautannya | nonaktif |
-h, --help |
Bantuan untuk perintah | |
--dry-run |
ccam shortcut menghormatinya: memeriksa nama dan menampilkan Would set the shortcut of work to ccwork. atau Would remove ccwork, the shortcut of work. tanpa menyimpan atau menautkan |
nonaktif |
ccam shims install tidak menerima argumen dan menolak --dry-run dengan ccam: --dry-run is not supported by `ccam shims install`; nothing was changed.
Aturan nama, diperiksa dengan urutan ini:
- 1 sampai 64 karakter
a-z,0-9,.,-, dan_, diawali huruf atau angka; - bukan
ccam,claude, atau perintah ccam sepertirunatauusage; - bukan pintasan akun lain;
- bukan file di
~/.local/binyang belum berupa tautan ke ccam; - bukan nama executable lain di
PATHAnda.
Memberikan perintah dan --remove sekaligus akan berhenti dengan give a command or --remove, not both. Menetapkan nama yang sudah dimiliki akun menampilkan work: ccwork (unchanged) dan membuat ulang tautannya jika hilang.
Cara kerjanya
Menetapkan nama menjalankan checkShortcut, yang memanggil shim.Check dengan folder bin dan path asli biner ccam:
Nama melewati pemeriksaan secara berurutan. Di samping setiap pemeriksaan ada nama yang ditolaknya: Work tidak cocok dengan pola, run adalah perintah ccam, ccside milik akun lain, ccfile adalah file yang sudah ada di ~/.local/bin, dan git akan menutupi /usr/bin/git. Hanya nama yang lolos semua pemeriksaan yang disimpan dan ditautkan.
shim.Checkmencocokkan nama dengan^[a-z0-9][a-z0-9._-]{0,63}$, laluconfig.Reserved, lalucfg.FindShortcut. Fungsi ini memanggilos.Lstatpada~/.local/bin/<name>, dan untuk setiap folder lain diPATHmemanggilos.Statserta menolak file executable yang bukan tautan ke ccam.- ccam menyimpan
config.tomldenganfsutil.AtomicWrite(file sementara,fsync, rename). shim.Removemenghapus tautan pintasan lama, tetapi hanya jika itu tautan ke ccam.shim.Installmembuat tautan setiap pintasan terkonfigurasi yang hilang, denganos.Symlinkke biner ccam, yang path-nya ditentukan denganos.Executabledanfilepath.EvalSymlinks. Fungsi ini tidak pernah menghapus apa pun.
Sebuah tautan dianggap milik ccam jika os.Readlink mengembalikan path ccam, atau jika tautan dan path ccam mengarah ke file yang sama. Setiap penghapusan dan setiap pemeriksaan penimpaan melewati uji ini, sehingga ccam tidak menyentuh file yang tidak dibuatnya.
Saat Anda menjalankan pintasan, nama yang Anda ketik adalah satu-satunya hal yang diperlukan ccam:
Shell menemukan ccwork di PATH, kernel mengikuti tautan dan menjalankan biner ccam, dan argv[0] tetap ccwork. Di app.Main, nama apa pun selain ccam memuat config.toml sekali dan memanggil shim.Lookup, yang mencari akun yang shortcut-nya sama dengan filepath.Base(argv[0]). launcher.LaunchWith lalu menjalankan langkah yang sama seperti ccam <name> dengan konfigurasi yang sudah dimuat, dan meneruskan argv[1:] ke claude tanpa diubah.
Mengapa symlink dan bukan alias shell atau skrip pembungkus: symlink berfungsi di setiap shell dan di skrip, tidak menambah proses shell tambahan (sekitar 1 sampai 2 ms), dan peluncuran tetap hanya membaca satu file. scripts/perf-check.sh mengukur pintasan dengan hyperfine terhadap batas 10 ms (p95) yang sama dengan ccam <name>.
Keamanan dan kasus khusus
- Tautan yang tidak dimiliki akun mana pun. Jika tautan ke ccam di
~/.local/binmemiliki nama yang tidak dipakai akun mana pun, misalnya setelah Anda mengubahshortcutdiconfig.tomlsecara manual, ccam tidak beralih ke akun default. ccam berhenti denganccam: ccold is not the shortcut of any account (see `ccam list`, `ccam shortcut`). Tetapkan nama itu lagi denganccam shortcut, atau hapus tautannya. - File yang sudah ada. ccam tidak pernah mengganti file yang tidak dibuatnya.
ccam shims installberhenti dengan<path> already exists and is not a ccam link, so it was left alone. - Biner ccam yang dipindahkan. Tautan lama kemudian mengarah ke path yang sudah tidak ada, dan ccam tidak menganggapnya sebagai miliknya. Hapus tautan itu, lalu jalankan
ccam shims install. - Mengganti nama dan menghapus.
ccam renamemempertahankan nama pintasan, dan tautannya tetap berfungsi, karena mengarah ke ccam dan ccam mencari nama itu diconfig.toml.ccam removemenghapus tautan akun.ccam shortcut <account> <new>menghapus tautan lama sebelum membuat yang baru. - PATH. Saat ccam membuat tautan dan
~/.local/bintidak ada diPATHAnda, ccam menampilkanNote: /home/me/.local/bin is not in PATH. Add it to ~/.bashrc or ~/.zshrc:diikuti barisexport PATH=...yang perlu ditambahkan. - Memeriksa belakangan.
ccam doctormelaporkanmissing shortcuts in /home/me/.local/bin: ccworkdan memperingatkan jika folder itu tidak ada diPATH.ccam doctor --fixmembuat tautan yang hilang.