Funktionen
Kurzbefehle
Diese Seite wurde maschinell aus dem Englischen übersetzt. Korrekturen sind willkommen. Diese Seite auf GitHub bearbeiten
Ein Kurzbefehl ist ein Befehl, den du selbst benennst und der Claude Code mit einem bestimmten Konto startet: ccwork --resume macht dasselbe wie ccam work --resume. Er ist ein Link auf ccam in ~/.local/bin und funktioniert daher in bash, zsh, Skripten und überall sonst, wo Programme aus dem PATH ausgeführt werden. Kurzbefehle sind optional; lege einen für die Konten an, die du oft startest.
Verwendung
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 bestätigt jede Änderung:
$ 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`)Ein Konto hat höchstens einen Kurzbefehl, gespeichert als shortcut in ~/.config/ccam/config.toml. Der Assistent von ccam add fragt Create a shortcut command for <name>? [y/N] und dann Shortcut name [cc<name>]:. Außerhalb des Assistenten legt ccam add nur mit --shortcut einen an. ccam list zeigt den Kurzbefehl jedes Kontos oder -.
Ein Kurzbefehl gibt jedes Argument an Claude Code weiter, genauso wie ccam <name> nach dem Namen. Das gilt auch für --dry-run und --help: Für eine Vorschau eines Starts verwende ccam --dry-run work.
Optionen
| Option | Wirkung | Standard |
|---|---|---|
--remove |
Den Kurzbefehl des Kontos und seinen Link löschen | aus |
-h, --help |
Hilfe zum Befehl | |
--dry-run |
ccam shortcut beachtet die Option: Es prüft den Namen und gibt Would set the shortcut of work to ccwork. oder Would remove ccwork, the shortcut of work. aus, ohne zu speichern oder zu verlinken |
aus |
ccam shims install nimmt keine Argumente und lehnt --dry-run mit ccam: --dry-run is not supported by `ccam shims install`; nothing was changed ab.
Regeln für Namen, in dieser Reihenfolge geprüft:
- 1 bis 64 Zeichen aus
a-z,0-9,.,-und_, beginnend mit einem Buchstaben oder einer Ziffer; - nicht
ccam,claudeoder ein ccam-Befehl wierunoderusage; - nicht der Kurzbefehl eines anderen Kontos;
- keine Datei in
~/.local/bin, die nicht bereits ein Link auf ccam ist; - nicht der Name eines anderen Programms in deinem
PATH.
Wer einen Befehl und --remove zusammen angibt, erhält give a command or --remove, not both. Setzt du den Namen, den ein Konto bereits hat, erscheint work: ccwork (unchanged), und der Link wird neu erstellt, falls er fehlt.
So funktioniert es
Das Setzen eines Namens führt checkShortcut aus, das shim.Check mit dem bin-Ordner und dem echten Pfad der ccam-Binärdatei aufruft:
Der Name durchläuft die Prüfungen der Reihe nach. Neben jeder Prüfung steht ein Name, den sie ablehnt: Work passt nicht zum Muster, run ist ein ccam-Befehl, ccside gehört einem anderen Konto, ccfile ist eine vorhandene Datei in ~/.local/bin, und git würde /usr/bin/git verdecken. Nur ein Name, der jede Prüfung besteht, wird gespeichert und verlinkt.
shim.Checkprüft den Namen gegen^[a-z0-9][a-z0-9._-]{0,63}$, dann gegenconfig.Reserved, dann mitcfg.FindShortcut. Es ruftos.Lstatfür~/.local/bin/<name>auf, ruft für jeden anderen Ordner imPATHos.Statauf und lehnt eine ausführbare Datei ab, die kein Link auf ccam ist.- ccam speichert
config.tomlmitfsutil.AtomicWrite(temporäre Datei,fsync, rename). shim.Removelöscht den Link des alten Kurzbefehls, aber nur, wenn er ein Link auf ccam ist.shim.Installlegt für jeden konfigurierten Kurzbefehl, dessen Link fehlt, den Link an, mitos.Symlinkauf die ccam-Binärdatei, ermittelt mitos.Executableundfilepath.EvalSymlinks. Es entfernt nie etwas.
Ein Link gilt als ccams eigener, wenn os.Readlink den ccam-Pfad zurückgibt oder wenn Link und ccam-Pfad auf dieselbe Datei führen. Jedes Entfernen und jede Prüfung vor dem Überschreiben läuft über diesen Test, daher fasst ccam keine Dateien an, die es nicht selbst angelegt hat.
Wenn du einen Kurzbefehl ausführst, ist der eingetippte Name das Einzige, was ccam braucht:
Die Shell findet ccwork im PATH, der Kernel folgt dem Link und startet die ccam-Binärdatei, und argv[0] ist weiterhin ccwork. In app.Main lädt jeder Name außer ccam einmal config.toml und ruft shim.Lookup auf, das das Konto findet, dessen shortcut gleich filepath.Base(argv[0]) ist. launcher.LaunchWith durchläuft dann dieselben Schritte wie ccam <name> mit der bereits geladenen Konfiguration und gibt argv[1:] unverändert an claude weiter.
Warum ein symbolischer Link und kein Shell-Alias oder Wrapper-Skript: Ein symbolischer Link funktioniert in jeder Shell und in Skripten, er kostet keinen zusätzlichen Shell-Start (etwa 1 bis 2 ms), und der Start liest weiterhin nur eine Datei. scripts/perf-check.sh misst einen Kurzbefehl mit hyperfine gegen dasselbe Limit von 10 ms (p95) wie ccam <name>.
Sicherheit und Sonderfälle
- Ein Link, den kein Konto beansprucht. Hat ein Link auf ccam in
~/.local/bineinen Namen, den kein Konto verwendet, etwa nachdem dushortcutinconfig.tomlvon Hand bearbeitet hast, greift ccam nicht auf das Standardkonto zurück. Es hält mitccam: ccold is not the shortcut of any account (see `ccam list`, `ccam shortcut`)an. Setze den Namen mitccam shortcuterneut oder lösche den Link. - Vorhandene Dateien. ccam ersetzt nie eine Datei, die es nicht selbst angelegt hat.
ccam shims installhält mit<path> already exists and is not a ccam link, so it was left alonean. - Eine verschobene ccam-Binärdatei. Alte Links zeigen dann auf einen Pfad, den es nicht mehr gibt, und ccam betrachtet sie nicht als seine eigenen. Lösche sie und führe dann
ccam shims installaus. - Umbenennen und entfernen.
ccam renamebehält den Namen des Kurzbefehls, und der Link funktioniert weiter, weil er auf ccam zeigt und ccam den Namen inconfig.tomlnachschlägt.ccam removelöscht den Link des Kontos.ccam shortcut <account> <new>löscht den alten Link, bevor es den neuen anlegt. - PATH. Wenn ccam einen Link anlegt und
~/.local/binnicht in deinemPATHliegt, gibt esNote: /home/me/.local/bin is not in PATH. Add it to ~/.bashrc or ~/.zshrc:aus, gefolgt von derexport PATH=...-Zeile, die du hinzufügen musst. - Später prüfen.
ccam doctormeldetmissing shortcuts in /home/me/.local/bin: ccworkund warnt, wenn der Ordner nicht imPATHliegt.ccam doctor --fixlegt die fehlenden Links an.