Funzionalità
Comandi scorciatoia
Questa pagina è stata tradotta automaticamente dall'inglese. Le correzioni sono benvenute. Modifica questa pagina su GitHub
Una scorciatoia è un comando a cui dai tu il nome e che avvia Claude Code con un determinato account: ccwork --resume fa ciò che fa ccam work --resume. È un link a ccam in ~/.local/bin, quindi funziona in bash, zsh, negli script e in qualsiasi altra cosa che esegua programmi dal PATH. Le scorciatoie sono facoltative; creane una per gli account che avvii spesso.
Utilizzo
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 conferma ogni modifica:
$ 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`)Un account ha al massimo una scorciatoia, salvata come shortcut in ~/.config/ccam/config.toml. La procedura guidata di ccam add chiede Create a shortcut command for <name>? [y/N] e poi Shortcut name [cc<name>]:. Fuori dalla procedura guidata, ccam add ne crea una solo con --shortcut. ccam list mostra la scorciatoia di ogni account, oppure -.
Una scorciatoia passa ogni argomento a Claude Code, come fa ccam <name> dopo il nome. Questo vale anche per --dry-run e --help: per vedere in anteprima un avvio, usa ccam --dry-run work.
Opzioni
| Opzione | Cosa fa | Predefinito |
|---|---|---|
--remove |
Elimina la scorciatoia dell'account e il suo link | disattivata |
-h, --help |
Aiuto per il comando | |
--dry-run |
ccam shortcut la rispetta: controlla il nome e stampa Would set the shortcut of work to ccwork. o Would remove ccwork, the shortcut of work. senza salvare né creare link |
disattivata |
ccam shims install non accetta argomenti e rifiuta --dry-run con ccam: --dry-run is not supported by `ccam shims install`; nothing was changed.
Regole per i nomi, controllate in questo ordine:
- da 1 a 64 caratteri tra
a-z,0-9,.,-e_, iniziando con una lettera o una cifra; - non
ccam,claudeo un comando di ccam comerunousage; - non la scorciatoia di un altro account;
- non un file in
~/.local/binche non sia già un link a ccam; - non il nome di un altro eseguibile nel tuo
PATH.
Indicare insieme un comando e --remove si ferma con give a command or --remove, not both. Impostare il nome che un account ha già stampa work: ccwork (unchanged) e ricrea il suo link se manca.
Come funziona
Impostare un nome esegue checkShortcut, che chiama shim.Check con la cartella bin e il percorso reale del binario di ccam:
Il nome scende lungo i controlli in ordine. Accanto a ogni controllo c'è un nome che rifiuta: Work non rispetta lo schema, run è un comando di ccam, ccside appartiene a un altro account, ccfile è un file esistente in ~/.local/bin e git nasconderebbe /usr/bin/git. Solo un nome che supera tutti i controlli viene salvato e collegato.
shim.Checkconfronta il nome con^[a-z0-9][a-z0-9._-]{0,63}$, poi conconfig.Reserved, poi concfg.FindShortcut. Chiamaos.Lstatsu~/.local/bin/<name>, e per ogni altra cartella delPATHchiamaos.State rifiuta un file eseguibile che non sia un link a ccam.- ccam salva
config.tomlconfsutil.AtomicWrite(file temporaneo,fsync, rename). shim.Removeelimina il link della vecchia scorciatoia, ma solo se è un link a ccam.shim.Installcrea il link di ogni scorciatoia configurata che manca, conos.Symlinkverso il binario di ccam, individuato conos.Executableefilepath.EvalSymlinks. Non rimuove mai nulla.
Un link è considerato di ccam quando os.Readlink restituisce il percorso di ccam, oppure quando il link e il percorso di ccam portano allo stesso file. Ogni rimozione e ogni controllo di sovrascrittura passa per questa verifica, quindi ccam non tocca file che non ha creato.
Quando esegui una scorciatoia, il nome che hai digitato è l'unica cosa di cui ccam ha bisogno:
La shell trova ccwork nel PATH, il kernel segue il link e avvia il binario di ccam, e argv[0] resta ccwork. In app.Main, qualsiasi nome diverso da ccam carica una volta config.toml e chiama shim.Lookup, che trova l'account il cui shortcut è uguale a filepath.Base(argv[0]). launcher.LaunchWith segue poi gli stessi passaggi di ccam <name> con la configurazione già caricata, e passa argv[1:] a claude senza modificarli.
Perché un link simbolico e non un alias della shell o uno script wrapper: un link simbolico funziona in ogni shell e negli script, non aggiunge l'avvio di un'altra shell (circa da 1 a 2 ms) e l'avvio legge comunque un solo file. scripts/perf-check.sh misura una scorciatoia con hyperfine rispetto allo stesso limite di 10 ms (p95) di ccam <name>.
Sicurezza e casi limite
- Un link che nessun account rivendica. Se un link a ccam in
~/.local/binha un nome che nessun account usa, per esempio dopo che hai modificatoshortcutinconfig.tomla mano, ccam non ripiega sull'account predefinito. Si ferma conccam: ccold is not the shortcut of any account (see `ccam list`, `ccam shortcut`). Imposta di nuovo il nome conccam shortcut, oppure elimina il link. - File esistenti. ccam non sostituisce mai un file che non ha creato.
ccam shims installsi ferma con<path> already exists and is not a ccam link, so it was left alone. - Un binario di ccam spostato. I vecchi link puntano allora a un percorso che non esiste più, e ccam non li considera suoi. Eliminali, poi esegui
ccam shims install. - Rinomina e rimozione.
ccam renamemantiene il nome della scorciatoia, e il link continua a funzionare, perché punta a ccam e ccam cerca il nome inconfig.toml.ccam removeelimina il link dell'account.ccam shortcut <account> <new>elimina il vecchio link prima di creare quello nuovo. - PATH. Quando ccam crea un link e
~/.local/binnon è nel tuoPATH, stampaNote: /home/me/.local/bin is not in PATH. Add it to ~/.bashrc or ~/.zshrc:seguito dalla rigaexport PATH=...da aggiungere. - Controllare in seguito.
ccam doctorsegnalamissing shortcuts in /home/me/.local/bin: ccworke avvisa quando la cartella non è nelPATH.ccam doctor --fixcrea i link mancanti.