Funktionen

Slash-Befehle

Erstelle benutzerdefinierte Slash-Befehle, um Workflows zu automatisieren und Teampraktiken zu standardisieren.

Gib zum Einstieg / in Bob Shell ein, um alle verfügbaren Befehle zu sehen, oder erstelle deine eigenen, indem du eine Markdown-Datei zu .bob/commands/ oder ~/.bob/commands/ hinzufügst.

Integrierte Befehle

Bob Shell enthält die folgenden integrierten Slash-Befehle:

BefehlAliasesBeschreibung
/helpAlle verfügbaren Slash-Befehle anzeigen
/clearBildschirm leeren und Konversationsverlauf zurücksetzen
/condenseDas Kontextfenster intelligent komprimieren, um Platz freizugeben
/copyEin Element aus dem Konversationsverlauf in die Zwischenablage kopieren
/modeDen aktiven Modus wechseln (öffnet einen Picker)
/permissions/trustTool-Genehmigungsberechtigungen anzeigen und verwalten
/resume/historyEine frühere Konversation durchsuchen und fortsetzen
/settingsBob Shell-Einstellungen anzeigen und bearbeiten
/mcpKonfigurierte MCP-Server verwalten
/manage-secretsSecrets für MCP-Server-Konfigurationen verwalten
/skillsEine Skill-Referenz in den Prompt einfügen
/initBob im aktuellen Workspace initialisieren
/statusSitzungsstatus, Nutzung und Versionsinformationen anzeigen
/teamEin Team auswählen
/logsDie neueste Protokolldatei mit dem System-Viewer öffnen
/docsBob Shell-Dokumentation im Browser öffnen
/bugEinen Fehlerbericht einreichen
/exit/quit, /closeDie CLI beenden

/manage-secrets-Unterbefehle

Secrets ermöglichen es dir, sensible Werte (wie API-Schlüssel) zu speichern und sie in MCP-Server-Konfigurationen zu referenzieren, ohne sie fest einzukodieren.

UnterbefehlVerwendungBeschreibung
set/manage-secrets set KEY VALUEEinen Secret-Wert speichern
list/manage-secrets listAlle gespeicherten Secret-Schlüssel auflisten
rm/manage-secrets rm KEYEinen gespeicherten Secret entfernen

Secrets werden verschlüsselt in ~/.bob/settings/ gespeichert und können in MCP-Server-Konfigurationen mit der ${KEY}-Syntax referenziert werden.

Warum Slash-Befehle verwenden?

Slash-Befehle bieten mehrere wichtige Vorteile:

  • Workflow-Automatisierung: Komplexe mehrstufige Prozesse in einzelne Befehle umwandeln
  • Team-Standardisierung: Befehle im gesamten Team für konsistente Praktiken teilen
  • Kontexterhaltung: Projektspezifischen Kontext in jedem Befehl einbeziehen
  • Schneller Zugriff: Fuzzy-Suche und Autovervollständigung für sofortige Befehlserkennung

Wie Slash-Befehle funktionieren

Wenn du / in Bob Shell eingibst, erscheint ein Menü mit allen verfügbaren Befehlen. Diese Befehle kommen aus zwei Quellen:

BefehlstypQuelleZweck
Benutzerdefinierte Workflow-Befehle.bob/commands/ oder ~/.bob/commands/Vom Nutzer erstellte Automatisierung für bestimmte Aufgaben
ModebefehleIntegrierte und benutzerdefinierte ModiBobs Betriebskontext wechseln

Benutzerdefinierte Befehle erstellen

Benutzerdefinierte Befehle erweitern Bobs Funktionalität durch Hinzufügen von Markdown-Dateien in bestimmte Verzeichnisse:

OrtGeltungsbereichPfad
ProjektspezifischNur im aktuellen Projekt verfügbar.bob/commands/ in deinem Workspace-Stammverzeichnis
GlobalIn allen Projekten verfügbar~/.bob/commands/ in deinem Home-Verzeichnis

Der Dateiname wird zum Befehlsnamen. Zum Beispiel:

.bob/commands/
├── review.md         → /review
├── test-api.md       → /test-api
└── deploy-check.md   → /deploy-check

Verarbeitung von Befehlsnamen

Beim Erstellen von Befehlen über die UI verarbeitet Bob Shell Befehlsnamen automatisch:

  • Konvertiert zu Kleinbuchstaben
  • Ersetzt Leerzeichen durch Bindestriche
  • Entfernt Sonderzeichen
  • Entfernt führende und nachfolgende Bindestriche

Beispiel: "My Cool Command!" wird zu my-cool-command

Einfaches Befehlsformat

Erstelle einen einfachen Befehl durch Hinzufügen einer Markdown-Datei:

Help me review this code for security issues and suggest improvements.

Erweiterter Befehl mit Frontmatter

Füge Metadaten mit Frontmatter für erweiterte Funktionalität hinzu:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.

Frontmatter-Felder

FeldZweckBeispiel
descriptionErscheint im Befehlsmenü"Create a new API endpoint"
argument-hintZeigt erwartete Argumente"<endpoint-name> <http-method>"

Tool-Genehmigungsdialog

Wenn Bob Shell ein Tool verwenden möchte, erscheint ein Genehmigungsdialog. Der Dialog bietet folgende Optionen:

OptionBeschreibung
Approve OnceDiesen spezifischen Tool-Aufruf zulassen. Du wirst bei zukünftigen Aufrufen erneut gefragt.
Approve <group> tools for taskAlle Tools in derselben Tool-Gruppe für den Rest der Aufgabe zulassen. Wird für MCP-Tools nicht angezeigt.
Always Allow Command for taskEinen bestimmten Shell-Befehl für den Rest der Aufgabe zulassen.
RejectDen Tool-Aufruf ablehnen. Bob Shell führt die Aktion nicht aus.

Du kannst beim Genehmigen oder Ablehnen eines Tool-Aufrufs auch eine optionale Notiz hinzufügen. Die Notiz wird in den Konversationskontext einbezogen, damit Bob Shell sein Verhalten entsprechend anpassen kann.

Um eine gestreamte Antwort zu unterbrechen, bevor Bob Shell fertig ist, drücke Esc.

Befehlsverwaltung in Bob Shell

Bob Shell unterstützt dieselben Slash-Befehle wie Bob IDE. Obwohl Bob Shell keine dedizierte UI zur Verwaltung von Befehlen bietet, kannst du:

  1. Befehlsdateien manuell im Verzeichnis .bob/commands/ in deinem Projekt oder ~/.bob/commands/ in deinem Home-Verzeichnis erstellen
  2. Vorhandene Befehlsdateien mit einem beliebigen Texteditor bearbeiten

Slash-Befehle verwenden

Gib / in Bob Shell ein, um ein vereinheitlichtes Menü mit den folgenden Befehlstypen zu sehen:

  1. Vereinheitlichtes Menü: Benutzerdefinierte Befehle und Moduswechselbefehle erscheinen gemeinsam
  2. Autovervollständigung: Beginne zu tippen, um Befehle zu filtern (z. B. zeigt /sam sample-command-name an)
  3. Fuzzy-Suche: Befehle auch bei Teilübereinstimmungen finden
  4. Beschreibungsvorschau: Befehlsbeschreibungen im Menü anzeigen
  5. Visuelle Indikatoren: Modebefehle werden durch spezielle Icons von benutzerdefinierten Befehlen unterschieden
/mode code     Switch to Code mode
/mode ask      Switch to Ask mode
/review        Review code for security issues
/api-endpoint  <endpoint-name> <http-method>

Argumenthinweise

Argumenthinweise bieten sofortige Hilfe für Slash-Befehle und zeigen dir, welche Art von Informationen du angeben sollst, wenn ein Befehl zusätzliche Eingaben erwartet.

Wenn du / eingibst, um das Befehlsmenü aufzurufen, zeigen Befehle, die Argumente erwarten, einen hellgrauen Hinweis daneben an. Dieser Hinweis zeigt dir, welche Art von Argument der Befehl erwartet.

Zum Beispiel:

  • /mode <mode_slug> - Der Hinweis <mode_slug> zeigt an, dass du einen Modusnamen wie code oder debug angeben solltest
  • /api-endpoint <endpoint-name> <http-method> - Zeigt an, dass du sowohl einen Endpoint-Namen als auch eine HTTP-Methode benötigst

Nach Auswahl des Befehls wird er in das Chat-Eingabefeld gefolgt von einem Leerzeichen eingefügt. Der Hinweis wird nicht eingefügt; er ist nur ein visueller Leitfaden, der dir hilft zu wissen, was du als nächstes eingeben musst. Du musst dann das Argument manuell nach dem Befehl eingeben.

Argumenthinweise zu benutzerdefinierten Befehlen hinzufügen

Du kannst Argumenthinweise zu deinen benutzerdefinierten Befehlen mit dem Feld argument-hint im Frontmatter hinzufügen:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.

Dies wird im Befehlsmenü als /api-endpoint <endpoint-name> <http-method> angezeigt.

Best Practices für Argumenthinweise

  • Sei spezifisch: Verwende beschreibende Platzhalter wie <file-path> statt generischer wie <arg>
  • Zeige mehrere Argumente: Wenn dein Befehl mehrere Eingaben benötigt, zeige sie alle: <source> <destination>
  • Verwende ein einheitliches Format: Umschließe Platzhalter immer mit spitzen Klammern: <placeholder>
  • Halte es prägnant: Hinweise sollten kurz und klar sein

Häufige Fragen zu Argumenten

FrageAntwort
Was passiert, wenn ich das Argument nicht angebe?Der Befehl funktioniert möglicherweise nicht wie erwartet, oder er fordert dich zur Eingabe weiterer Informationen auf. Der Hinweis hilft dir, es beim ersten Mal richtig zu machen.
Haben alle Befehle Hinweise?Nein, nur Befehle, die für die Aufnahme von Argumenten ausgelegt sind, haben Hinweise. Befehle, die ohne zusätzliche Eingaben funktionieren, zeigen keine Hinweise an.
Kann ich einen Befehl verwenden, ohne den Hinweis zu ersetzen?Der Hinweistext (wie <mode_slug>) muss durch tatsächliche Werte ersetzt werden. Das Belassen des Hinweistexts führt wahrscheinlich dazu, dass der Befehl fehlschlägt oder sich unerwartet verhält.

Best Practices

Benennung von Befehlen

  • Verwende beschreibende, handlungsorientierte Namen
  • Halte Namen prägnant, aber klar
  • Verwende Bindestriche für Mehrteil-Befehle
  • Vermeide generische Namen wie help oder test
  • Hinweis: Namen werden automatisch slugifiziert (Kleinbuchstaben, Sonderzeichen entfernt)
  • Die Erweiterung .md wird automatisch hinzugefügt/entfernt, wie erforderlich

Befehlsinhalt

  • Beginne mit einer klaren Anweisung
  • Verwende strukturierte Formate (Listen, Abschnitte)
  • Füge spezifische Anforderungen ein
  • Referenziere Projektkonventionen
  • Halte Befehle auf eine einzelne Aufgabe fokussiert

Organisation

  • Gruppiere verwandte Befehle in Unterverzeichnissen
  • Verwende einheitliche Benennungsmuster
  • Dokumentiere komplexe Befehle
  • Bringe deine Befehle unter Versionskontrolle
  • Teile Team-Befehle im Projekt-Repository

Fehlerbehebung

Befehle erscheinen nicht

Wenn deine Befehle nicht im Menü erscheinen:

  • Dateispeicherort prüfen: Stelle sicher, dass benutzerdefinierte Befehlsdateien in .bob/commands/ oder ~/.bob/commands/ liegen
  • Dateiendung überprüfen: Benutzerdefinierte Befehle müssen .md-Dateien sein

Befehl nicht gefunden

Wenn ein Slash-Befehl nicht gefunden wird, sieht das LLM:

The slash command '/unknown-command' was not found. Please check the command name and try again.

Befehlskonflikte

  • Benutzerdefinierte Projektbefehle überschreiben globale benutzerdefinierte Befehle mit demselben Namen
  • Verwende eindeutige Namen, um Konflikte zu vermeiden
  • Bei der Erstellung doppelter Namen über die UI werden Zahlen angehängt (z. B. new-command-1, new-command-2)

Über Modebefehle

Das Slash-Menü enthält Moduswechselbefehle (wie /mode code, /mode ask), die den Betriebsmodus der KI grundlegend ändern — sie fügen nicht nur Text ein, sondern wechseln den gesamten KI-Kontext. Von dir erstellte benutzerdefinierte Modi erscheinen ebenfalls als Slash-Befehle (z. B. wird ein Modus mit dem Slug reviewer zu /reviewer). Diese Modebefehle können nicht durch benutzerdefinierte Workflow-Befehle überschrieben werden.

Plattformübergreifende Kompatibilität

Slash-Befehle funktionieren identisch in Bob Shell und Bob IDE. Das bedeutet:

  • In einer Umgebung erstellte Befehle können in der anderen verwendet werden
  • Dieselbe Befehlssyntax und dasselbe Verhalten gelten in beiden Umgebungen
  • Team-geteilte Befehle funktionieren konsistent, unabhängig davon, welche Oberfläche Teammitglieder verwenden
Wie ist dieses Thema?