Konfiguration, Anpassung, Plattform-Einrichtung und API-Referenzen für Pi.

Tastenkombinationen

Alle Tastaturkürzel können über ~/.pi/agent/keybindings.json angepasst werden. Jede Aktion kann an einen oder mehrere Schlüssel gebunden werden.

Die Konfigurationsdatei verwendet dieselben namespaced-Tastenkombinations-IDs, die pi intern verwendet und die Erweiterungsautoren in keyHint()- und injizierten keybindings-Managern verwenden.

Ältere Konfigurationen, die vorab benannte IDs wie cursorUp oder expandTools verwenden, werden beim Start automatisch auf die benannten IDs migriert.

Nachdem Sie keybindings.json bearbeitet haben, führen Sie /reload in pi aus, um die Änderungen zu übernehmen, ohne die Sitzung neu zu starten.

Schlüsselformat

modifier+key wobei Modifikatoren ctrl, shift, alt, super (kombinierbar) und Schlüssel sind:

  • Buchstaben: a-z
  • Ziffern: 0-9
  • Sondertasten: escape, esc, enter, return, tab, space, backspace, delete, insert, clear, home, end, pageUp, pageDown, up, down, left, right
  • Funktionstasten: f1-f12
  • Symbole: `, -, =, [, ], \, ;, ', ,, ., /, !, @, #, $, %, ^, &, *, (, ), _, +, |, ~, {, }, :, <, >, ?

Modifikatorkombinationen: ctrl+shift+x, alt+ctrl+x, ctrl+shift+alt+x, super+k, ctrl+super+k, ctrl+1 usw.

super-Bindungen erfordern ein Terminal, das den Modifikator separat meldet, normalerweise über das Kitty-Tastaturprotokoll. Ohne diese Unterstützung funktionieren sie möglicherweise nicht in Terminals.

Alle Aktionen

TUI Bewegung des Editor-Cursors

Tastenkombinations-ID Standard Beschreibung
tui.editor.cursorUp up Bewegen Sie den Cursor nach oben und durchsuchen Sie oben den älteren Verlauf
tui.editor.cursorDown down Bewegen Sie den Cursor nach unten und durchsuchen Sie unten den neueren Verlauf
tui.editor.historyPrevious (keiner) Wählen Sie den vorherigen Eintrag im Eingabeaufforderungsverlauf aus
tui.editor.historyNext (keiner) Wählen Sie den nächsten Eingabeaufforderungsverlaufseintrag aus
tui.editor.cursorLeft left, ctrl+b Cursor nach links bewegen
tui.editor.cursorRight right, ctrl+f Cursor nach rechts bewegen
tui.editor.cursorWordLeft alt+left, ctrl+left, alt+b Bewegen Sie das Cursorwort nach links
tui.editor.cursorWordRight alt+right, ctrl+right, alt+f Cursorwort nach rechts bewegen
tui.editor.cursorLineStart home, ctrl+home, ctrl+a Zum Zeilenanfang wechseln
tui.editor.cursorLineEnd end, ctrl+end, ctrl+e Zum Zeilenende wechseln
tui.editor.jumpForward ctrl+] Springe vorwärts zum Charakter
tui.editor.jumpBackward ctrl+alt+] Springe zurück zum Charakter
tui.editor.pageUp pageUp, ctrl+pageUp Scrollen Sie seitenweise nach oben
tui.editor.pageDown pageDown, ctrl+pageDown Scrollen Sie seitenweise nach unten

Die dedizierten Verlaufsaktionen ändern stets Verlaufseinträge, unabhängig von der Cursorposition in einer mehrzeiligen Eingabeaufforderung. Explizite Verlaufsbindungen haben Vorrang vor Anwendungsaktionen, während der Haupteditor fokussiert ist. Die Bindung von tui.editor.historyPrevious an ctrl+p überschreibt also den Modellwechsel in diesem Kontext, ohne Ctrl+P in Selektoren zu ändern.

TUI Editor-Löschung

Tastenkombinations-ID Standard Beschreibung
tui.editor.deleteCharBackward backspace Zeichen rückwärts löschen
tui.editor.deleteCharForward delete, ctrl+d Zeichen vorwärts löschen
tui.editor.deleteWordBackward ctrl+w, alt+backspace Wort rückwärts löschen
tui.editor.deleteWordForward alt+d, alt+delete Wort vorwärts löschen
tui.editor.deleteToLineStart ctrl+u Bis zum Zeilenanfang löschen
tui.editor.deleteToLineEnd ctrl+k Bis zum Zeilenende löschen

TUI Eingabe

Tastenkombinations-ID Standard Beschreibung
tui.input.newLine shift+enter, ctrl+j Neue Zeile einfügen
tui.input.submit enter Eingabe abschicken
tui.input.tab tab Tab / Autovervollständigung

TUI Ring töten

Tastenkombinations-ID Standard Beschreibung
tui.editor.yank ctrl+y Fügen Sie den zuletzt gelöschten Text ein
tui.editor.yankPop alt+y Nach dem Ziehen durch den gelöschten Text blättern
tui.editor.undo ctrl+- Letzte Bearbeitung rückgängig machen

TUI Zwischenablage und Auswahl

Tastenkombinations-ID Standard Beschreibung
tui.input.copy ctrl+c Auswahl kopieren
tui.select.up up Auswahl nach oben verschieben
tui.select.down down Auswahl nach unten verschieben
tui.select.pageUp pageUp Seite nach oben in der Liste
tui.select.pageDown pageDown Seite nach unten in der Liste
tui.select.confirm enter Auswahl bestätigen
tui.select.cancel escape, ctrl+c Auswahl abbrechen

TUI Vollbild-Ansichtsfenster

Diese Aktionen gelten, wenn der interaktive Modus --tui-mode fullscreen verwendet und auf den primären Transkript-Bildlaufbereich abzielt. Mit der Zwei-Finger-Trackpad- und Mausrad-Eingabe scrollen Sie durch den Bereich unter dem Zeiger und kehren zum Transkript über dem festen Editor-/Status-/Fußzeilen-Dock zurück. Wenn Sie auf einen OSC 8-Hyperlink klicken, wird dieser im Standardhandler geöffnet. Durch Ziehen mit der primären Maustaste wird Text ausgewählt und in die Zwischenablage kopiert. Wenn Sie den oberen oder unteren Rand des Transkripts gedrückt halten, wird automatisch in den Off-Screen-Inhalt gescrollt.

Vollbild-Transkriptbindungen haben Vorrang vor Editorbindungen. Die standardmäßigen unveränderten Navigationstasten steuern daher das Transkript im Vollbildmodus, während ihre ctrl-Varianten weiterhin den Editor steuern. Außerhalb des Vollbildmodus steuern beide Varianten den Editor.

Schlüssel Standardmodus Vollbildmodus
home, end Editor Transkript
ctrl+home, ctrl+end Editor Editor
pageUp, pageDown Editor Transkript
ctrl+pageUp, ctrl+pageDown Editor Editor

Dieses Routing bleibt über die normalen Aktionsbindungen konfigurierbar. Beispielsweise steuert "tui.altScreen.pageUp": "ctrl+pageUp" pageUp den Editor und ctrl+pageUp das Transkript im Vollbildmodus. Binden Sie tui.altScreen.halfPageUp und tui.altScreen.halfPageDown für kleinere Transkriptschritte und behalten Sie dabei die ganzseitigen Bindungen bei. Durch die Einstellung "tui.altScreen.pageUp": [] wird diese Transkriptverknüpfung vollständig deaktiviert. Benutzerbindungen ersetzen die Standardeinstellungen für diese Aktion.

Tastenkombinations-ID Standard Beschreibung
tui.altScreen.pageUp pageUp Scrollen Sie im Transkript eine Seite nach oben
tui.altScreen.pageDown pageDown Scrollen Sie im Transkript eine Seite nach unten
tui.altScreen.halfPageUp (keiner) Scrollen Sie im Transkript eine halbe Seite nach oben
tui.altScreen.halfPageDown (keiner) Scrollen Sie im Transkript eine halbe Seite nach unten
tui.altScreen.previousPrompt ctrl+shift+up Zur zuvor markierten Nachricht springen
tui.altScreen.nextPrompt ctrl+shift+down Zur nächsten markierten Nachricht springen
tui.altScreen.top home Scrollen Sie zum Anfang des Transkripts
tui.altScreen.bottom end Scrollen Sie zum Ende des Transkripts und folgen Sie der neuen Ausgabe

Anwendung

Tastenkombinations-ID Standard Beschreibung
app.interrupt escape Abbrechen / Abbruch
app.clear ctrl+c Editor löschen (erster) / Beenden (zweiter)
app.exit ctrl+d Beenden (wenn der Editor leer ist)
app.suspend ctrl+z (keine unter Windows) Im Hintergrund anhalten
app.editor.external ctrl+g Im externen Editor öffnen (externalEditor, $VISUAL, $EDITOR, Notepad unter Windows oder nano anderswo)
app.clipboard.pasteImage ctrl+v (alt+v unter Windows) Bild oder Text aus der Zwischenablage einfügen

Sitzungen

Tastenkombinations-ID Standard Beschreibung
app.session.new (keiner) Starten Sie eine neue Sitzung (/new)
app.session.tree (keiner) session tree Navigator öffnen (/tree)
app.session.fork (keiner) Aktuelle Sitzung verzweigen (/fork)
app.session.resume (keiner) Sitzungs-Lebenslauf-Auswahl öffnen (/resume)
app.session.togglePath ctrl+p Pfadanzeige umschalten
app.session.toggleSort ctrl+s Sortiermodus umschalten
app.session.toggleNamedFilter ctrl+n Schalten Sie den Nur-Namen-Filter um
app.session.rename ctrl+r Sitzung umbenennen
app.session.delete ctrl+d Sitzung löschen
app.session.deleteNoninvasive ctrl+backspace Sitzung löschen, wenn die Abfrage leer ist

Models und Denken

Tastenkombinations-ID Standard Beschreibung
app.model.select ctrl+l Modellauswahl öffnen
app.model.cycleForward ctrl+p Wechseln Sie zum nächsten Modell
app.model.cycleBackward shift+ctrl+p Wechseln Sie zum vorherigen Modell
app.thinking.cycle shift+tab Zyklus-Denkebene
app.thinking.toggle ctrl+t Denkblockaden abbauen oder erweitern

Anzeige und Nachrichtenwarteschlange

Tastenkombinations-ID Standard Beschreibung
app.tools.expand ctrl+o Reduzieren oder erweitern Sie die Werkzeugausgabe
app.message.copy ctrl+x Kopieren Sie die letzte Assistentennachricht oder die ausgewählte Nachricht in /tree
app.message.followUp alt+enter Folgenachricht in der Warteschlange
app.message.dequeue alt+up Stellen Sie Nachrichten in der Warteschlange im Editor wieder her

Baumnavigation

Tastenkombinations-ID Standard Beschreibung
app.tree.foldOrUp ctrl+left, alt+left Aktuelles Zweigsegment falten oder zum vorherigen Segmentanfang springen
app.tree.unfoldOrDown ctrl+right, alt+right Klappen Sie das aktuelle Zweigsegment auf oder springen Sie zum nächsten Segmentanfang oder Zweigende
app.tree.editLabel shift+l Bearbeiten Sie die Beschriftung des ausgewählten Baumknotens
app.tree.toggleLabelTimestamp shift+t Schalten Sie die Label-Zeitstempel in der Baumstruktur um
app.tree.filter.default ctrl+d Stellen Sie den Baumfilter auf die Standardansicht ein
app.tree.filter.noTools ctrl+t Schalten Sie den Baumfilter um, der die Werkzeugergebnisse ausblendet
app.tree.filter.userOnly ctrl+u Schalten Sie den Baumfilter um, der nur Benutzernachrichten anzeigt
app.tree.filter.labeledOnly ctrl+l Schalten Sie den Baumfilter um, der nur beschriftete Einträge anzeigt
app.tree.filter.all ctrl+a Baumfilter umschalten, der alle Einträge anzeigt
app.tree.filter.cycleForward ctrl+o Zyklusbaumfilter vorwärts
app.tree.filter.cycleBackward shift+ctrl+o Zyklusbaumfilter rückwärts

Bereichsbezogener Models-Selektor

Wird in der Modellauswahl mit Gültigkeitsbereich verwendet (geöffnet über /scoped-models).

Tastenkombinations-ID Standard Beschreibung
app.models.save ctrl+s Aktuelle Modellauswahl in den Einstellungen speichern
app.models.enableAll ctrl+a Alle Modelle aktivieren (oder alle, die der aktuellen Suche entsprechen)
app.models.clearAll ctrl+x Alle Modelle löschen (oder alle, die der aktuellen Suche entsprechen)
app.models.toggleProvider ctrl+p Alle Modelle für den aktuellen Anbieter umschalten
app.models.reorderUp alt+up Verschiebt das ausgewählte Modell in der Zyklusreihenfolge nach oben
app.models.reorderDown alt+down Verschiebt das ausgewählte Modell in der Zyklusreihenfolge nach unten

Benutzerdefinierte Konfiguration

Erstellen Sie ~/.pi/agent/keybindings.json:

{
  "tui.editor.historyPrevious": "ctrl+p",
  "tui.editor.historyNext": "ctrl+n",
  "tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}

Jede Aktion kann einen einzelnen Schlüssel oder eine Reihe von Schlüsseln haben. Die Benutzerkonfiguration überschreibt die Standardeinstellungen.

Unter nativem Windows verfügt app.suspend über keine Standardbindung, da Windows-Terminals die Unix-Jobsteuerung nicht unterstützen. Wenn Sie es manuell binden, zeigt Pi eine Statusmeldung an, anstatt es anzuhalten. In der WSL gilt weiterhin das normale Linux ctrl+z/fg-Verhalten.

Emacs-Beispiel

{
  "tui.editor.historyPrevious": "ctrl+p",
  "tui.editor.historyNext": "ctrl+n",
  "tui.editor.cursorLeft": ["left", "ctrl+b"],
  "tui.editor.cursorRight": ["right", "ctrl+f"],
  "tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
  "tui.editor.cursorWordRight": ["alt+right", "alt+f"],
  "tui.editor.deleteCharForward": ["delete", "ctrl+d"],
  "tui.editor.deleteCharBackward": ["backspace", "ctrl+h"],
  "tui.input.newLine": ["shift+enter", "ctrl+j"]
}

Vim-Beispiel

{
  "tui.editor.cursorUp": ["up", "alt+k"],
  "tui.editor.cursorDown": ["down", "alt+j"],
  "tui.editor.cursorLeft": ["left", "alt+h"],
  "tui.editor.cursorRight": ["right", "alt+l"],
  "tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
  "tui.editor.cursorWordRight": ["alt+right", "alt+w"]
}