Snippet-Manager¶
Mit dem Snippet Manager können Sie wiederverwendbare Codefragmente, Skripte und Konfigurationsvorlagen speichern, organisieren und schnell einfügen. Verwalten Sie Snippets in mehreren Sprachen mit Syntaxhervorhebung, erweiterter Suche, KI-gestützter Bearbeitung, Platzhaltervariablen und flexiblen Exportoptionen.
Übersicht¶
Der Snippet Manager umfasst die folgenden Funktionen:
- Systemspalte (Betriebssystem) – Eine sortierbare Betriebssystemspalte für jedes Snippet (Beliebig, Linux, macOS, Windows). Wird automatisch festgelegt, wenn ein Snippet über Workflow-Skript generieren erstellt wird.
- Sortierbare Spalten – Alle Spalten (Name, Sprache, Kategorie, System, Tags) sind sortierbar.
- Skript-Header-Kategorie – Eine feste, nicht löschbare Kategorie, die wiederverwendbare Header-Vorlagen für die Workflow-Skript-Generierung enthält.
Öffnen des Snippet-Managers¶
- Menü: Extras → Snippet-Manager
- Verknüpfung: Ctrl+Shift+S (Cmd+Shift+S auf macOS)
Snippets erstellen und bearbeiten¶
- Klicken Sie auf Hinzufügen (oder Bearbeiten, um ein vorhandenes Snippet zu ändern).
- Füllen Sie die Felder aus:
- Name – Ein beschreibender Name.
- Codesprache – Wählen Sie die Programmiersprache aus (Bash, Python, Java, JavaScript, TypeScript, SQL, XML, JSON, YAML und mehr). Aktiviert die Syntaxhervorhebung. Mit der Schaltfläche „Hinzufügen“ (+) neben der Liste wird eine Sprache hinzugefügt, die noch nicht angeboten wird: Geben Sie ihren Namen einmal ein und sie wird gespeichert und in jedem zukünftigen Snippet-Editor angeboten. Für die KI-Eingabeaufforderungen und die Dateierweiterung wird eine selbst hinzugefügte Sprache verwendet; Die Syntaxhervorhebung greift auf einfachen Text zurück, es sei denn, korTTY liefert zufällig eine Grammatik dafür.
- Text-Sprache – Welche Sprache sollte KI-geschriebener Code für Kommentare und für Nachrichten verwenden, die Benutzern angezeigt, protokolliert oder als Hilfe gedruckt werden? Die Standardeinstellung Automatisch – Sprache des Skripts beibehalten lässt die eigene Prosa des Snippets in Ruhe: korTTY schreibt neuen Text in der Sprache, die das Skript bereits verwendet, und übersetzt nichts. Die Auswahl einer Sprache ist stattdessen eine bewusste Anweisung, den vorhandenen Text des Snippets in diese zu konvertieren. Es ist unabhängig von der korTTY-Schnittstellensprache. Aktivieren Sie Als Standard speichern, um die Auswahl für zukünftige Snippets beizubehalten. andernfalls gilt es nur für diesen Editor.
- Kategorie – Wählen Sie eine vorhandene Kategorie aus oder geben Sie eine neue ein. Die feste, nicht löschbare Kategorie Script-Header enthält wiederverwendbare Header-Vorlagen für generierte Workflow-Skripte.
- System – Wählen Sie optional ein Zielbetriebssystem (Beliebig, Linux, macOS, Windows). Automatische Einstellung bei Erstellung über Workflow-Skript generieren basierend auf dem geprüften Betriebssystem des Agenten; Sie können es für jedes Snippet manuell überschreiben.
- Tags – Durch Kommas getrennte Schlüsselwörter für die Suche (z. B.
docker, deploy, backup). - Description – Optionale Freitextbeschreibung des Snippets.
- Inhalt – Der Snippet-Code. Der Editor bietet Live-Syntaxhervorhebung basierend auf der ausgewählten Sprache.
- Klicken Sie auf OK. Wenn sich der Snippet-Inhalt geändert hat, speichert KorTTY das bearbeitete Snippet und schließt gleichzeitig den Dialog. Beim Bearbeiten eines vorhandenen Eintrags speichert Als neues Snippet speichern den aktuellen Inhalt als neues Snippet mit einer neuen ID und lässt das Original unverändert.
Editor-Symbolleiste und Funktionen¶
Die Symbolleiste des Snippet-Editors bietet:
- Formatierungscode – Formatieren Sie den Inhalt mit lokalen Formatierern oder KI-gestützter Formatierung.
- Syntax prüfen – Validieren Sie die Syntax (lokal oder KI-unterstützt).
- AI-Text – Korrigieren Sie die Rechtschreibung, übersetzen Sie oder erstellen Sie technische Beschreibungen.
- AI-Code – Vervollständigen Sie den Code, führen Sie eine vollständige Codeanalyse durch, verbessern Sie eine Auswahl (Lesbarkeit, Robustheit, Leistung, Kommentare oder eine benutzerdefinierte Anweisung), migrieren Sie das Snippet in eine einzelne Sprache, überprüfen Sie die Sicherheit oder generieren Sie Diagramme.
- Einzeiler – Als Terminal-Einzeiler exportieren.
- Editor-Zoom – Passen Sie die Textgröße mit Ctrl++ und Ctrl+- an.
- Editor-Profile – Wechseln Sie zwischen integrierten, von IntelliJ inspirierten Profilen und benutzerdefinierten Farbschemata.
- Hintergrundhelligkeit – Editor-Hintergrund anpassen.
- Zeilenumbruch – Zeilenumbruch ein-/ausschalten.
- Zeilennummern – Anzeige der Zeilennummern umschalten.
Wenn der Editor über den SFTP-Manager für eine lokale oder Remote-Datei geöffnet wird, bleibt dieselbe Symbolleiste verfügbar und das Dialogfeld verwendet Schaltflächen zum Speichern im Dateimodus.
Spaltenlineal und Formatierung der Zeilenbreite¶
Oberhalb des Inhaltsfelds hält das Spaltenlineal die aktuelle Caret-Spalte links als Column N fest und zeigt eine Live-Markierung an der entsprechenden Editorposition an. Wenn Sie mit der Maus über den Live-Marker fahren, wird Position N angezeigt. Klicken Sie auf das Lineal, um eine Markierung für die maximale Zeilenlänge festzulegen (Spalten 20–240). Klicken Sie mit der rechten Maustaste auf diese Markierung, um den Inhalt auf die ausgewählte Breite zu formatieren oder die Markierung zu entfernen.
Die Formatierung der Zeilenbreite funktioniert lokal nur für Formatierer, die konfigurierbare Breite unterstützen:
- Prettier-gestützte Webformate (JavaScript, TypeScript, HTML, CSS)
- Python (Schwarz)
- Perl (Perl::Tidy)
Bei Sprachen ohne lokale Zeilenbreitenunterstützung fragt KorTTY, ob eine KI-gestützte Formatierung verwendet werden soll. Sowohl die lokale als auch die KI-gestützte Formatierung zeigen eine Vorher/Nachher-Vorschau an, bevor Änderungen übernommen werden.
Formatcode¶
Format Code nutzt den gemeinsam genutzten lokalen Formatierungsdienst von KorTTY:
- Eingebaute Formatierer: JSON, XML, YAML/YML, TOML, INI/properties, Groovy
- Gebündelte Formatierer: Java (google-java-format), Bash/Shell (shfmt), Web/JS/TS/HTML/CSS (Prettier), SQL (sql-formatter), Perl (Perl::Tidy)
- Fallback: Optionale PATH-Fallbacks für Entwickler-Setups, wenn ein gebündelter Formatierer fehlt
Prettier läuft als Offline-Standalone-Browser-Build mit nur den Plugins Babel, Estree, TypeScript, HTML und PostCSS; SQL verwendet den gebündelten SQL-Formatter-Browser-Build. Beide werden träge in einem isolierten JavaFX-WebView initialisiert und benötigen keine installierte oder gepackte Node.js-Laufzeit. Anfragen werden serialisiert und behalten das gleiche 15-Sekunden-Timeout, die gleiche Anbieteranzeige und die konfigurierbare Prettier-Linienbreite wie das Prozess-Backend; Eine ausgefallene oder abgelaufene Engine wird vor der nächsten Anfrage verworfen.
Wenn die lokale Formatierung nicht verfügbar ist und das konfigurierte AI-Profil Snippet-AI-Funktionen bietet, fragt KorTTY, ob die AI-Unterstützung verwendet werden soll. Die AI-Formatierung wird erst angewendet, nachdem die Vorher/Nachher-Vorschau akzeptiert wurde.
Editor-Profile¶
Wechseln Sie zwischen:
- Aktuelle benutzerdefinierte Farben – Benutzerdefinierte Palette
- 10 integrierte, von IntelliJ inspirierte Profile – Vordefinierte Farbschemata
- Vom Benutzer erstellte Profile – Von Ihnen erstellte benutzerdefinierte Profile
Profile speichern Vordergrund-/Hintergrundfarben, Syntaxfarben, Cursorfarbe und Cursorstil.
AI-unterstützte Editorfunktionen¶
Wenn AI konfiguriert ist, bietet der Snippet-Editor zusätzliche Aktionen:
AI-Vorschläge¶
- AI-Vorschlag – Erzeugt einen Dateinamen, eine Beschreibung, Codesprache und Text-Sprache aus dem aktuellen Codeinhalt. Eine erkannte Codesprache, die noch nicht in der Liste enthalten ist, wird dieser hinzugefügt, sodass die Erkennung niemals stillschweigend verworfen wird.
- Korrekte Schreibweise – Im Beschreibungsfeld; sendet nur Beschreibungstext an die KI.
Textsprache¶
Wenn KI konfiguriert ist, wählt Text-Sprache – direkt unter Codesprache im Editorformular – aus, welche Sprache der von KI geschriebene Code für seine Kommentare und Nachrichten verwendet und in welcher Sprache die Rechtschreibkorrektur funktioniert.
Die Standardeinstellung ist Automatisch – behalten Sie die Sprache des Skripts bei. korTTY ermittelt, in welcher Sprache die Kommentare und Nachrichten des Snippets bereits geschrieben sind, und verlangt von der KI, diese beizubehalten: Vorhandener Text bleibt unverändert und alles Neue wird passend geschrieben. Ein auf Englisch kommentiertes Skript bleibt auch dann englisch, wenn Sie korTTY auf Deutsch ausführen. Bezeichner, Dateipfade, Befehle, Optionen, Konfigurationsschlüssel und andere Code-Tokens werden in keinem der beiden Modi berührt.
Die Auswahl einer Sprache ist stattdessen eine explizite Anweisung, die Prosa des Snippets in diese zu konvertieren – das vorherige Verhalten, jetzt Opt-in statt automatisch. Eine auswahlbasierte Aktion wendet den Vertrag auf seine zurückgegebene Auswahl an, was einen vollständigen Ersatz für das gesamte Skript darstellt.
Wenn korTTY nicht erkennen kann, welche Sprache ein Skript verwendet – es gibt zu wenig Text, um es zu beurteilen, oder die Kommentare sind gemischte Sprachen –, fragt es nach, bevor etwas geändert wird, anstatt zu raten. Aktivieren Sie in diesem Dialog das Häkchen bei Für dieses Snippet merken, damit die Frage für dieses Snippet nicht erneut gestellt wird. Durch das Schließen des Dialogs wird die Aktion abgebrochen und der Code bleibt unberührt.
All dies ist unabhängig von der korTTY-Schnittstellensprache und dem Codesprache-Selektor, der weiterhin die Programmiersprache und die Syntaxhervorhebung definiert. Analyseberichte, Verbesserungsbeschreibungen und Analysediagrammbeschriftungen folgen immer der korTTY-Schnittstellensprache.
Die Liste enthält korTTYs eigene Schnittstellensprachen sowie alle von Ihnen hinzugefügten AI-generierten Sprachen . KI-Vorschlag kann es auch für Sie ausfüllen: Es liest die Kommentare des Snippets und seine gedruckte Ausgabe (echo, print, printf, Write-Host und ähnliches) und wählt die gefundene Sprache vor – einschließlich einer Sprache, für die korTTY keine Schnittstellenübersetzung hat, die dann der Liste hinzugefügt wird. Ein Skript ohne für Menschen lesbaren Text lässt die aktuelle Auswahl unberührt.
Lassen Sie Als Standard speichern deaktiviert, um eine vorübergehende Auswahl zu treffen, die nur für das aktuelle Editorfenster gilt. Markieren Sie es, um die ausgewählte Sprache als Standard für neu geöffnete Snippet-Editoren zu speichern; Dadurch wird die bestehende Standardsprache für AI-Text im Code-Einstellung unter Einstellungen → AI aktualisiert. Andere bereits geöffnete Editorfenster behalten ihre eigene Auswahl.
Die Rechtschreibkorrektur verwendet die ausgewählte Sprache für Grammatik- und Rechtschreibregeln, ohne den Text zu übersetzen. Auswahl übersetzen… behält seinen separaten Zielsprachendialog bei und wählt zunächst die aktuelle Textsprache aus. Lokale Formatierer und Syntaxprüfungen sind davon nicht betroffen.
AI Textmenü¶
- Rechtschreibung in der Auswahl korrigieren – Tippfehler im ausgewählten Text korrigieren.
- Auswahl übersetzen… – Ausgewählten Text in eine andere Sprache übersetzen.
- Technische Beschreibung – Dokumentation für den ausgewählten Code oder das gesamte Snippet erstellen.
Optionale zusätzliche Anweisungen¶
Wenn die Option in Einstellungen → KI aktiviert ist, zeigt der Editor ein Feld mit gemeinsamen Anweisungen an, das bei Anfragen zur Rechtschreibkorrektur, Übersetzung und technischen Beschreibung gesendet wird.
Letzte AI-Änderung umschalten¶
Die Schaltfläche ↺ wechselt zwischen dem Originalcode und der letzten KI-generierten Editoränderung.
AI Codevervollständigungen¶
Der Snippet-Editor bietet zwei Arten der Code-Vervollständigung, beide innerhalb des Monaco-Editors: eine Vervollständigungsliste, die Sie bei Bedarf öffnen, und optionalen Geistertext, der nach einer Tipppause von selbst erscheint. Die Tasten sind unter Tastaturkürzel aufgeführt.
- Vervollständigungsliste – Drücken Sie Shift+Tab mit dem Cursor am Ende einer Zeile, in der sich Text befindet, oder Ctrl+Space irgendwo im Editor (unter macOS ist das das Physische). Ctrl Schlüssel; weil macOS oft reserviert Ctrl+Space zum Umschalten von Eingangsquellen, Cmd+I Und Alt+Esc öffnen Sie auch die Liste). Die Liste wird sofort mit Kandidaten geöffnet, die aus dem Snippet selbst stammen – den Arrays, Hashes, Variablen und Funktionen, die zur Stelle passen, gefolgt von Redewendungen der Sprache: after
for x inIn einem Bash-Skript steht jedes Array an erster Stelle und danachuse POSIXin Perl das Üblicheqw(...)Listen importieren. Up / Down Verschieben der Auswahl, Eingabe filtert die Liste, Enter oder Tab fügt den ausgewählten Eintrag ein und Esc schließt die Liste. Als Vorlage wird ein Idiom mit Platzhaltern eingefügt Tab springt von einem Platzhalter zum nächsten. AI Complete im Menü AI Code und im Kontextmenü des Editors öffnet dieselbe Liste. Tab immer noch Einrückungen, und Shift+Tab Überall außer am Ende einer nicht leeren Zeile wird immer noch ausgerückt. Die Kombination liegt bei Ihnen: Konfiguration → Globale Einstellungen → Snippet-Editor verfügt über ein Feld Tastenkürzel KI-Vervollständigung, das alles aufzeichnet, was Sie drücken – eine Taste oder eine Taste mit bis zu drei Modifikatoren – und es auf später geöffnete Snippet-Editoren anwendet Ctrl+Space arbeitet weiter; siehe Einstellungen des Snippet-Editors. - KI-Kandidaten – Wenn ein KI-Profil konfiguriert ist, fragt jede Liste das Modell außerdem nach bis zu fünf Abschlüssen. Sie sind mit einem Sternchen ✦ gekennzeichnet, werden nach den lokalen Einträgen sortiert und der offenen Liste hinzugefügt, sobald sie eintreffen. Die lokalen Einträge sind in der Zwischenzeit verwendbar und in der Statuszeile wird die Anfrage und die Anzahl der hinzugefügten Kandidaten angezeigt. Beim Eintreffen springt die Auswahl der Liste auf den ersten Eintrag zurück. Während eine andere KI-Aktion des Editors läuft, werden in der Liste nur die lokalen Kandidaten angezeigt.
- Auto AI Complete – Ein Schalter im Menü AI Code, der Geistertext aktiviert: Wenn Sie einen Moment innehalten, während sich der Cursor am Ende einer nicht leeren Zeile befindet, wird die Fortsetzung des Modells hinter dem Cursor ausgegraut angezeigt. Tab akzeptiert es, Esc verwirft es und Alt+] / Alt+[ geht die Alternativen durch (die physischen Tasten
]und[eines US-Layouts, was auch immer sie auf Ihrem drucken). Standardmäßig deaktiviert und nur für die aktuelle Editorsitzung gespeichert; In einer Datenmitteilung wird Ihre Zustimmung einmal pro Bewerbungsstart und nicht einmal pro Redakteur eingeholt. Während eine Ghost-Text-Anfrage ausgeführt wird, wird sie in der Hinweisleiste mit der Schaltfläche Abbrechen angezeigt. Die eigenen AI-Anforderungsberichte der Liste werden nur in der Statuszeile angezeigt. - Sprachdienste – Für JavaScript, TypeScript, JSON, CSS und HTML erscheinen Monacos eigene Sprachvorschläge in derselben Liste neben den Kandidaten von korTTY. Die erste Liste in einem solchen Snippet kann einen Moment dauern, während der Sprachdienst startet.
Eine Abschlussanforderung blockiert niemals die anderen KI-Aktionen des Editors. Wenn Sie eine davon starten – Vollständige Codeanalyse, eine Verbesserung, eine Sicherheitsüberprüfung, ein Diagramm –, wird eine laufende Abschlussanforderung abgebrochen, der Ghosttext-Timer gestoppt und sichtbarer Ghosttext ausgeblendet, sodass sich die beiden nicht überschneiden können. Eine Vervollständigungsanfrage, die nach 30 Sekunden nicht beantwortet wurde, wird abgebrochen, unabhängig von der Zeitüberschreitung, die das Profil zulässt. Ein akzeptierter KI-Eintrag oder Geistertext gilt als KI-Änderung, daher wechselt die Schaltfläche ↺ zurück zum Text davor; Lokale Einträge sind normale Bearbeitungen.
AI Codeaktionen¶
Das Menü AI-Code gruppiert die Aktionen, die den Code selbst lesen oder neu schreiben:
- AI Complete / Auto AI Complete – AI Complete öffnet die Abschlussliste am Cursor, dieselbe Liste Shift+Tab öffnet sich; Auto AI Complete schaltet Geistertext nach einer Tipppause um (siehe AI-Code-Vervollständigungen über).
- Vollständige Codeanalyse – Öffnet ein umfangreiches Analysefenster: eine Zusammenfassung der Funktionsweise des Skripts in einfacher Sprache, seine externen Abhängigkeiten, kategorisierte Verbesserungsvorschläge, die Sie ankreuzen und anwenden können, sowie ein automatisch generiertes Flussdiagramm. Siehe Vollständige Codeanalyse unten.
- Verbesserung der Lesbarkeit/Robustheit/Leistung – Schreibt den ausgewählten Codebereich in Richtung eines Ziels ohne unabhängige Änderungen um. Bevor Robustheit verbessern startet, werden zwei optionale Bereiche für zusätzliche Regeln angezeigt: Härtungsoptionen, Eingabe-Härtung. Wenn mindestens eine Regel aktiv ist, schreibt KorTTY das komplette Snippet neu, damit es globale Prolog- oder Epilog-Änderungen anwenden kann.
- Codekommentare optimieren – Kommentiert den ausgewählten Codebereich: Die KI fügt mithilfe der spracheigenen Kommentarsyntax direkt über oder neben den Zeilen, zu denen sie gehören, Erklärungen dazu ein, was der Code tut und warum, und ersetzt veraltete oder irreführende Kommentare. Ausführbarer Code bleibt unberührt. Die Kommentare sind in der Text-Sprache des Herausgebers verfasst. Verfügbar im Menü AI-Code und im Kontextmenü des Editors auf eine Auswahl.
- Benutzerdefinierte Verbesserung… – Schreibt den ausgewählten Codebereich gemäß einer von Ihnen eingegebenen Freitextanweisung neu. Es werden dieselben zwei optionalen Regelfelder angezeigt: Härtungsoptionen, Eingabe-Härtung. Wie bei Robustheit verbessern schreibt KorTTY das komplette Snippet neu, wenn eine Härtungsregel aktiv ist.
- In eine Sprache migrieren… – Schreibt ein gemischtsprachiges Snippet um, sodass alles in einer Zielsprache geschrieben ist. KorTTY erkennt den Mix lokal und bietet nur das an, was tatsächlich zutrifft; Ein Orchestrierungsformat (Azure DevOps Pipeline, GitHub Actions, Jenkinsfile, Ansible, …) bettet die Shell konstruktionsbedingt ein und wird daher nie als Ganzes migriert – nur seine Skriptschritte können vereinheitlicht werden, und eine Plattformkonvertierung wird angeboten, aber nie vorab ausgewählt. Siehe Sprachvereinheitlichung.
- Sicherheitsprüfung – Erstellt einen Sicherheitsbericht. Wählen Sie die zu behebenden Ergebnisse aus. KorTTY wendet sie mit einer Vorher-/Nachher-Vorschau an, die hervorhebt, was sich geändert hat und warum. Siehe Sicherheitscheck unten.
- Diagramm – Öffnet die gespeicherten Diagramme des Snippets oder generiert das erste Flussdiagramm mit logischer Struktur, wenn noch keines vorhanden ist. Ein Snippet kann mehrere Diagramme in fünf Familien speichern – logische Struktur, Sequenz, Zustand, Klasse und ER. Siehe Mermaid-Diagramme unten.
Das Editor-Kontextmenü bietet außerdem AI Assistant…, der einen Anweisungsdialog für die aktuelle Cursorposition öffnet: KorTTY sendet den vollständigen Snippet, den Cursor-Offset, die Zeile, die Spalte und Ihre Anweisung an das konfigurierte AI-Profil und zeigt das Ergebnis als Vorher/Nachher-Vorschau an.
Das Kontextmenü verfügt zusätzlich über ein Untermenü Diagramm generieren, in dem die fünf Diagrammfamilien aufgeführt sind. Bei einer Codeauswahl wechselt die Beschriftung zu Diagramm aus Auswahl generieren und die ausgewählten Familiendiagramme stellen nur die ausgewählten Linien dar – die Auswahl wird auf ganze Linien ausgerichtet und das resultierende Diagramm merkt sich seinen Linienbereich. Ohne Auswahl wird das gesamte Snippet grafisch dargestellt. Jedes generierte Diagramm wird zu den gespeicherten Diagrammen des Snippets hinzugefügt; siehe Mermaid-Diagramme.
Lesbarkeit, Leistung, Kommentaroptimierung und eine benutzerdefinierte Verbesserung schreiben nur den ausgewählten Bereich um, wenn in beiden Härtungsfeldern keine ausgewählten Regeln vorhanden sind. Wählen Sie daher zuerst einen Codebereich aus. Robustheit verbessern und Benutzerdefinierte Verbesserung schreiben stattdessen das komplette Snippet immer dann neu, wenn eine klassische Härtungsoption oder ein unterstützter Eingabe-Härtungsschutz aktiv ist, da diese Regeln möglicherweise den Prolog und den Epilog benötigen. Jedes Ergebnis wird als Vorher/Nachher-Vorschau (das Fenster KI-Änderung prüfen) angezeigt, bevor etwas angewendet wird; Eine unvollständige Antwort mit vollständigem Skript und einer Auslassungsmarkierung wird abgelehnt.
Warning
Snippet-KI-Aktionen senden den aktuellen Snippet-Inhalt, die Auswahl- oder Cursor-Metadaten und Eingabeaufforderungsanweisungen an das konfigurierte Standard-KI-Profil (oder, für die Sicherheitsüberprüfung, das dedizierte Sicherheitsüberprüfungsprofil). Berechtigte Aktionen können zusätzlich aktivierte, konfigurierbare KI-Fähigkeiten senden; Die Nur-Quelle-Diagrammanforderung sendet keinen konfigurierbaren Bibliotheksskill und trägt stattdessen immer den kompakten integrierten Aktionsskill von korTTY für die ausgewählte Diagrammfamilie. Snippet-KI-Aktionen aktivieren keine Internet-Tools, selbst wenn das ausgewählte Profil über Internetzugang verfügt. Die Codevervollständigung ist eingeschränkter: Die lokalen Kandidaten in der Vervollständigungsliste werden von korTTY selbst berechnet und verlassen nie die Maschine, und eine KI-Vervollständigungsanforderung sendet nur den Code um den Cursor herum – bis zu 6.000 Zeichen davor und 1.500 danach – zusammen mit den Namen der Arrays, Variablen und Funktionen des Snippets und nicht das gesamte Snippet. Abschlussanfragen überspringen Wissensspeicher; Es gelten weiterhin lokal angepasste KI-Fähigkeiten. Auto AI Complete wiederholt diese Anfrage nach jeder Tipppause, während es aktiviert ist. Lassen Sie es daher für sensible Snippets deaktiviert, es sei denn, Sie vertrauen dem konfigurierten Endpunkt.
Vollständige Code-Analyse¶

Vollständige Codeanalyse öffnet ein spezielles Fenster, das das gesamte Snippet auf einmal untersucht und konkrete Verbesserungen anbietet, die Sie anwenden können. Das Fenster ist nicht modal – Sie können das Snippet weiter bearbeiten, während es geöffnet bleibt – und in der Titelleiste wird der Dateiname des Skripts angezeigt, sodass Sie mehrere Analysen unterscheiden können. In der Titelleiste des Snippet-Editors wird ebenfalls der Name der Datei angezeigt, die Sie bearbeiten. Wenn Sie eine Auswahl anwenden, wird dieses Analysefenster zum Anker einer dreiteiligen Arbeitsoberfläche: Das schmale KI-Verarbeitungsfenster dockt an einer Seite an und die Überprüfungsvorschau an der anderen, und alle drei bleiben geöffnet, bis Sie das Analysefenster schließen.
Der Bericht und das Flussdiagramm werden durch zwei separate KI-Anfragen generiert: Die Analyseanforderung gibt die Zusammenfassung, Abhängigkeiten und Verbesserungen zurück, und sobald das Fenster geöffnet wird, startet der Diagrammbereich seine eigene dedizierte Diagrammanforderung – dieselbe fokussierte Anforderung, die Regenerate verwendet – während ein Spinner angezeigt wird. Jede Anfrage enthält eine zeilennummerierte Kopie des Skripts. Keiner von beiden wiederholt eine zweite Rohskriptkopie in derselben Eingabeaufforderung. Die Analyseanfrage sendet immer das komplette Skript. Die Diagrammanforderung sendet vollständige bis zu 400 Zeilen und darüber hinaus stattdessen eine komprimierte Strukturübersicht: seine Definitionen und den Ablauf auf oberster Ebene mit markierten eliminierten Läufen und Beibehaltung der ursprünglichen Zeilennummern, sodass Codeverweise immer noch auf echte Snippet-Zeilen verweisen. Das Senden jeder Zeile eines Skripts mit viertausend Zeilen führte dazu, dass die Modelle sie transkribierten, anstatt sie zusammenzufassen. Über OpenAI-kompatibles HTTP beschränkt korTTY den anfänglichen Analysebericht auf ein striktes Zusammenfassungs-/Abhängigkeits-/Verbesserungs-JSON-Schema und die Diagrammantwort auf ein eigenes Titel-/Mermaid-/CodeReferences-Schema – die Diagrammgrammatik erfordert Knotenbezeichnungen in Anführungszeichen, und ein Endpunkt, der das Schema berücksichtigt, kann ihre Escapezeichen nicht verlieren. Beide versuchen es einmal ohne das Schema nur dann erneut, wenn der Endpunkt die strukturierte Ausgabe explizit ablehnt. Eine fehlerhafte Modellausgabe wird nicht wiederholt und ein Diagramm wird nie erneut angefordert. Die Diagrammanforderung ist bewusst kompakt und quellenorientiert: Sie verwendet das feste Mermaid-Schema, die Skript- und Beschriftungssprache und eine unveränderliche integrierte Mermaid-Aktionsfähigkeit, fügt jedoch keine konfigurierbaren Bibliotheksfähigkeiten oder Auszüge aus dem Wissensspeicher hinzu. Diese erforderliche Fähigkeit bildet den Laufzeitkontrollfluss statt der Deklarationsreihenfolge ab, gruppiert wiederholte Arbeiten mit demselben Zweck, behält echte Entscheidungen, Fehlerpfade und Schleifenausgänge bei und erfordert, dass jeder Knoten von Anfang bis Ende auf einem verbundenen Pfad mit einem genauen Quellbereich liegt. Wenn der Wert none Reasoning verfügbar ist und das aktive Profil über eine feste Modellauswahl verfügt, legt korTTY diesen Wert automatisch nur für diese Anfrage fest; Andernfalls wird der konfigurierte Wert des Profils beibehalten und das gespeicherte Profil wird nie geändert. Ein Auto-Profil wird nicht von zuvor erkannten Funktionen überschrieben, da sich sein geladenes Modell ändern kann; ein explizit konfigurierter none-Wert gilt weiterhin. OpenAI-kompatible HTTP-, LM Studio-native und eingebettete llama.cpp/MLX-Transporte begrenzen die Diagrammantwort auf 32.768 Ausgabetokens; Anthropic behält seine separate Anbieterobergrenze. Diese Obergrenze deckt die gesamte Vervollständigung ab und lässt daher bewusst Raum für die verborgenen Argumente eines denkenden Modells: Der Diagramm-JSON selbst ist viel kleiner, aber ein Modell, das argumentiert, kann andernfalls das gesamte Budget ausgeben, bevor es ein einzelnes Zeichen ausgibt. Für eingebettetes llama.cpp/MLX wiederholt korTTY keine Antwort, die leer ist oder nur den Gedankengang des Modells enthält. Die automatische Diagrammanforderung kann mit dem Kontrollkästchen Automatisch erzeugen in der Kopfzeile des Diagrammbereichs deaktiviert werden. Einzelheiten finden Sie unten unter Rechts – Flussdiagramm. Wenn das Diagramm aus der Analyseanforderung herausgehalten wird, entstehen deutlich originalgetreuere Flussdiagramme, insbesondere bei lokalen Modellen, und der Bericht ist lesbar, während das Diagramm noch geladen wird. Durch Klicken auf Erneut ausführen wird die Analyse mit dem ausgewählten Profil und den konfigurierbaren KI-Fähigkeiten wiederholt und die separate dedizierte Diagrammanforderung mit derselben obligatorischen Mermaid-Fähigkeit gestartet. Durch das Starten einer weiteren Generierung oder das Schließen der Diagrammansicht wird die überschriebene Clientanforderung abgebrochen.
Bevor korTTY ein neues KI-Ergebnis akzeptiert, lehnt es getrennte Knoten, Rückwärts-Terminalpfade, unvollständige Entscheidungsverzweigungen und eine außer Kontrolle geratene Knotenanzahl ab – die Diagrammanforderung gibt die Knotengrenze des Snippets für das Modell an (12 für Snippets mit bis zu 200 Zeilen, linear ansteigend auf 24 bei 1.000 Zeilen oder mehr), und der Validator lehnt ein Diagramm nur ab, wenn es das Dreifache dieser Grenze (36 oder 72) überschreitet, also ein Eine überzeichnete Zusammenfassung behält ihr Diagramm, während dies bei einer Transkription des Skripts nicht der Fall ist. Ein mehr als einmal deklarierter Knoten – ein Modell, das jeden Knoten als Box in einer Kette und erneut als Entscheidung in einer eigenen Zeile zeichnet – behält seine erste Deklaration und zählt als ein Knoten, wenn korTTY vergleicht, was das Modell gezeichnet hat, mit dem, was die Reparaturen beibehalten haben. Dieser Vergleich deckt Knoten und Kanten gleichermaßen ab: Ein Diagramm, dessen Reparaturen um mehr als die Hälfte von beiden fallen, wird für den lokalen Fallback abgelehnt, da ein Modell, das Zweige zeichnet, die der strenge Dialekt nicht anzeigen kann, die meisten seiner Knoten behält, während das, was gerendert würde, eine gerade Kette davon wäre. Ein Knoten ohne gültige Quellzuordnung verwirft das Diagramm nicht mehr; Es gibt einfach keine Hover-Referenz und das Protokoll benennt die nicht zugeordneten Knoten. Eine abgelehnte Diagrammantwort wird vollständig unter ai-answers/ im log-Verzeichnis aufbewahrt, wie eine unbrauchbare Apply-Antwort: Die Ablehnung benennt eine gebrochene Regel, und ob die Grammatik die vom Modell geschriebene Kurzschrift lernen konnte, kann nur für die gesamte Antwort entschieden werden. Der allgemeine Renderer bleibt abwärtskompatibel mit sicheren Diagrammen, die von älteren korTTY-Versionen gespeichert wurden. Wenn der JSON-Umschlag der Antwort nicht gelesen werden kann – normalerweise, weil das Modell die erforderlichen Anführungszeichen von korTTY in die JSON-Zeichenfolge geschrieben hat, ohne sie zu maskieren – wird das Diagramm aus dem eigenen Text der Antwort wiederhergestellt (Inline-<think>-Reasoning wird zuerst übersprungen), genau wie jedes andere validiert und verwendet, ohne das Modell erneut zu fragen. Bei einem Modell, das die Zeilenumbrüche des Mermaid-Werts zweimal maskiert – gültiges JSON, dessen Wert in eine einzelne Zeile literaler \n-Sequenzen dekodiert wird – werden diese Zeilenumbrüche wiederhergestellt, bevor die Grammatik sie liest, wo auch immer ein Diagramm validiert, gerendert oder gespeichert wird: Kein Diagramm, das KorTTY akzeptiert, ist eine einzelne Zeile, daher können die Sequenzen nur die Zeilenumbrüche sein, und eine Quelle, die bereits echte Zeilenumbrüche enthält, bleibt genau so, wie sie geschrieben wurde.
Die eingeschränkte Flussdiagrammgrammatik liest die Mermaid, die Modelle tatsächlich schreiben, und wandelt sie vor dem Rendern oder Speichern in einen eigenen strengen Dialekt um: Knoten, die in einer Kante deklariert sind (start_1(["Start"]) --> n1["Print header"]), verkettete Kanten (a --> b --> c), Beschriftungen als -->|yes| oder -- yes -->, die Abkürzung :::class, Beschriftungen ohne Anführungszeichen und die anderen Knotenformen von Mermaid (als Aktionen gelesen), einfache %%-Kommentarzeilen und die Ausrutscher, die Modelle machen – eine Beschriftung, deren Pipe wurde zu einer Klammer, einer Form, die ein Zeichen früher geschlossen wurde. Was die Abkürzung nicht ausdrücken kann, wird dort repariert, wo die Absicht eindeutig ist: Ein Knoten, den das Modell vergessen hat, zu klassifizieren, erhält den neutralen Standardwert, eine zweite Klasse oder eine zweite Deklaration für dieselbe ID wird ignoriert, eine Entscheidung mit einem beschrifteten Zweig erhält die komplementäre Beschriftung der Antwortsprache, eine Raute mit einem einzelnen Ausgang ist eine Aktion, eine ID, die nur in einer Kante erscheint, wird zu einem Knoten, ein verirrtes Terminal wird zu einer Aktion und jede Sackgasse geht weiter zu stop_1, einem start_1, der fehlt oder nie verbunden ist, ist mit dem eigentlichen Eingang des Flusses verbunden (der Knoten, zu dem nichts führt, der den größten Teil des Diagramms erreicht), eine mit dem Streupräfix class geschriebene Anweisung wird weiterhin gelesen und ein Knoten, zu dem nichts führt, wird beschnitten. Durch die Reparaturen kann ein Diagramm gekürzt, aber niemals ausgehöhlt werden: Ein Ergebnis, das weniger als die Hälfte der vom Modell gezeichneten Knoten oder gar keine beibehalten hat, wird mit diesem Grund abgelehnt. Eine Zeile, die es immer noch nicht akzeptieren kann, wird im Ablehnungsgrund zitiert, und ein Diagramm, das sich von einer Aktion in parallele Zweige auffächert, wird immer noch abgelehnt, weil der Dialekt keine Möglichkeit hat, es originalgetreu zu zeichnen. Die Zeilen classDef, style und linkStyle in einer neuen Antwort werden gelöscht und nicht abgelehnt – korTTY formatiert die vier semantischen Klassen selbst, und ein Modell, das angewiesen wird, sie zuzuweisen, definiert sie oft auch mit Farben; Das Protokoll zählt, was entfernt wurde, und ein gespeichertes Diagramm wird weiterhin unverändert validiert. Wenn der Anbieter meldet, dass die Diagrammantwort an ihrer Grenze abgeschnitten wurde, die Anfrage fehlschlägt oder keine sichere, verwendbare Mermaid-Quelle zurückgegeben wird, behält korTTY die Analyse bei und zeigt sein deterministisches lokales Fallback-Diagramm an, ohne stillschweigend eine weitere Anfrage zu senden. Der Fallback ist beschriftet: Ein Hinweis über dem Diagramm gibt an, dass das AI-Diagramm abgelehnt wurde und warum (zum Beispiel, dass es mehr Knoten deklariert hat, als das Limit zulässt), und derselbe Grund wird in das Protokoll geschrieben, sodass ein Fallback niemals mit einem AI-Ergebnis verwechselt wird; Der Fallback erkennt auch eingerückte bedingte Blöcke in gängigen Skriptsprachen.
Die Zusammenfassung, Abhängigkeiten, Verbesserungsbeschreibungen und Diagrammbeschriftungen verwenden die aktuelle korTTY-Schnittstellensprache. Die separate Text-Sprache wird erst relevant, nachdem Sie auf Auswahl übernehmen geklickt haben, da diese Aktion eine vollständige Ersetzung zurückgibt: Standardmäßig behält das neu geschriebene Skript die Sprache bei, in der seine Kommentare und Nachrichten bereits geschrieben sind, und nur eine dort explizit ausgewählte Sprache konvertiert sie. Das Analysefenster verfügt über einen eigenen Wähler für die Text-Sprache, der nach der Wahl des Redakteurs voreingestellt ist, so dass die Entscheidung dort liegt, wo Sie die Verbesserungen ankreuzen. Auswahl übernehmen und die entsprechende Sicherheitsfix-Anwendungsaktion fordern none Reasoning nur dann automatisch an, wenn dieser Wert verfügbar ist und das Profil über eine feste Modellauswahl verfügt; Ein Auto-Profil behält sein konfiguriertes oder vom Anbieter vorgegebenes Verhalten bei, es sei denn, none wurde explizit konfiguriert. Das gespeicherte Profil bleibt unverändert. Dadurch wird verhindert, dass ein Reasoning-Modell das begrenzte Ersetzungsbudget verbraucht, bevor es das maschinell analysierte Skript ausgibt. Wenn ein Anbieter dennoch das Ausgabelimit ohne sichtbare Antwort erreicht, zeichnet korTTY die Nutzung auf, meldet den lokalisierten Fehler beim Ausgabelimit und lässt den Editor unverändert, anstatt eine gewöhnliche leere Antwort falsch zu melden oder die Anfrage erneut zu versuchen.
Am oberen Rand des Fensters verläuft eine Symbolleiste, der Bericht und das Flussdiagramm füllen die beiden Bereiche darunter aus, und in der Fußzeile befinden sich eine Skript-Kopfzeilenauswahl sowie ein ausklappbares Härtungsfeld. Die Größe des Fensters ist frei veränderbar und korTTY merkt sich seine Position und Größe über Sitzungen hinweg – auch wenn Re-Run das Fenster durch eine neue Analyse ersetzt. Während Auswahl übernehmen docken das KI-Verarbeitungsfenster und die Überprüfungsvorschau an gegenüberliegenden Rändern an, passen seine Höhe an und folgen ihm, wenn Sie es verschieben oder seine Größe ändern. Wenn neben dem Analysefenster, in dem es sich gerade befindet, kein Platz ist, verschiebt korTTY es weit genug, um beide Seiten nach oben zu öffnen, und verkleinert es nur, wenn die drei tatsächlich nicht nebeneinander auf den Bildschirm passen. Die ursprüngliche Breite wird wiederhergestellt, wenn die angedockten Fenster entfernt werden. Die Größe jedes angedockten Fensters bleibt frei veränderbar und korTTY merkt sich die Breite, die Sie ihm für die nächste Ausführung geben. Wenn Sie ein angedocktes Fenster wegziehen, wird es abgetrennt und behält die Position bei, die Sie ihm gegeben haben. Fenster anordnen im Verarbeitungsfenster ordnet alle drei wieder auf dem Bildschirm an.
Symbolleiste:
- Alle Verbesserungen auswählen – Das erste Steuerelement ganz links aktiviert oder deaktiviert alle Sicherheits-, Optimierungs- und Designverbesserungen auf einmal. Durch den zusätzlichen Abstand wird diese Massenaktion klar vom folgenden Profil:-Indikator getrennt. Dieses Steuerelement ändert niemals eine Abhängigkeitsauswahl.
- Verwendetes Profil – Der Name des KI-Profils, mit dem die Analyse ausgeführt wurde, wird neben diesem Kontrollkästchen angezeigt (für das Standardprofil wird sein tatsächlicher Name angezeigt, z. B. Profil: LM Studio – nicht nur „Standardprofil“), sodass Sie immer erkennen können, welches Modell den Bericht erstellt hat.
- KI-Skills – Wenn AI-Fähigkeiten konfiguriert sind, wird in einer Zeile angezeigt, welche Fertigkeiten enthalten waren, und Sie können diese ändern; siehe KI-Fähigkeiten für diese Analyse unten.
- Erneut ausführen – Eine vorübergehende KI-Profilauswahl und eine Schaltfläche Erneut ausführen wiederholen die Analyse mit dem ausgewählten Profil und Ihrer aktuellen KI-Fähigkeitsauswahl. Die Auswahl wird auf die Standardeinstellung zurückgesetzt, wenn das Fenster erneut geöffnet wird.
- A− / A+ – Passen Sie die Leseschriftgröße an (wird sitzungsübergreifend gespeichert).
- Kopieren – Kopieren Sie die Zusammenfassung, Verbesserungen und Abhängigkeiten als Klartext in die Zwischenablage.
- Export – Speichern Sie den gesamten Bericht (einschließlich des Diagramms) als Datei. siehe Bericht exportieren unten.
Links – Analyse und Verbesserungen:
- Zusammenfassung – Eine kurze, verständliche Beschreibung der Funktionsweise des Skripts. Da es sich um eine Beschreibung und nicht um ein auswählbares Element handelt, wird es als einfacher Block ohne Auswahlakzent angezeigt.
- Verbesserungen – Vorschläge gruppiert in die Abschnitte Sicherheit, Optimierung und Design. Jeder Abschnittstitel trägt ein farbcodiertes Symbol und eine Anzahl – ein Vorhängeschloss für Sicherheit, eine Anzeige für Optimierung, gestapelte Ebenen für Design und ein Modulsechseck für Abhängigkeiten – und jeder Vorschlag verfügt über ein Schweregradkennzeichen, eine Erklärung und eine konkrete Empfehlung. Kreuzen Sie die gewünschten an; Verwenden Sie Alle Verbesserungen auswählen, um alle Verbesserungen gleichzeitig umzuschalten. Leere Abschnitte werden ausgeblendet.
- Abhängigkeiten – Externe Programme, Skripte oder Dienste, auf die sich das Snippet stützt, jedes mit seinem Zweck und einem Reduzieren/Ersetzen-Vorschlag. Markieren Sie jede Abhängigkeit einzeln, damit auch der entsprechende Vorschlag angewendet wird. Alle Verbesserungen auswählen lässt diese Kontrollkästchen unverändert.
Rechts – Flussdiagramm:
- Ein automatisch generiertes Mermaid-Flussdiagramm aus einer dedizierten Nur-Diagramm-Anfrage wird gerendert, während ein Spinner angezeigt wird, und füllt dann den Bereich aus. Es enthält die vollständige Symbolleiste des Diagramms: Zoom − / Schieberegler / + / Anpassen, SVG speichern / PNG speichern, Bild kopieren / Mermaid kopieren, ein Steuerelement für den Dunkelmodus und einen Farbwähler für den Hintergrund (beide gespeichert) und Neu erzeugen. Neu erzeugen sendet absichtlich eine neue dedizierte, nur auf die Quelle beschränkte Diagrammanforderung unter Verwendung des aktiven Profils des Analysefensters. Konfigurierbare KI-Fähigkeiten und Wissensspeicherauszüge bleiben für die Analyseanfrage reserviert, während der erforderliche integrierte Mermaid-Aktions-Skill immer enthalten ist. Siehe Diagrammdarstellung unten.
- Hover-Code-Referenzen – Wenn Sie die Maus über einen Diagrammknoten bewegen, werden die übereinstimmenden Zeilen aus dem Snippet angezeigt, sodass Sie jeden Schritt bis zum Code zurückverfolgen können – das gleiche Verhalten wie im eigenständigen Fenster Diagram.
- Automatisch erzeugen – Ein Kontrollkästchen in der Kopfzeile des Bereichs steuert, ob die Diagrammanforderung beim Öffnen des Fensters automatisch startet. Deaktivieren Sie das Häkchen, um die automatische KI-Anfrage vollständig zu überspringen. Das Fenster zeigt dann stattdessen einen Hinweis an und Neu erzeugen bleibt die manuelle Möglichkeit, das Diagramm anzufordern. Wenn Sie das Kontrollkästchen aktivieren, während das Fenster geöffnet ist, wird das Diagramm sofort abgerufen. Die Auswahl wird sitzungsübergreifend gespeichert (Standardeinstellung: Ein) und hat keine Auswirkungen auf das eigenständige Fenster Diagram, das gespeicherte Diagramme ohne AI-Anfrage rendert.
KI-Fähigkeiten für diese Analyse:
Wenn AI Skills konfiguriert sind, zeigt eine Zeile oben im Fenster genau an, welche Fähigkeiten in die Analyse einbezogen wurden, als Chips, mit einem Abzeichen (automatisch ausgewählt) oder (manuell):
- Automatisch ausgewählt – korTTY wählt die für das Snippet relevanten Fertigkeiten vorab aus, indem es die Tags, den Namen und die Beschreibung jeder Fertigkeit mit der Sprache und dem Inhalt des Snippets abgleicht und höchstens die beiden gewöhnlichen Übereinstimmungen mit der höchsten Bewertung in die Analyse einbezieht. Explizit angeheftete oder einer Verbindung zugewiesene Fertigkeiten bleiben außerhalb dieser automatischen Grenze. Aus diesem Grund lautet das Abzeichen beim ersten Durchlauf (automatisch ausgewählt).
- Manuelle Auswahl – Klicken Sie auf Auswählen…, um eine durchsuchbare Auswahl zu öffnen: Geben Sie in das Suchfeld ein, um Ihre gespeicherten Fähigkeiten nach Name, Beschreibung oder Tags zu filtern, und aktivieren oder deaktivieren Sie dann die gewünschten Fähigkeiten. Sobald Sie das Set ändern, wechselt das Badge zu (manuell) und korTTY behält Ihre Auswahl bei, anstatt sie automatisch auszuwählen.
Durch das Ändern der Fähigkeiten wird nicht sofort eine erneute Analyse durchgeführt – der neue Satz wird bei der nächsten Erneutausführung auf die Berichtsanforderung angewendet. Diese explizite Snippet-Auswahl wird zusammen mit allen der aktiven Verbindung zugewiesenen Fähigkeiten als Zulassungsliste verwendet: korTTY führt die globale Relevanzerkennung nicht erneut durch und fügt keine anderen Fähigkeiten hinzu. Fertigkeiten, die Sie hier einbeziehen, werden unabhängig vom konfigurierten Ziel der einzelnen Fertigkeiten an die Analyse gesendet. Die separate Diagrammanforderung lässt diese konfigurierbaren Fertigkeiten absichtlich weg und verwendet stattdessen immer ihre eigene unveränderliche Mermaid-Aktionsfertigkeit. Die Zeile wird nur angezeigt, wenn mindestens eine konfigurierbare KI-Fähigkeit aktiviert ist.
Härtungsmöglichkeiten:
Unten können Sie in einem zusammenklappbaren Bereich Härtungsoptionen Techniken in Produktionsqualität (strenger Modus, Fehlerfallen, aussagekräftige Exit-Codes, Protokollierung, Idempotenz, --dry-run, --help und mehr) den angewendeten Korrekturen hinzufügen. Der Panel-Titel enthält die Anzahl der aktuell aktivierten Optionen – zum Beispiel Härtungsoptionen (11) – und korTTY merkt sich, ob Sie das Panel geöffnet oder geschlossen gelassen haben, und stellt diesen Zustand wieder her, wenn das Fenster das nächste Mal geöffnet wird. Unter Hardening options erfahren Sie, was die einzelnen Optionen bedeuten und wie sie angewendet werden.
Darunter fordert ein zweites zusammenklappbares Bedienfeld zur Eingabe-Härtung die KI auf, einen Schutzblock zur Eingabevalidierung in das Skript einzubauen, wenn die Korrekturen angewendet werden: Parameter-Zulassungslisten und Längenbeschränkungen, Dateiformatprüfungen, eine maximale Eingabedateigröße, die durch eine einstellbare MAX_FILE_SIZE-Variable gesteuert wird, Sicherheitswarnungen im eigenen Protokoll des Skripts und eine FORCE=1/--force-Überschreibung. Die Größenprüfung verwendet Metadaten, bevor der Dateiinhalt gelesen wird, und 0 bedeutet unbegrenzt. Es handelt sich ausschließlich um eine Opt-in-Option – das Master-Kontrollkästchen ist zunächst deaktiviert – und sein Titel zählt nur die Unteroptionen, die tatsächlich aktiv sind. Das Panel ist für YAML/YML/Ansible-Snippets deaktiviert, da für diese deklarativen Formate kein Schutz auf Skriptebene gilt. Den vollständigen Schutzvertrag finden Sie unter Eingabe-Härtung.
Skript-Header:
Mit einem Script-Header-Selektor können Sie beim Anwenden der Analyse eines Ihrer gespeicherten Script-Header-Snippets (aus der festen Script-Header-Kategorie ) dem Code voranstellen. Wählen Sie einen Header aus – oder belassen Sie ihn auf Kein Header (Standardeinstellung) – und sein Inhalt wird mit ersetzten Variablen oben im Snippet nach einer vorhandenen Shebang-/Lead-Zeile als Teil derselben Änderung eingefügt.
Auswahl übernehmen:
Wenn Sie im Bericht auf Auswahl übernehmen klicken, hält korTTY das Analysefenster geöffnet und verarbeitet die angekreuzten Verbesserungen, Abhängigkeitsvorschläge und Härtungsoptionen als atomare Sequenz. Ein separates schmales Fenster KI-Verarbeitung erscheint daneben angedockt. Ein angedocktes Fenster, dessen Inhalt es nicht abdeckt – was als leeres Band neben der Vorschau angezeigt wird – wird korrigiert, wenn sich seine Größe ändert, nicht nur in der Sekunde nach dem Öffnen: Inhalte, die nicht seinem Fenster folgten, werden erneut angeordnet, und eine Szene, die hinter dem Fenster zurückbleibt (das Fenster mit der Breite, die das Dock eingestellt hat, die Szene immer noch mit der Breite, die die Plattform zuletzt gemeldet hat), wird auf den neuesten Stand gebracht, indem die Plattform erneut nach der Größe gefragt wird; Das Protokoll nennt die Größen in beiden Richtungen. Die angedockte Vorschau wendet beim Öffnen auch nicht mehr ihre gespeicherte freie Geometrie an – das Dock platziert sie im selben Moment, und zwei Größen, die gleichzeitig in ein Fenster geschrieben werden, führen dazu, dass eine Szene letztendlich schmaler als ihr Fenster wird. Zwei unabhängige Fortschrittsbalken oben verfolgen Verbesserungen und Code-Härtung, gefolgt von der verstrichenen Arbeitszeit und der vom Anbieter gemeldeten kumulativen Token-Nutzung; Wenn ein Anbieter keine Nutzungsdaten bereitstellt, wird der Wert explizit als nicht gemeldet und nicht als geschätzt angezeigt. Die Checkliste listet zuerst Verbesserungen auf, dann Anforderungen der klassischen Code-Härtung und der Eingabe-Härtung. Jede analysierte Verbesserungs- oder Abhängigkeitszeile platziert das entsprechende farbcodierte Kategoriesymbol des Berichts direkt hinter ihrer ID. Die Beschreibungen in dieser kompakten Checkliste sind auf drei Zeilen mit Auslassungspunkten beschränkt. Die vollständigen Beschreibungen bleiben im Analysebericht daneben sichtbar. Die Checkliste wiederholt auf der rechten Seite keinen Kategorie- oder Schweregradtext mehr; der Schweregrad bleibt im Analysebericht verfügbar, während Härtungsanforderungen keine redundante Kategoriebezeichnung benötigen, da sie bereits unter Code-Härtungen gruppiert sind. Ausstehende Einträge verwenden eine neutrale Markierung, alle Einträge im aktiven KI-Batch werden als in Bearbeitung markiert, ein Reparaturversuch wird separat markiert, jeder abgeschlossene Eintrag erhält rechts ein grünes Häkchen und der fehlgeschlagene Eintrag wird markiert, wenn die Sequenz stoppt. Wenn jeder Eintrag abgeschlossen wurde und nur die endgültige Überprüfung das kombinierte Ergebnis ablehnte, wird dies in der Kopfzeile angegeben, anstatt auf einen markierten Eintrag zu verweisen. Wenn der Lauf endet – abgeschlossen, fehlgeschlagen oder abgebrochen – schließt sich das Verarbeitungsfenster nicht von selbst. Es fügt eine Laufzusammenfassung hinzu: die Enddauer, die Token-Nutzung aufgeteilt in Eingabeaufforderung, Abschluss und Gesamtwert, das KI-Profil, das der Lauf verwendet hat, wie viele Arbeitselemente abgeschlossen wurden und die Anzahl der Reparaturversuche, falls es welche gab. Zusammenfassung kopieren legt dieselben Zahlen in der Zwischenablage ab und Vorschau erneut anzeigen öffnet das Überprüfungsfenster erneut, wenn Sie es vor der Entscheidung geschlossen haben. Durch das Schließen des Analysefensters wird die laufende KI-Aufgabe abgebrochen und die angedockten Fenster werden damit geschlossen. Nach einem Fehler bleibt der Bericht geöffnet, sodass Sie den gestoppten Schritt überprüfen und die Auswahl erneut versuchen können.
korTTY stapelt ausgewählte Analyseelemente und Abhängigkeiten in Anwendungsphasen von jeweils bis zu drei Elementen – sechs im Bearbeitungsmodus, wo die Beschränkung auf drei Elemente, die eine vollständige Skriptantwort fertigstellen lässt, nicht gilt – und behandelt dann die klassische Härtung und die Eingabe-Härtung separat in Stapeln von höchstens drei obligatorischen Anforderungen. Jede Stufe sendet das gesamte Skript, daher ist die Anzahl der Stufen davon abhängig, was eine Anwendung in Prompt-Tokens und Zeit kostet. Im Bearbeitungsmodus steht das zeilennummerierte Skript vor allem, was für die Phase oder den Versuch spezifisch ist – die Elemente, die Anforderungen, die Reparaturabsätze und die Zeilenanzahl –, sodass jede Anforderung eines Laufs ein Präfix hat: Systemaufforderung, Vertrag, Sprachzeilen und das Skript bis zur ersten Zeile, die in der vorherigen Phase geändert wurde. Ein Endpunkt mit einem Präfix-Cache bedient dieses Präfix, ohne es erneut zu verarbeiten (MiniMax meldet es als zwischengespeicherte Token; LM Studio und llama.cpp verwenden ihren KV-Cache wieder), was bei einem lokalen Modell Zeit und bei einem gemessenen Modell Geld bedeutet; Ein wiederholter Versuch mit unveränderter Eingabe teilt das gesamte Skript. Gemessen vor dieser Reihenfolge teilten sich aufeinanderfolgende Stufen 128 Token, da die Elemente der Stufe vor den 62.000 Token des Skripts lagen. Jede Stufe erhält das vollständige Ergebnis der vorherigen Stufe und muss ihr bestehendes Verhalten beibehalten.
Bei einem Snippet von bis zu 400 Zeilen gibt jede Stufe das vollständig neu geschriebene Skript zurück. Darüber hinaus funktioniert es im Bearbeitungsmodus: Die Bühne empfängt das zeilennummerierte Snippet und gibt nur die geänderten Regionen zurück – edits mit einem 1-basierten startLine/endLine-Bereich und die Ersatzzeilen – was korTTY lokal anwendet, bevor genau die gleiche Überprüfung wie für ein zurückgegebenes Skript ausgeführt wird. Ersetzungszeilen werden genau so übernommen, wie sie zurückgegeben werden – ihre Einrückung, Leerzeilen und ein wiederholtes schließendes Schlüsselwort sind der Code, kein Rauschen – und eine Bearbeitung mit einem Eintrag, der keine Zeichenfolge ist, wird der Reparaturrunde überlassen. Ein 4.000-Zeilen-Skript, das vollständig zurückgegeben wird, umfasst etwa 60.000 Ausgabe-Tokens, bei der Abschlussobergrenze des Modells und zwölf Minuten pro Phase, und ein verlorenes Anführungszeichen in dieser Menge. JSON hat alles verloren; Die geänderten Bereiche umfassen höchstens einige hundert Zeilen. Eine Bearbeitung, deren Bereich außerhalb des Snippets beginnt, mehr als eine Zeile über sein Ende hinausreicht, eine frühere Bearbeitung überlappt oder hohl ist – ein Bereich von drei oder mehr Zeilen, dessen Ersatz nichts anderes als seine eigene unveränderte erste Zeile ist, die Signatur eines Modells, das einen Eintrag ausgegeben und gestoppt hat; Ein um die letzten Zeilen gekürzter Bereich ist eine Löschung und wird angewendet – wird mit einem Hinweis im Protokoll weggelassen, während die vertrauenswürdigen Änderungen angewendet werden. Damit die Reparaturrunde wirklich danach fragt, was eine verworfene Bearbeitung bewirken sollte, wird ein changes-Eintrag, dessen Ankerlinie von einer verworfenen Bearbeitung und von keinem angewendeten stammt, ignoriert, wodurch seine Analyse-ID ohne Echo bleibt. Eine Stufe im Bearbeitungsmodus, deren Antwort ihr Ausgabe-Token-Limit erreicht hat, erhält ebenfalls einen zweiten Versuch und fragt nur nach den geänderten Regionen: Eine solche Antwort enthält nur die geänderten Regionen, daher ist das Limit eine außer Kontrolle geratene Antwort und nicht die tatsächliche Größe der Stufe, und wie lange eine Antwort das Modell schreibt, variiert je nach Versuch.
Eine Antwort auf die gesamte Datei schlägt dort immer noch fehl, da bei einem großen Skript die Grenze die eigentliche Einschränkung darstellt. Eine Phase, deren Bearbeitungen nicht angewendet werden können oder deren Bearbeitungen das Skript zum Einsturz bringen – live gesehen als zwei Bearbeitungen, die 1.199 Zeilen „abdecken“, mit einer Auslassungsmarkierung anstelle des Codes; Im Bearbeitungsmodus betrachtet die Auslassungsmarkierungsprüfung jede Bearbeitung (ein Bereich von drei oder mehr Zeilen, die durch nichts anderes als einen solchen Kommentar ersetzt werden) und nicht das gesamte Skript, da ein Kommentar, der lediglich unveränderten Code zwischen echten Zeilen erwähnt, nur ein Kommentar ist – erhält einen zweiten Versuch, dessen Anfrage sagt, was mit der ersten Antwort falsch war (die Antwort wird als unbrauchbar archiviert), die gleiche einzige zweite Chance, die eine reduzierte Antwort auf die gesamte Datei erhält, und wird wie ein unvollständiges Skript abgelehnt, wenn auch dies fehlschlägt. Eine angewendete Bearbeitung, die einen Bereich von hundert Zeilen oder mehr auf weniger als ein Zehntel verkleinert, wird im Protokoll benannt. Eine Antwort im Bearbeitungsmodus, deren JSON nicht analysiert wird, wird tolerant gelesen, bevor sie erneut angefordert wird.
Live-Antworten von MiniMax-M3 zeigten, was tatsächlich kaputt geht: ein Anführungszeichen in einer Codezeile ohne Escapezeichen, ein Escapezeichen, das JSON nicht kennt, wie z. B. \$, ein fehlendes ] vor der schließenden Klammer einer Bearbeitung oder ein fehlendes } zwischen zwei Bearbeitungen, ein abschließendes Komma, eine neue Zeile innerhalb eines Eintrags und die als verschachteltes Objekt geschriebene Zusammenfassung. Die Wiederherstellung liest den Zeilenbereich und die Ersetzungszeilen jeder Bearbeitung aus dem Text selbst. Wenn jede Ersatzlinie auf ihrer eigenen Linie liegt, ist das Linienende die Grenze und nichts kann sie irreführen; In einer kompakten einzeiligen Antwort ist die Grenze das Trennzeichen der Antwort – "," oder ", ", je nachdem, welchen Stil das Modell für seine Schlüssel verwendet hat – und eine Klammer schließt das Array nur, wenn Struktur und nicht Code darauf folgt. Worüber auch immer der Lesevorgang nicht sicher sein kann, er schlägt fehl: ein kompakter Eintrag mit einer ungeraden Anzahl roher Anführungszeichen (die Aufteilung fiel in ein Paar in Anführungszeichen) – es sei denn, der Eintrag plus ein Anführungszeichen ist eine Zeile des Snippets, die Signatur eines Schlusszitats, das das Modell verschluckt hat, wie in res="", geschrieben als res="; eine Codezeile, die in einem Zitat endet, dessen maskiertes letztes Zitat das Modell mit dem Schlusszitate verschmolzen hat, wie in body="{", geschrieben als body=\"{\", gefolgt von Der nächste Eintrag wird auf die gleiche Weise gelesen, wenn das Snippet die Zeile kennt, ebenso wie eine bekannte Zeile, in der das Modell ein Anführungszeichen maskiert und die anderen roh gelassen hat. Der Transport beurteilt eine Bearbeitungsantwort mit dem gleichen Snippet-Orakel, bevor er sich für einen schemalosen Wiederholungsversuch entscheidet, sodass eine Antwort, die die Stufe lesen kann, nie ein zweites Mal angefordert wird, eine Klammer gefolgt von etwas anderem als gestapelten Schließern und dem nächsten Schlüssel oder der nächsten Bearbeitung, ein Scan, der auf die eigenen Schlüssel der Antwort stößt (das Array wurde nie geschlossen), ein rohes Anführungszeichenpaar im anderen Trennzeichenstil, eine umbrochene Zeile mit mehreren Einträgen, eine leere }-Zeile innerhalb eines Eintrags, der durch einen rohen Zeilenumbruch geteilt wird, und zwei Einträge, von denen einer plus das Trennzeichen Teil einer Zeile des Snippets ist (eine Codezeile wie awk -F",", die in zwei Teile geteilt wurde, auch wenn das Modell sie auch geändert hat). Es geht um alles oder nichts: Jede Änderung in der Antwort muss lesbar sein, jede mit genau einem endLine, oder die Antwort erfolgt über den Wiederholungsweg, anstatt die Hälfte dessen anzuwenden, was das Modell bedeutete. Im Protokoll steht, wann Änderungen auf diese Weise wiederhergestellt wurden.
Die Analyseantwort erhält eine eigene, einfachere Lösung: Ihre Felder sind Prosafelder, wobei ein Zitat, auf das kein JSON-Terminator folgt, Inhalt ist. Daher wird ein rohes Anführungszeichenpaar innerhalb eines Titels, einer Beschreibung oder eines Vorschlags – das früher eine vollständige 24.000-Zeichen-Analyse eines 4.000-Zeilen-Skripts erforderte – maskiert und die Antwort gelesen; Eine Analyse, die korTTY immer noch nicht verwenden kann, wird wie eine unbrauchbare Bearbeitungsantwort archiviert. Der Vertrag fordert das Modell bewusst nicht dazu auf, jeden Eintrag in eine eigene Zeile zu setzen: Live getestet, las MiniMax-M3 dies als einen Eintrag pro Bearbeitung und antwortete mit Bereichen, die durch ihre erste Zeile ersetzt wurden, oder mit Hunderten von einzeiligen Bearbeitungen bis zur Ausgabeobergrenze. Auf Endpunkten, die response_format akzeptieren und ignorieren, wie z. B. MiniMax, wird beim ersten Versuch auch die reine JSON-Erinnerung gesendet, dass nur der zum Übertragen verwendete schemalose Wiederholungsversuch gesendet wird. Wenn der Wiederholungsversuch erfolgt, nennt das Protokoll, warum die erste Antwort fehlgeschlagen ist – eine nicht analysierbare JSON-förmige Antwort, eine, die das Modell mit ... oder etc abgekürzt hat, eine, die abgeschnitten wurde, ein umzäunter Block, Prosa – zusammen mit der Stelle, an der der JSON unterbrochen wurde (Gsons Zeile, Spalte und Pfad wie $.edits[3].replacementLines[7] und der Text darum herum), und die vollständige Antwort wird als Datei unter ai-answers/ im gespeichert Protokollverzeichnis (die zwanzig neuesten und nie länger als die Protokollaufbewahrungstage, da sie Skriptbereiche im Klartext enthalten), benannt in derselben Protokollzeile, sodass eine fehlgeschlagene Phase anhand eines Berichts ohne Debugprotokollierung diagnostiziert werden kann. Eine gestreamte Antwort, bei der der Endpunkt nie geschlossen wurde – kein finish_reason und kein [DONE] – wird als solche protokolliert, wobei der Rohdatenstrom an der gleichen Stelle verbleibt, da eine Antwort, die mitten in der Zeichenfolge einige tausend Token stoppt, als „abgeschnitten“ gelesen wird und nur der Rohdatenstrom Auskunft darüber gibt, ob das Modell oder die Verbindung gestoppt wurde. Das Anforderungsprotokoll zeigt die Prompt-Tokens an, die ein Endpunkt aus seinem Präfix-Cache bereitgestellt hat, wenn er sie meldet. Das Protokoll gibt an, wie viele Bearbeitungen wie viele Zeilen umfassten, und die Ausgabeobergrenze für eine Stufe im Bearbeitungsmodus beträgt 32.768 Token, sodass ein Modell, das die Datei trotzdem transkribiert, frühzeitig gestoppt wird.
Jede Stufe wird außerdem mit einer Protokollzeile geöffnet – Nummer, Phase, Analyse-IDs, Anforderungs-IDs, Zeilenanzahl und Modus – und eine Stufe, deren Ergebnis zwar beibehalten wird, aber den Reparaturversuch für Arbeiten erhält, die sie nicht überprüft hat, sagt dies unter Angabe der nicht überprüften Anforderungen, der früheren Anforderungen, die sie verworfen hat, oder der Analyse-IDs, die sie nicht wiedergegeben hat, so dass ein Protokoll allein jede Anfrage ihrer Stufe und dem Grund für eine vierte Anfrage in einem dreistufigen Lauf zuordnet. Eine Verbesserung, die das Modell in changes[].finding nicht widerspiegelte, eröffnet diese Reparaturrunde; Ein Abhängigkeitsvorschlag, den es nicht zurückgab, tut dies nicht – ein Reduzierungs-/Ersetzungsvorschlag („Konsolidierung in Betracht ziehen“, „Dig bevorzugen“) lässt den Code zu Recht in Ruhe, und ein Modell, das nichts geändert hat, gibt die ID selten wieder, so dass ein erneutes Nachfragen zwei vollständige Anfragen in einem 47-Elemente-Lauf für nichts kostete, was die Elemente benötigten. Eine solche Phase wird mit den im Protokoll genannten unwiderruflichen Vorschlägen akzeptiert. Wenn eine andere Ursache die Reparaturrunde eröffnet, werden die Vorschläge, die nicht wiedergegeben wurden, in dieser Anfrage als Vorschläge bezeichnet – implementieren Sie sie dort, wo sie zutreffen, andernfalls belassen Sie den Code und geben Sie kein Echo ab – und nicht als anzuwendende Elemente. Ein Vorschlag, dessen Bearbeitung verworfen wurde (hohl, überlappend, außerhalb des Bereichs), öffnet die Runde immer noch wie eine Verbesserung, da das Modell versucht hat, ihn zu ändern; und eine ID, die eine Verbesserung benennt, zählt auch dann als solche, wenn ein Vorschlag sie teilt, da die IDs die eigenen des Modells sind. Zwischenskripte werden niemals in den Editor eingefügt.
Wenn der Antwortstrom einer Stufe mitten in der Antwort durch die Verbindung unterbrochen wird, versucht korTTY diese Stufe automatisch einmal erneut – im Gegensatz zum Fragment-Reparaturversuch unten –, bevor es aufgibt. Wenn eine Stufe immer noch fehlschlägt, abgeschnitten wird oder einen unvollständigen Ersatz zurückgibt – oder Sie die Ausführung mit der Schaltfläche „Abbrechen“ des Editors stoppen –, bevor die erste Stufe abgeschlossen ist, verwirft korTTY die Sequenz und lässt den Editor unverändert. Nach mindestens einer abgeschlossenen Stufe öffnet derselbe Abbruch stattdessen eine Eingabeaufforderung Übernahme unterbrochen: Verbleibende Schritte fortsetzen setzt den Lauf bei der abgebrochenen Stufe fort und wiederholt ihn, während die Arbeit der abgeschlossenen Stufen erhalten bleibt – ein neues Verarbeitungsfenster wird geöffnet, in dem diese Stufen bereits abgehakt sind, und die abschließende kumulative Überprüfung deckt immer noch die gesamte Auswahl ab; Teilergebnis prüfen öffnet die kombinierte Neufassung der abgeschlossenen Phasen in der üblichen Überprüfungsvorschau mit dem Titel „Verbesserungen teilweise übernehmen – Änderungen prüfen“ – die Anforderungen jeder abgeschlossenen Phase wurden bereits überprüft, als diese Phase abgeschlossen war, und nur die abschließende kumulative erneute Überprüfung wird übersprungen, da Anforderungen von Phasen, die nie ausgeführt wurden, per Definition fehlen, während der Schutz vor degeneriertem Ersatz noch gilt, bevor die Vorschau geöffnet wird; Verwerfen* (auch die Esc/Schließen-Aktion der Eingabeaufforderung) wirft wie zuvor alles weg. Wenn ein fortgesetzter Lauf erneut abgebrochen wird, wird die Eingabeaufforderung mit dem neueren Status erneut angezeigt. Wenn jede Phase abgeschlossen ist und nur die letzte kumulative Überprüfung fehlschlägt, wird in der Eingabeaufforderung die Option „Fortsetzen“ weggelassen, da die erneute Ausführung von null verbleibenden Phasen gleichermaßen fehlschlagen würde. Das Schließen des Analysefensters oder des Snippet-Editors während der Ausführung bleibt eine bewusste Verwerfung und zeigt nie die Eingabeaufforderung an. Eine vollständig abgeschlossene Sequenz öffnet das einzelne Fenster „Verbesserungen anwenden – Änderungen überprüfen“ mit dem endgültigen kumulativ überprüften Skript, das gegenüber dem Verarbeitungsfenster angedockt ist. Das Analysefenster, die abgeschlossene Checkliste und die Laufzusammenfassung bleiben alle geöffnet, nachdem die Vorschau geschlossen wurde, sodass Sie weiterhin lesen können, was der Lauf bewirkt hat und wie hoch die Kosten waren. Durch das Schließen des Analysefensters wird die Gruppe gelöscht.
Dies erfordert mehr Modellaufrufe und kann insgesamt mehr Eingabetoken verbrauchen als eine übergroße Anfrage, aber jede einzelne Aufgabe ist für lokale Modelle wesentlich kleiner. Jede ausgewählte Regel der klassischen Code-Härtung und der Eingabe-Härtung behält über die Stufen hinweg eine stabile, separat nummerierte obligatorische Kennung bei. Jede Stufe bestätigt ihre abgeschlossenen Bezeichner in einer kompakten Liste, anstatt für jede Regel eine vollständige Änderungserklärung zu wiederholen. Die abschließende Validierung überprüft den kumulativen Bezeichnersatz, während explizite Flags und Schutzliterale wie --dry-run, --yes, --help, --verbose, MAX_FILE_SIZE, FORCE, --force und SECURITY: weiterhin im endgültigen Code vorkommen müssen, wenn ihre Regeln aktiv sind. Da jede Stufe das gesamte Skript neu schreibt, wird jede einzelne zusätzlich mit den Literalen der Regeln überprüft, die bereits frühere Stufen geliefert haben: Eine Stufe, die frühere Härtungsarbeiten entfernt und gleichzeitig ihre eigenen implementiert, wird sofort abgelehnt und erhält einen einzigen Reparaturversuch, der genau benennt, was wiederhergestellt werden soll. Dies verhindert, dass eine solche Regression erst in der abschließenden Validierung auftritt, wo die verbleibenden Phasen nicht mehr fortgesetzt werden konnten. Jede Stufe gibt das vollständige Skript als JSON-Array mit einer Quellzeile pro Eintrag zurück, wodurch eine große Escape-empfindliche JSON-Zeichenfolge vermieden wird. Über OpenAI-kompatibles HTTP erfordert ein striktes Antwortschema auch eine konservative Mindestanzahl zurückgegebener Quellzeilen. korTTY wiederholt eine Phase ohne dieses Schema nur dann, wenn der Endpunkt die Fähigkeit zur strukturierten Ausgabe explizit ablehnt. Wenn eine strukturierte Ausgabe nicht verfügbar ist und ein lokales Modell Quell-Escapezeichen wie \s ohne gültige JSON-Escapezeichen ausgibt, behält der Kompatibilitätsparser diese Codezeichen bei und überprüft dennoch die obligatorische Checkliste. Für jede Phase ist ein vollständig neu geschriebenes Skript erforderlich, einschließlich aller Codeabschnitte, die keiner absichtlichen Änderung bedürfen und aus der Eingabe kopiert werden. Für jede Stufe gilt derselbe Textsprachenvertrag: standardmäßig die eigene Prosasprache des Skripts, die die Stufe beibehalten und nicht übersetzen muss, oder eine von Ihnen explizit ausgewählte Sprache, in die der Text konvertiert werden muss. OpenAI-kompatible HTTP-, LM Studio-native und eingebettete llama.cpp/MLX-Transporte wählen eine Sicherheitsobergrenze pro Phasenabschluss von 32.768 bis 65.536 Token basierend auf der aktuellen Quellgröße. Anthropic behält seine separate Anbieterobergrenze. Diese Obergrenze verhindert eine unbegrenzte Ausgabe, stellt jedoch keine Kapazitätsgarantie für beliebig große Skripte dar: Eine sehr große vollständige Skriptersetzung kann abgelehnt werden, wenn der Anbieter eine Kürzung meldet. Jede Antwort, die eine Auslassungsmarkierung wie rest unchanged einführt, ein umfangreiches Skript in ein kurzes Fragment zusammenfasst oder aus anderen Gründen nicht die vollständige Ersetzung enthält, wird vor der nächsten Stufe oder Vorschau abgelehnt. Ein kurzes, nicht abgeschnittenes Fragment erhält genau einen Reparaturversuch für dieselbe Phase, und das Fortschrittsfenster zeigt diesen Wiederholungsversuch an. Wenn auch die Reparaturantwort schlecht ist, bricht korTTY den Vorgang ab. Der Code im Editor bleibt durchgehend unverändert. Ein gültiges Endergebnis zeigt das ursprüngliche und das umgeschriebene Skript nebeneinander, mit hervorgehobenen geänderten Zeilen und den jeweiligen Änderungsgründen, genau wie bei der Sicherheitsüberprüfung unten. Der Editor bleibt unverändert, bis Sie in dieser Vorschau Änderung anwenden bestätigen. Jeder ausgewählte Skript-Header wird dem Ergebnis vorangestellt, bevor es angezeigt wird. Ein eigenständiger Header – ohne angekreuzte Verbesserungen, Abhängigkeiten oder Härtung – wird direkt eingefügt, ohne einen KI-Roundtrip, und immer noch zuerst als Vorher/Nachher-Vorschau angezeigt.
Es ist höchstens ein Reparaturversuch zulässig, wenn eine vollständige Antwort nicht alle obligatorischen Bezeichner und erforderlichen Literale bestätigt. korTTY verwendet das vollständig zurückgegebene Skript als Reparatureingabe, benennt die Bezeichner, die noch überprüft oder implementiert werden müssen, und fordert das Modell auf, alle anderen Änderungen beizubehalten. Wenn die Reparaturantwort erneut fehlschlägt, benennt der lokalisierte Status die noch fehlenden Anforderungen – jeder Bezeichner mit der Regel, für die er steht, sodass die Option zum Überdenken offensichtlich ist – und der Editor bleibt unverändert.
Bericht exportieren:
Über die Schaltfläche Exportieren wird der vollständige Bericht – Zusammenfassung, kategorisierte Verbesserungen, Abhängigkeiten und Flussdiagramm – als eigenständige Datei in einem attraktiven, druckfreundlichen Design gespeichert. Im Export-Header werden der Skriptname, das verwendete KI-Profil, das Datum und die enthaltenen KI-Fähigkeiten aufgezeichnet:
- PDF – Ein paginiertes Dokument mit eingebettetem Diagramm als Bild.
- HTML – Eine einzelne eigenständige Webseite (das Diagramm ist inline eingebettet), die in jedem Browser geöffnet wird.
- Markdown – Eine
.md-Datei, neben der das Diagramm als PNG gespeichert ist.
Sicherheitsprüfung¶
Im Berichtsfenster Sicherheitsüberprüfung wird jeder Befund mit einem farblich gekennzeichneten Schweregradsymbol aufgeführt (Befunde werden nach dem schwerwiegendsten zuerst sortiert). In diesem Fenster können Sie:
- Passen Sie die Leseschriftgröße mit A− / A+ an (wird sitzungsübergreifend gespeichert).
- Alle Ergebnisse in die Zwischenablage kopieren.
- Wählen Sie alle Ergebnisse auf einmal aus und wenden Sie dann die ausgewählten Korrekturen an.
- Wählen Sie ein dediziertes Sicherheitsprofil – das KI-Profil, das für Sicherheitsüberprüfungen verwendet wird. Die Auswahl wird dauerhaft gespeichert und ist auch unter Konfiguration → Globale Einstellungen → AI verfügbar; Lassen Sie es auf Standardprofil verwenden, um die Standardeinstellung wiederzuverwenden. Änderungen werden sofort wirksam.
- Prüfung erneut ausführen, um die Überprüfung mit dem neu ausgewählten Profil zu wiederholen.
Wenn Sie Fixes anwenden, werden im Fenster Sicherheitsfixes überprüfen der ursprüngliche und der korrigierte Code nebeneinander angezeigt. Geänderte Zeilen werden automatisch hervorgehoben und tragen eine Markierung am Rand. Bewegen Sie den Mauszeiger an eine beliebige Stelle in einem geänderten Block, um zu sehen, auf welche(s) Ergebnis(se) er sich bezieht (z. B. S1 oder S1 + S2, wenn ein Block zwei Ergebnisse abdeckt), zusammen mit dem Grund für die Änderung. Beim Hover-Matching werden neu eingerückte Zeilen oder Zeilen mit geänderter Groß-/Kleinschreibung toleriert, und ein Grund, dessen Ankerzeile überhaupt nicht gefunden werden kann, wird der Reihe nach an die verbleibenden geänderten Blöcke angehängt, sodass im Diff keine Erklärungen mehr fehlen. Dieselben Erklärungen werden auch als Karten unter dem Diff aufgeführt: Jede Karte trägt das Abzeichen des Befundes und ein farbcodiertes Kategoriesymbol (dieselben Symbole wie die Analyseabschnitte) sowie den Zeilenbereich, den sie auf der korrigierten Seite betrifft (z. B. Zeilen 23–40), sodass die Begründung auch dann sichtbar bleibt, wenn keine Markierung platziert werden kann. Die Auswahl Hervorheben unterhalb des Diffs schränkt die Überprüfung auf einen einzelnen Befund ein: Wählen Sie SEC-1, eine Härtungsanforderung oder eine andere aufgeführte ID aus, und nur die Stellen dieses Befundes behalten ihre Markierung und erhalten einen farbigen Linienhintergrund, während jeder andere geänderte Block in einem neutralen Farbton gedämpft wird. Das Fenster scrollt zur ersten Stelle und die Erklärungskarten unten verkleinern sich auf diesen Befund. Mit den ◀ / ▶-Schaltflächen neben der Auswahl gehen Sie die Liste Schritt für Schritt durch – ab „Alle Änderungen“ geben sie sie an beiden Enden ein, und die Enden gehen ineinander über – sodass ein Bericht durchgearbeitet werden kann, ohne für jeden Schritt das Dropdown-Menü öffnen zu müssen. Alle Änderungen stellt die volle Farbgebung wieder her. Die Auswahl erscheint, sobald mindestens zwei Ergebnisse einen Grund haben. Gedämpfte Blöcke bleiben sichtbar und behalten ihre Änderungsmarkierungen – dieses Fenster ist der Genehmigungsschritt, bevor der Editor berührt wird, sodass eine echte Änderung niemals unsichtbar gemacht wird. Die Zusammenfassung oben im Fenster scrollt in ihrem eigenen Bereich und befindet sich über einer verschiebbaren Trennlinie: Die Zusammenfassung einer gestaffelten Anwendung erstreckt sich über einen Absatz pro Stufe, und die Trennlinie entscheidet, wie viel des Fensters sie verwenden darf. Das Fenster merkt sich die Größe und Position, die Sie ihm gegeben haben, und die Trennlinie, sobald Sie es selbst verschieben – bis dahin folgt es weiterhin der eigenen Höhe der Zusammenfassung, sodass eine einzeilige Zusammenfassung niemals den Raum einnimmt, den eine Zusammenfassung mit mehreren Absätzen benötigt. Wenn es angedockt neben einer Vollständigen Codeanalyse-Ausführung geöffnet wird, merkt es sich nur seine Breite, da das Dock über den Rest entscheidet. Dieses Überprüfungsfenster blockiert nicht den Rest von korTTY: Ihre Terminalsitzungen bleiben nutzbar, während Sie das Diff lesen, und das gilt auch für das Verarbeitungsfenster daneben. Da das Snippet daher bearbeitet werden kann, während die Rezension geöffnet ist, prüft korTTY vor der Anwendung, ob der Editor immer noch den Text enthält, aus dem das Ergebnis erstellt wurde. Wenn er sich geändert hat, wird nichts angewendet und Sie werden aufgefordert, die Analyse erneut durchzuführen, anstatt dass ein veralteter vollständiger Ersatz Ihre Eingabe überschreibt. Die Schriftgröße der Vorschau kann gezoomt werden und wird sitzungsübergreifend gespeichert. Das gleiche Überprüfungsfenster (und seine Erklärungskarten) wird verwendet, wenn Verbesserungen der vollständigen Codeanalyse angewendet werden.
AI-Profil, erneut ausführen und zoomen¶
Die AI-Code-Berichtsfenster (vollständige Codeanalyse, Sicherheitsprüfung, die Dialoge zur technischen Beschreibung und alternativen Lösung sowie der Änderungsüberprüfungsunterschied) teilen sich eine kleine Symbolleiste:
- AI-Profil – Wählen Sie ein anderes AI-Profil für die nächste Ausführung dieses Fensters. Die Auswahl ist vorübergehend: Sie wird auf das Standardprofil zurückgesetzt, wenn das Fenster erneut geöffnet wird. (Security Check behält stattdessen sein eigenes, dauerhaft gespeichertes Sicherheitsprofil.)
- Erneut ausführen – Wiederholen Sie die Anforderung mit dem aktuell ausgewählten Profil.
- A− / A+ – Passen Sie die Lese- oder Vorschau-Schriftgröße an; Die gewählte Größe wird sitzungsübergreifend gespeichert, getrennt pro Fenstertyp.
- Kopieren – Kopieren Sie den Bericht oder Inhalt in die Zwischenablage.
KI-Skills¶
Wenn AI Skills konfiguriert sind, zeigt der Snippet-Editor eine KI-Skills-Auswahl an. Fertigkeiten, die für die Sprache des Snippets relevant sind, werden automatisch vorab ausgewählt, und alle Fertigkeiten, die Sie hier ankreuzen, werden unabhängig vom konfigurierten Ziel der Fertigkeit auf fertigkeitsrelevante AI-Code-Aktionen wie Vervollständigung, Analyse, Verbesserung und Sicherheitsprüfungen angewendet. Bei der Aktion Diagramm mit festem Vertrag werden diese konfigurierbaren Bibliotheksfähigkeiten absichtlich weggelassen, um die quellenbasierte Anforderung klein und vorhersehbar zu halten; korTTY stellt immer seinen separaten kompakten Aktions-Skill für die angeforderte Diagrammfamilie bereit, der intern ist und daher nicht in der Auswahl erscheint oder zu den 39 konfigurierbaren integrierten KI-Skills zählt. Die Auswahl erscheint nur, wenn mindestens eine konfigurierbare KI-Fähigkeit aktiviert ist.
Das Fenster Vollständige Codeanalyse zeigt dieselbe Auswahl als eine Reihe von Chips an – mit der Bezeichnung (automatisch ausgewählt) oder (manuell) – und ermöglicht Ihnen, sie mithilfe einer durchsuchbaren Auswahl nur für diese Analyse zu verfeinern. Die dort vorgenommenen Änderungen werden wirksam, nachdem Sie das nächste Mal auf Erneut ausführen geklickt haben. Siehe Vollständige Codeanalyse.
Textkorrektur und Übersetzung¶
Für die auswahlbasierte Textkorrektur und -übersetzung schreibt KorTTY nur bearbeitbaren Kommentartext, Zeichenfolgenliterale und für den Benutzer sichtbare Textsegmente neu. Eine Auswahl kann innerhalb eines solchen Segments beginnen oder enden: KorTTY erkennt die ausgewählten Wörter anhand des umgebenden Snippets und ersetzt nur den überlappenden Text. Die logische Codestruktur wird nicht neu geschrieben.
Technische Beschreibungen¶
- Wenn Text ausgewählt ist, beschreibt die KI nur diesen Bereich.
- Wenn nichts ausgewählt ist, beschreibt die KI das gesamte Snippet.
Mit dem Beschreibungsdialog können Sie:
- Kopieren Sie die generierte Beschreibung
- Formatieren Sie es mit der Kommentarsyntax der aktuellen Snippet-Sprache
- Fügen Sie es in das Snippet oberhalb des ausgewählten Codes oder oben ein
Alternative Lösungen¶
Klicken Sie mit der rechten Maustaste auf eine ausgewählte Coderegion und wählen Sie Alternative Lösung, um:
- Mehrere alternative Implementierungen anfordern (bis zum konfigurierten Limit)
- Fügen Sie ein dreizeiliges Feld für zusätzliche Anweisungen hinzu
- Neue Alternativen laden und neu generieren
- Zoomen Sie eine einzelne Vorschau auf den gesamten Dialogbereich
- Wenden Sie genau den ursprünglich ausgewählten Code an, wenn Sie fertig sind
Mermaid-Diagramme¶
Mermaid-Diagramme werden mit dem Snippet gespeichert und ein Snippet kann mehrere davon nebeneinander speichern. Wenn sich der Snippet-Inhalt nach der Diagrammgenerierung ändert, markiert KorTTY ein Diagramm als möglicherweise veraltet und bietet eine Neugenerierung an.
- Diagrammfamilien: Es können fünf Familien generiert werden, die jeweils auf einen kompakten, sicheren Dialekt beschränkt sind: Logische Struktur (
flowchart TD– die Kontrollflussansicht und die Standardeinstellung), Sequenzdiagramm (sequenceDiagram– wer zur Laufzeit mit wem spricht: das Skript, Remote-Hosts, externe Befehle, APIs), Zustandsdiagramm (stateDiagram-v2– beobachtbare Zustände und Übergänge wie Verbindungslebenszyklen und Wiederholungslogik), Klasse Diagramm (classDiagram– im Code deklarierte Typen, Mitglieder und Beziehungen) und ER-Diagramm (erDiagram– Datenentitäten und Beziehungen, die der Code impliziert, wie z. B. SQL-Tabellen). - Dialogfeld „Gespeicherte Diagramme“: Die Liste auf der linken Seite zeigt jedes gespeicherte Diagramm mit seiner Familie, seinem Titel und – bei einem Diagramm mit Auswahlbereich – seinem Linienbereich. Neues Diagramm ist ein Menü, das die fünf Familien anbietet, Neu generieren führt das ausgewählte Diagramm mit seiner ursprünglichen Familie und seinem ursprünglichen Umfang erneut aus und Löschen entfernt das ausgewählte Diagramm nach einer Bestätigung. Diagramme bleiben erhalten, wenn das Snippet gespeichert wird.
- Diagramme aus einer Auswahl: Die Einträge Diagramm aus Auswahl generieren des Editor-Kontextmenüs stellen nur die ausgewählten Zeilen dar. Die Auswahl wird auf ganze Zeilen ausgerichtet, die KI sieht nur diesen Bereich und das gespeicherte Diagramm merkt sich den Zeilenbereich: Seine Codereferenzen zeigen auf die absoluten Snippet-Zeilen, und Neu erzeugen liest dieselben Zeilen erneut aus dem aktuellen Inhalt.
- Generierung: Diagramme mit logischer Struktur verwenden stabile Knoten-IDs mit den Semantikklassen
setup,work,successundfailure, vollständige Entscheidungen mit lokalisierten Ja/Nein-Kantenbeschriftungen und eine Quellzuordnung von jedem Knoten zu genauen Snippet-Zeilen; Die Anfrage erfordert eine vollständige Zuordnung, und ein Knoten, den das Modell nicht zugeordnet hat, behält seinen Platz im Diagramm ohne Hover-Referenz. Bei den anderen Familien bleiben Quellreferenzen optional: Einträge, die einen deklarierten Teilnehmer, Staat, eine Klasse oder eine Entität benennen, werden gespeichert, unvollständige Zuordnungen werden einfach gelöscht. Die KI-Anforderung jeder Familie bringt ihre eigene kleine interne Aktionsfähigkeit mit familienspezifischen Qualitätsregeln mit sich – gruppiertes Laufzeitverhalten für Flussdiagramme und Sequenzdiagramme, beobachtbare Zustände anstelle von Anweisungen, nur deklarierte Typen und Mitglieder, keine erfundenen Schemata. Hover-Code-Referenzen und Click-to-Code-Navigation sind eine Funktion der logischen Struktur. - Rendering: Nur lokal – das SHA-256-gepinnte Browserpaket Mermaid 11.17.2 ist in KorTTY enthalten und läuft in einem isolierten, langsam erstellten JavaFX WebView. Es ist kein Rendering-Server, keine Graphviz-Installation, kein Java-Unterprozess und kein Erst-Download erforderlich.
- Dialogfunktionen: Bereinigte SVG-Anzeige mit deaktiviertem JavaScript, Skalierung ohne Verzerrung, Zoom-Schieberegler und Schaltflächen mit Anpassung, SVG/PNG-Export, Bild- und Mermaid-Quell-Zwischenablagekopie, Hover-Code-Referenzen und die gemeinsamen Diagrammdarstellung-Steuerelemente.
- Sicherheit und Wiederherstellung: Ein Diagramm, dessen JSON-Umschlag nicht lesbar ist, wird aus dem Antworttext wiederhergestellt und dann wie jedes andere validiert, sodass eine falsch maskierte Antwort keine zweite Anfrage kostet. KorTTY lehnt Frontmaterie, Anweisungen, Links, Rückrufe, externe Bilder/Symbole, übergroße Quellen und übermäßig komplexe Diagramme vor dem Rendern ab und validiert jedes generierte Diagramm anhand der eingeschränkten Grammatik seiner Familie mit Kompaktheitsobergrenzen pro Familie (z. B. höchstens 12 Sequenzteilnehmer, 12 Zustände, 12 Klassen oder 12 Entitäten; ein Flussdiagramm kann 12 Aktions-/Entscheidungsknoten für einen Ausschnitt mit bis zu 200 Zeilen und mehr deklarieren). bis 24 für ein Skript mit 1.000 Zeilen oder mehr). Ein abgelehntes Ergebnis der logischen Struktur eines gesamten Snippets greift ohne eine weitere KI-Anfrage auf das deterministische lokale Flussdiagramm zurück, und in der Statuszeile des Editors wird der Ablehnungsgrund zusammen mit dem Fallback genannt. Auswahlbereichs- und Nicht-Flussdiagramm-Generierungen melden stattdessen den Fehler und seinen Grund, und nichts, was kaputt ist, wird jemals gespeichert. Eine Antwort, die bei der Ausgabe-Token-Obergrenze abgeschnitten wurde, wird als solche und nicht als gewöhnlicher Fehler gemeldet, da die übliche Ursache darin besteht, dass ein Denkmodell sein gesamtes Budget für Reasoning ausgibt – eine kleinere Auswahl oder ein Modell, das weniger argumentiert als hilft. Sichere eingeschränkte Diagramme, die von älteren korTTY-Versionen gespeichert wurden, bleiben auch dann renderbar, wenn sie vor diesen strengeren Generierungsqualitätsregeln erstellt wurden. Anfragen werden mit einem Timeout von 30 Sekunden serialisiert; Bei Abbruch oder Zeitüberschreitung wird der Renderer verworfen und die ausgeblendete WebView wird nach der Leerlaufzeit freigegeben.
- Upgrade-Bereinigung: Gespeicherte ältere Diagrammeinträge werden verworfen, ohne dass die dazugehörigen Snippets oder Chats entfernt werden. KorTTY entfernt außerdem den Download-Cache für den veralteten Diagramm-Renderer und die aufgegebenen temporären Render-Verzeichnisse, ohne symbolischen Links zu folgen.
Diagrammdarstellung¶
Beide Diagrammfenster – das eigenständige Diagramm-Dialogfeld und das Vollständige Codeanalyse-Flussdiagramm – verfügen über dieselben Zoom-Steuerelemente und zwei Steuerelemente für die Darstellung; Die Darstellungssteuerelemente erinnern sich sitzungsübergreifend an ihre Einstellung:
-
Zoom – − und +* erhöhen den Maßstab, der Schieberegler dazwischen legt ihn direkt fest und Fit** kehrt zu der Größe zurück, die das gesamte Diagramm im Bereich anzeigt. Die Schiene des Schiebers läuft in Zweierpotenzen, sodass die angepasste Größe genau in der Mitte sitzt und ein Schritt nach beiden Seiten sie halbiert oder verdoppelt; Der Prozentsatz neben dem Schieberegler ist der resultierende Maßstab, der bei einem großen Diagramm, das in einen kleinen Bereich eingepasst wird, unter 100 % beginnt. Durch Ziehen des Schiebereglers wird das Diagramm ein paar Mal pro Sekunde neu gezeichnet und nicht bei jedem Pixel, sodass ein großes Flussdiagramm dem Ziehen ohne Stottern folgt und das Diagramm immer mit dem Wert neu gezeichnet wird, den Sie loslassen. Auf Zoom wird bewusst verzichtet: Jedes Diagramm öffnet sich passend zu seinem Fenster.
-
Dunkelmodus – Eine Dunkelmodus-Taste mit drei Auswahlmöglichkeiten:
- Auto – folgt dem Hell/Dunkel-Erscheinungsbild des Betriebssystems. Wenn Sie das Betriebssystem in den Dunkelmodus schalten, folgt das Diagramm beim nächsten Rendern (und wenn das Fenster wieder den Fokus erhält).
- Licht – immer hell.
- Dunkel – immer dunkel.
Eine manuelle Auswahl bleibt so lange bestehen, bis Sie sie ändern. Im Dunkelmodus wird das gesamte Diagramm neu eingefärbt – eine dunkle Leinwand, abgedunkelte Knotenkarten mit hellem Text sowie helle Anschlüsse und Beschriftungen – nicht nur der Seitenrand. - Hintergrund – Ein Farbwähler für die Seiten-/Leinwandfarbe im hellen Modus. Dies gilt für das Diagramm selbst und für jedes exportierte SVG/PNG. Der Picker ist deaktiviert, während der Dunkelmodus aktiv ist, da der Dunkelmodus das Erscheinungsbild steuert.
Platzhaltervariablen¶
Snippets können Platzhaltervariablen enthalten, die ersetzt werden, wenn Sie das Snippet einfügen.
Eingebaute Variablen¶
Diese Variablen werden automatisch ersetzt:
| Variable | Ersatz |
|---|---|
${date} |
Aktuelles Datum im YYYY-MM-DD-Format |
${time} |
Aktuelle Uhrzeit im HH:MM:SS-Format |
${datetime} |
Aktuelles Datum und Uhrzeit im YYYY-MM-DD HH:MM:SS-Format |
${hostname} |
Hostname der lokalen Maschine |
${username} |
Aktueller Systembenutzername |
${clipboard} |
Aktueller Inhalt der Zwischenablage |
${cursor} |
Cursorposition (aus dem Text entfernt; Position zurückgegeben) |
Benutzerdefinierte Variablen¶
Jeder ${variableName}, der nicht in der integrierten Liste enthalten ist, wird als benutzerdefinierte Variable behandelt. Wenn Sie das Snippet einfügen:
- KorTTY überprüft den Variablenmanager auf gespeicherte Werte
- Variablen ohne gespeicherte Werte erfordern eine Eingabe
Snippets an das Terminal senden¶
Der Snippet Manager kann ein ausgewähltes Snippet direkt an das aktive Terminal senden.
An Terminal senden¶
- Behält das vorhandene Verhalten bei
- Unterstützte Skriptsprachen werden nach Möglichkeit als Terminal-Einzeiler eingebettet
- Andere Snippets verwenden den vorhandenen Fallback-Pfad
Mit Parametern an Terminal senden¶
- Öffnet einen Dialog für fehlende
${...}-Platzhaltervariablen und Skriptargumente - Script-Argumente werden einzeln pro Zeile eingegeben; Leerzeilen werden ignoriert
- Wenn Sie ohne Skriptargumente bestätigen, ist das Ergebnis dasselbe wie bei An Terminal senden, fehlende Platzhaltervariablen können jedoch weiterhin ausgefüllt werden
Script-Argumente¶
Unterstützt für Bash/Shell-, Python-, Perl- und Ruby-Snippets:
- Argumente werden einzeln übergeben und in Shell-Anführungszeichen gesetzt
- Nicht als roher Shell-Text angehängt
- Wenn Argumente für nicht unterstützte Sprachen eingegeben werden, zeigt KorTTY eine Informationsmeldung an und sendet nichts
Terminalanzeige¶
Bei eingebetteten/Base64-Einzeilern zeigt das Terminal die Bezeichnung KorTTY snippet: ... an, anstatt den vollständig generierten Befehl wiederzugeben.
Import und Export¶
Snippets können in mehreren Formaten importiert und exportiert werden.
Datenformatexporte¶
Verwenden Sie Exportieren, um ausgewählte Snippets oder alle Snippets zu speichern, wenn nichts ausgewählt ist. Verwenden Sie Importieren, um Snippets aus einer Datei zusammenzuführen.
| Format | Erweiterung | Anwendungsfall |
|---|---|---|
| JSON | .json |
Datenaustausch, programmgesteuerter Zugriff |
| XML | .xml |
Strukturierte Daten, Tool-Integration |
| YAML | .yaml |
Für Menschen lesbares, konfigurationsfreundliches |
Skriptorientierte Exporte¶
Wählen Sie für skriptspezifische Exporte Folgendes:
Einfache Textskriptdateien¶
- Öffnet eine Zielordnerauswahl
- Schreibt eine Datei pro Snippet
- Filename stammt aus der Spalte Name des Snippets, einschließlich der Erweiterung
- Unsichere Pfadzeichen werden bereinigt
- Doppelte Namen erhalten ein Suffix wie
script (2).sh
ZIP-Skriptarchiv¶
- Schreibt eine ZIP-Datei mit einer Skriptdatei pro Snippet
- Behalten Sie die Erweiterung aus der Spalte Name bei oder erzwingen Sie eine Erweiterung für alle Dateien
- Unterstützte erzwungene Erweiterungen:
.sh,.py,.pl,.rb,.ps1,.sql,.txtoder benutzerdefiniert
ZIP-Verschlüsselungsoptionen¶
- Unverschlüsselt – Standard-ZIP-Archiv
- AES passwortgeschützt – Passwortverschlüsselt mit AES-256
- GPG-verschlüsselt – Erstellt eine
.zip.gpg-Datei; erfordert den lokalen Befehlgpgund einen verwendbaren öffentlichen Schlüssel
Tip
Wählen Sie zwei Snippets aus, exportieren Sie sie als Nur-Text und bestätigen Sie, dass die erstellten Dateien die Namen aus der Spalte Name verwenden. Exportieren Sie dann dieselbe Auswahl als ZIP mit der erzwungenen Erweiterung .txt und überprüfen Sie, ob alle ZIP-Einträge .txt verwenden. Bestätigen Sie für den Passwortexport, dass die ZIP-Datei vor dem Extrahieren das Passwort erfordert. Für den GPG-Export entschlüsseln Sie .zip.gpg mit Ihrem lokalen GPG-Setup und überprüfen Sie die ZIP-Einträge.