Fonctionnalités
Commandes raccourcis
Cette page a été traduite automatiquement depuis l'anglais. Les corrections sont les bienvenues. Modifier cette page sur GitHub
Un raccourci est une commande que vous nommez vous-même et qui lance Claude Code avec un compte donné : ccwork --resume fait la même chose que ccam work --resume. C'est un lien vers ccam dans ~/.local/bin ; il fonctionne donc dans bash, zsh, les scripts et tout ce qui lance des programmes depuis le PATH. Les raccourcis sont facultatifs ; créez-en un pour les comptes que vous lancez souvent.
Utilisation
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 confirme chaque modification :
$ 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 compte a au plus un raccourci, enregistré sous shortcut dans ~/.config/ccam/config.toml. L'assistant de ccam add demande Create a shortcut command for <name>? [y/N] puis Shortcut name [cc<name>]:. En dehors de l'assistant, ccam add n'en crée un qu'avec --shortcut. ccam list affiche le raccourci de chaque compte, ou -.
Un raccourci transmet tous les arguments à Claude Code, de la même façon que ccam <name> après le nom. Cela inclut --dry-run et --help : pour prévisualiser un lancement, utilisez ccam --dry-run work.
Options
| Option | Effet | Par défaut |
|---|---|---|
--remove |
Supprimer le raccourci du compte et son lien | désactivé |
-h, --help |
Aide de la commande | |
--dry-run |
ccam shortcut le respecte : il vérifie le nom et affiche Would set the shortcut of work to ccwork. ou Would remove ccwork, the shortcut of work. sans rien enregistrer ni relier |
désactivé |
ccam shims install n'accepte aucun argument et refuse --dry-run avec ccam: --dry-run is not supported by `ccam shims install`; nothing was changed.
Règles de nommage, vérifiées dans cet ordre :
- de 1 à 64 caractères parmi
a-z,0-9,.,-et_, commençant par une lettre ou un chiffre ; - ni
ccam, niclaude, ni une commande ccam commerunouusage; - pas le raccourci d'un autre compte ;
- pas un fichier de
~/.local/binqui ne serait pas déjà un lien vers ccam ; - pas le nom d'un autre exécutable présent dans votre
PATH.
Indiquer à la fois une commande et --remove s'arrête avec give a command or --remove, not both. Redonner à un compte le nom qu'il a déjà affiche work: ccwork (unchanged) et recrée son lien s'il est absent.
Fonctionnement
Définir un nom exécute checkShortcut, qui appelle shim.Check avec le dossier bin et le chemin réel du binaire ccam :
Le nom descend les vérifications dans l'ordre. À côté de chaque vérification figure un nom qu'elle refuse : Work ne respecte pas le motif, run est une commande ccam, ccside appartient à un autre compte, ccfile est un fichier existant dans ~/.local/bin, et git masquerait /usr/bin/git. Seul un nom qui passe toutes les vérifications est enregistré et relié.
shim.Checkcompare le nom à^[a-z0-9][a-z0-9._-]{0,63}$, puis àconfig.Reserved, puis àcfg.FindShortcut. Il appelleos.Lstatsur~/.local/bin/<name>et, pour chaque autre dossier duPATH, il appelleos.Statet refuse un fichier exécutable qui n'est pas un lien vers ccam.- ccam enregistre
config.tomlavecfsutil.AtomicWrite(fichier temporaire,fsync, renommage). shim.Removesupprime le lien de l'ancien raccourci, mais seulement s'il s'agit d'un lien vers ccam.shim.Installcrée le lien de chaque raccourci configuré qui manque, avecos.Symlinkvers le binaire ccam, résolu avecos.Executableetfilepath.EvalSymlinks. Il ne supprime jamais rien.
Un lien est considéré comme appartenant à ccam quand os.Readlink renvoie le chemin de ccam, ou quand le lien et le chemin de ccam se résolvent vers le même fichier. Chaque suppression et chaque vérification avant écrasement passe par ce test, si bien que ccam ne touche pas aux fichiers qu'il n'a pas créés.
Quand vous lancez un raccourci, le nom que vous avez tapé est tout ce dont ccam a besoin :
Le shell trouve ccwork dans le PATH, le noyau suit le lien et lance le binaire ccam, et argv[0] vaut toujours ccwork. Dans app.Main, tout nom autre que ccam charge une fois config.toml et appelle shim.Lookup, qui trouve le compte dont le shortcut est égal à filepath.Base(argv[0]). launcher.LaunchWith suit ensuite les mêmes étapes que ccam <name> avec la configuration déjà chargée, et transmet argv[1:] tel quel à claude.
Pourquoi un lien symbolique plutôt qu'un alias de shell ou un script enveloppe : un lien symbolique fonctionne dans tous les shells et dans les scripts, il n'ajoute pas de démarrage de shell supplémentaire (environ 1 à 2 ms), et le lancement ne lit toujours qu'un seul fichier. scripts/perf-check.sh mesure un raccourci avec hyperfine par rapport à la même limite de 10 ms (p95) que ccam <name>.
Sécurité et cas particuliers
- Un lien qu'aucun compte ne revendique. Si un lien vers ccam dans
~/.local/binporte un nom qu'aucun compte n'utilise, par exemple après avoir modifiéshortcutà la main dansconfig.toml, ccam ne se rabat pas sur le compte par défaut. Il s'arrête avecccam: ccold is not the shortcut of any account (see `ccam list`, `ccam shortcut`). Redéfinissez le nom avecccam shortcut, ou supprimez le lien. - Fichiers existants. ccam ne remplace jamais un fichier qu'il n'a pas créé.
ccam shims installs'arrête avec<path> already exists and is not a ccam link, so it was left alone. - Un binaire ccam déplacé. Les anciens liens pointent alors vers un chemin qui n'existe plus, et ccam ne les considère pas comme les siens. Supprimez-les, puis lancez
ccam shims install. - Renommer et supprimer.
ccam renameconserve le nom du raccourci, et le lien continue de fonctionner, car il pointe vers ccam et ccam recherche le nom dansconfig.toml.ccam removesupprime le lien du compte.ccam shortcut <account> <new>supprime l'ancien lien avant de créer le nouveau. - PATH. Quand ccam crée un lien et que
~/.local/binn'est pas dans votrePATH, il afficheNote: /home/me/.local/bin is not in PATH. Add it to ~/.bashrc or ~/.zshrc:suivi de la ligneexport PATH=...à ajouter. - Vérifier plus tard.
ccam doctorsignalemissing shortcuts in /home/me/.local/bin: ccworket avertit quand le dossier n'est pas dans lePATH.ccam doctor --fixcrée les liens manquants.