Можливості
Короткі команди
Цю сторінку перекладено з англійської машинним способом. Виправлення вітаються. Редагувати цю сторінку на GitHub
Коротка команда — це команда з назвою, яку ви вибираєте самі, і вона запускає Claude Code від імені одного облікового запису: ccwork --resume робить те саме, що й ccam work --resume. Це посилання на ccam у ~/.local/bin, тож вона працює в 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 jsonccam підтверджує кожну зміну:
$ 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`)Обліковий запис має не більше однієї короткої команди, яка зберігається як shortcut у ~/.config/ccam/config.toml. Майстер ccam add запитує Create a shortcut command for <name>? [y/N], а потім Shortcut name [cc<name>]:. Поза майстром ccam add створює її лише з --shortcut. ccam list показує коротку команду кожного облікового запису або -.
Коротка команда передає всі аргументи в Claude Code так само, як ccam <name> після назви. Це стосується й --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.
Правила для назв, які перевіряються в такому порядку:
- від 1 до 64 символів із
a-z,0-9,.,-і_, що починаються з літери або цифри; - не
ccam,claudeі не команда ccam, як-отrunчиusage; - не коротка команда іншого облікового запису;
- не файл у
~/.local/bin, який ще не є посиланням на ccam; - не назва іншого виконуваного файлу у вашому
PATH.
Якщо вказати команду разом із --remove, виконання зупиниться з повідомленням give a command or --remove, not both. Якщо задати назву, яку обліковий запис уже має, буде виведено work: ccwork (unchanged), а посилання буде створено заново, якщо його немає.
Як це працює
Задання назви запускає checkShortcut, яка викликає shim.Check з текою bin і справжнім шляхом до виконуваного файлу ccam:
Назва проходить перевірки по черзі. Біля кожної перевірки показано назву, яку вона відхиляє: Work не відповідає шаблону, run є командою ccam, ccside належить іншому обліковому запису, ccfile є наявним файлом у ~/.local/bin, а git приховав би /usr/bin/git. Лише назва, що проходить усі перевірки, зберігається й отримує посилання.
shim.Checkзіставляє назву з^[a-z0-9][a-z0-9._-]{0,63}$, потім зconfig.Reserved, потім зcfg.FindShortcut. Він викликаєos.Lstatдля~/.local/bin/<name>, а для кожної іншої теки вPATHвикликаєos.Statі відхиляє виконуваний файл, який не є посиланням на ccam.- ccam зберігає
config.tomlчерезfsutil.AtomicWrite(тимчасовий файл,fsync, перейменування). shim.Removeвидаляє посилання старої короткої команди, але лише якщо воно є посиланням на ccam.shim.Installстворює посилання для кожної налаштованої короткої команди, якого бракує, черезos.Symlinkна виконуваний файл ccam, шлях до якого визначається черезos.Executableіfilepath.EvalSymlinks. Він ніколи нічого не видаляє.
Посилання вважається власним посиланням ccam, коли os.Readlink повертає шлях до ccam або коли посилання й шлях до ccam ведуть до того самого файлу. Кожне видалення й кожна перевірка перезапису проходять цей тест, тож ccam не чіпає файлів, яких він не створював.
Коли ви запускаєте коротку команду, ccam потрібна лише назва, яку ви ввели:
Оболонка знаходить ccwork у PATH, ядро переходить за посиланням і запускає виконуваний файл 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 мс), а запуск і далі читає один файл. scripts/perf-check.sh вимірює коротку команду за допомогою hyperfine з тим самим обмеженням у 10 мс (p95), що й для ccam <name>.
Безпека та граничні випадки
- Посилання, яке не належить жодному обліковому запису. Якщо посилання на ccam у
~/.local/binмає назву, яку не використовує жоден обліковий запис, наприклад після того, як ви вручну змінилиshortcutуconfig.toml, 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створює відсутні посилання.