
Getestet und kompatibel mit Openai Chatgpt, Azure Openai Service, Verwirrigkeit AI und Lama!
Chatgpt CLI bietet eine leistungsstarke Befehlszeilenschnittstelle für die nahtlose Interaktion mit ChatGPT-Modellen über OpenAI und Azure mit Streaming-Funktionen und umfangreichen Konfigurationsoptionen.

context-window -Einstellung eingestellt werden.-l oder --list-models zu.--list-threads an.config.yaml -Datei und Umgebungsvariablen angegeben werden können. Für schnelle Anpassungen werden verschiedene Flags --set-<value> bereitgestellt. Um Ihre aktuellen Einstellungen zu überprüfen, verwenden Sie das Flag --config oder -c . Wir freuen uns, Unterstützung für Eingabeaufentwicklungsdateien mit dem Flag --prompt in Version 1.7.1 vorzustellen! Mit dieser Funktion können Sie einen reichhaltigen und detaillierten Kontext für Ihre Gespräche direkt aus einer Datei bereitstellen.
--prompt Mit dem Flag --prompt können Sie eine Datei mit dem anfänglichen Kontext oder den Anweisungen für Ihre Chatgpt -Konversation angeben. Dies ist besonders nützlich, wenn Sie detaillierte Anweisungen oder einen Kontext haben, den Sie über verschiedene Gespräche hinweg wiederverwenden möchten.
Um das Flag --prompt -Flag zu verwenden, übergeben Sie den Pfad Ihrer sofortigen Datei wie folgt:
chatgpt --prompt path/to/your/prompt.md " Use a pipe or provide a query here " Der Inhalt von prompt.md wird gelesen und als ursprünglicher Kontext für die Konversation verwendet, während die Abfrage, die Sie direkt angeben, als spezifische Frage oder Aufgabe dient, die Sie beantworten möchten.
Hier ist ein lustiges Beispiel, bei dem Sie die Ausgabe eines git diff -Befehls als Eingabeaufforderung verwenden können:
git diff | chatgpt --prompt ../prompts/write_pull-request.md In diesem Beispiel wird der Inhalt aus der Eingabedatei write_pull-request.md verwendet, um die Antwort des Modells basierend auf den Diff-Daten von git diff zu leiten.
Für eine Vielzahl von Eingabeaufforderungen finden Sie dieses fantastische Aufforderungs-Repository. Diese können als großartige Ausgangspunkte oder Inspirationen für Ihre eigenen benutzerdefinierten Eingaben dienen!
Sie können Chatgpt-Cli mit Homebrew installieren:
brew tap kardolus/chatgpt-cli && brew install chatgpt-cliFür eine schnelle und einfache Installation ohne Kompilieren können Sie die vorgefertigte Binärdatei für Ihr Betriebssystem und Ihre Architektur direkt herunterladen:
curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-386 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/Laden Sie die Binärdatei von diesem Link herunter und fügen Sie es Ihrem Pfad hinzu.
Wählen Sie den entsprechenden Befehl für Ihr System aus, der das Binärdatum herunterlädt, es ausführbar macht und es in Ihr/usr/lokales/bines Verzeichnis (oder % path % unter Windows) verschieben, um einen einfachen Zugriff zu erhalten.
Setzen Sie die Umgebungsvariable OPENAI_API_KEY in Ihren Chatgpt -Geheimschlüssel. Um die Umgebungsvariable festzulegen, können Sie Ihrem Shell -Profil die folgende Zeile hinzufügen (z. B. ~/.bashrc, ~/.zshrc oder ~/.bash_profile) und ersetzen Sie Ihren_API_Key durch Ihren tatsächlichen Schlüssel:
export OPENAI_API_KEY= " your_api_key "Erstellen Sie mit dem Befehl ein ~/.Chatgpt-Cli-Verzeichnis, um die Verfolgung der Verlaufsverfolgung über CLI-Anrufe zu aktivieren:
mkdir -p ~ /.chatgpt-cliSobald dieses Verzeichnis vorhanden ist, verwaltet die CLI den Nachrichtenverlauf für jeden "Thread", mit dem Sie sich unterhalten, automatisch. Die Geschichte funktioniert wie ein Schiebefenster und hält den Kontext bis zu einem konfigurierbaren Token -Maximum bei. Dies gewährleistet ein Gleichgewicht zwischen der Aufrechterhaltung des Konversationskontexts und dem Erreichen einer optimalen Leistung.
Wenn standardmäßig ein bestimmter Thread vom Benutzer bereitgestellt wird, verwendet die CLI den Standard-Thread und speichert den Verlauf ~/.chatgpt-cli/history/default.json . Weitere Details zum Konfigurieren des thread -Parameters im Konfigurationsabschnitt dieses Dokuments finden Sie in diesem Dokument.
Probieren Sie es aus:
chatgpt what is the capital of the Netherlands Verwenden Sie zum Starten des interaktiven Modus das -i oder --interactive Flag:
chatgpt --interactive Wenn Sie möchten, dass die CLI für jede Sitzung automatisch einen neuen Thread erstellt, stellen Sie sicher, dass die Konfigurationsvariable auto_create_new_thread auf true eingestellt ist. Dadurch wird für jede interaktive Sitzung eine eindeutige Thread -Kennung erstellt.
Um die Rohrfunktion zu verwenden, erstellen Sie eine Textdatei mit einem Kontext. Erstellen Sie beispielsweise eine Datei namens context.txt mit dem folgenden Inhalt:
Kya is a playful dog who loves swimming and playing fetch.Verwenden Sie dann die Pipe -Funktion, um ChatGPT diesen Kontext zu geben:
cat context.txt | chatgpt " What kind of toy would Kya enjoy? "Um alle verfügbaren Modelle aufzulisten, verwenden Sie das Flag -l- oder -list -Modelle:
chatgpt --list-modelsWeitere Optionen finden Sie unter:
chatgpt --helpDie ChatGPT-CLI verwendet eine vierstufige Konfigurationsstrategie, wobei verschiedene Vorrangwahlen Flags, Umgebungsvariablen, eine Konfiguration und Standardwerte in dieser jeweiligen Reihenfolge zugewiesen sind:
| Variable | Beschreibung | Standard |
|---|---|---|
name | Das Präfix für Umgebungsvariablen überschreibt. | "Openai" |
thread | Der Name des aktuellen Chat -Threads. Jeder eindeutige Threadname hat seinen eigenen Kontext. | 'Standard' |
omit_history | Wenn der Chat -Verlauf nicht verwendet wird, wird nicht verwendet, um den Kontext für das GPT -Modell bereitzustellen. | FALSCH |
command_prompt | Die Eingabeaufforderung im interaktiven Modus. Sollte einzeln zitiert sein. | "[%datetime] [q%counter]" |
output_prompt | Die Ausgangsaufforderung im interaktiven Modus. Sollte einzeln zitiert sein. | '' ' |
auto_create_new_thread | Wenn auf true gesetzt ist, wird für jede interaktive Sitzung ein neuer Thread mit einer eindeutigen Kennung (z. B. int_a1b2 ) erstellt. Wenn false , verwendet die CLI den durch den thread -Parameter angegebenen Thread. | false |
track_token_usage | Wenn Sie auf True gesetzt sind, zeigt die gesamte Token -Nutzung nach jeder Abfrage im Query -Modus an und hilft Ihnen, die API -Nutzung zu überwachen. | false |
debug | Wenn Sie auf True gesetzt sind, druckt die RAW -Anforderungs- und Antwortdaten während der API -Aufrufe nützlich für das Debuggen. | false |
skip_tls_verify | Wenn Sie auf True gesetzt sind, übersprungen Sie die Überprüfung des TLS -Zertifikats und ermöglichen unsicheren HTTPS -Anforderungen. | false |
multiline | Wenn Sie auf TRUE eingestellt sind, aktivieren Sie den Multiline -Eingangsmodus in interaktiven Sitzungen. | false |
| Variable | Beschreibung | Standard |
|---|---|---|
api_key | Ihr API -Schlüssel. | (Keine für Sicherheit) |
model | Das von der Anwendung verwendete GPT -Modell. | 'GPT-3.5-Turbo' |
max_tokens | Die maximale Anzahl von Token, die in einem einzelnen API -Aufruf verwendet werden können. | 4096 |
context_window | Die Speichergrenze für die Aufnahme des Gesprächs kann gleichzeitig in Erinnerung bleiben. | 8192 |
role | Die Systemrolle | "Sie sind ein hilfsbereiter Assistent." |
temperature | Welche Abtasttemperatur zu verwenden, zwischen 0 und 2. höhere Werte machen den Ausgang zufällig; Niedrigere Werte machen es fokussierter und deterministischer. | 1.0 |
frequency_penalty | Zahl zwischen -2.0 und 2,0. Positive Werte bestrafen neue Token basierend auf ihrer bisher vorhandenen Häufigkeit im Text. | 0,0 |
top_p | Eine Alternative zur Probenahme mit Temperatur, die als Nucleus -Probenahme bezeichnet wird, wobei das Modell die Ergebnisse der Token mit TOP_P -Wahrscheinlichkeitsmasse berücksichtigt. | 1.0 |
presence_penalty | Zahl zwischen -2.0 und 2,0. Positive Werte bestrafen neue Token, basierend darauf, ob sie bisher im Text erscheinen. | 0,0 |
seed | Legt den Samen für die deterministische Probenahme (Beta) fest. Wiederholte Anforderungen mit denselben Saatgut und Parametern zielen darauf ab, dasselbe Ergebnis zurückzugeben. | 0 |
url | Die Basis -URL für die OpenAI -API. | 'https://api.openai.com' |
completions_path | Der API -Endpunkt für Abschlüsse. | '/v1/chat/comentions' ' |
models_path | Der API -Endpunkt für den Zugriff auf Modellinformationen. | '/v1/models' ' |
auth_header | Der Header, der zur Autorisierung in API -Anfragen verwendet wird. | 'Genehmigung' |
auth_token_prefix | Das Präfix wird vor dem Token im auth_header hinzugefügt. | "Träger" |
Standardmäßig speichert Chatgpt CLI Konfigurations- und Verlaufsdateien im Verzeichnis ~/.chatgpt-cli . Sie können diese Standorte jedoch problemlos überschreiben, indem Sie Umgebungsvariablen einstellen, sodass Sie Konfiguration und Verlauf in benutzerdefinierten Verzeichnissen speichern können.
| Umgebungsvariable | Beschreibung | Standardspeicherort |
|---|---|---|
OPENAI_CONFIG_HOME | Überschreibt den Standard -Konfigurationsverzeichnispfad. | ~/.chatgpt-cli |
OPENAI_DATA_HOME | Überschreibt den Standarddatenverzeichnispfad. | ~/.chatgpt-cli/history |
Um die Standardkonfiguration oder die Datenverzeichnisse zu ändern, legen Sie die entsprechenden Umgebungsvariablen fest:
export OPENAI_CONFIG_HOME="/custom/config/path"
export OPENAI_DATA_HOME="/custom/data/path"
Wenn diese Umgebungsvariablen nicht festgelegt sind, stellt die Anwendung für Konfigurationsdateien und ~ /.Chatgpt-cli/history für den Verlauf standardmäßig ein.
%date : Das aktuelle Datum im Format YYYY-MM-DD .%time : Die aktuelle Zeit im Format HH:MM:SS .%datetime : Das aktuelle Datum und die aktuelle Uhrzeit im Format YYYY-MM-DD HH:MM:SS .%counter : Die Gesamtzahl der Abfragen in der aktuellen Sitzung.%usage : Die Verwendung in den verwendeten Gesamtzahl von Token (funktioniert nur im Abfragemodus). Die Standardeinstellungen können überschrieben werden, indem Ihre eigenen Werte in der Benutzerkonfigurationsdatei bereitgestellt werden. Die Struktur dieser Datei spiegelt die der Standardkonfiguration wider. Um beispielsweise die Parameter model und max_tokens zu überschreiben, sieht Ihre Datei möglicherweise so aus:
model : gpt-3.5-turbo-16k
max_tokens : 4096 Dies verändert das model an gpt-3.5-turbo-16k und passt max_tokens an 4096 an. Alle anderen Optionen wie url , completions_path und models_path können ebenfalls geändert werden. Wenn auf die Benutzerkonfigurationsdatei nicht zugegriffen werden oder fehlt, greift die Anwendung auf die Standardkonfiguration zurück.
Eine andere Möglichkeit, Werte anzupassen, ohne die Konfigurationsdatei manuell zu bearbeiten, ist die Verwendung von Umgebungsvariablen. Das name bildet das Präfix für diese Variablen. Beispielsweise kann das model mithilfe der Variablen OPENAI_MODEL geändert werden. In ähnlicher Weise, um die Geschichte während der Ausführung eines Befehls zu deaktivieren, verwenden Sie:
OPENAI_OMIT_HISTORY=true chatgpt what is the capital of Denmark ?Dieser Ansatz ist besonders vorteilhaft für temporäre Änderungen oder für das Testen unterschiedlicher Konfigurationen.
Darüber hinaus können Sie das Flag --config oder -c verwenden, um die vorliegende Konfiguration anzuzeigen. Mit dieser praktischen Funktion können Benutzer ihre aktuellen Einstellungen schnell überprüfen, ohne die Konfigurationsdateien manuell zu inspizieren.
chatgpt --configDurch Ausführen dieses Befehls wird die aktive Konfiguration angezeigt, einschließlich aller von Umgebungsvariablen oder der Benutzerkonfigurationsdatei eingeführten Überschreibungen.
Um bequeme Anpassungen zu erleichtern, bietet die ChatGPT-CLI Flags zum schnellen Ändern der Parameter model , thread , context-window und max_tokens in Ihrem benutzerkonfigurierten config.yaml . Diese Flaggen sind --set-model , --set-thread , --set-context-window und --set-max-tokens .
Verwenden Sie zum Beispiel, um das Modell zu aktualisieren, den folgenden Befehl:
chatgpt --set-model gpt-3.5-turbo-16kDiese Funktion ermöglicht schnelle Änderungen an den wichtigsten Konfigurationsparametern und optimiert Ihre Erfahrung mit der Chatgpt -CLI.
Verwenden Sie für Azure eine ähnliche Konfiguration wie:
name : azure
api_key : <your_key>
model : <not relevant, read from the completions path>
max_tokens : 4096
context_window : 8192
role : You are a helpful assistant.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : default
omit_history : false
url : https://<your_resource>.openai.azure.com
completions_path : /openai/deployments/<your_deployment>/chat/completions?api-version=<your_api>
models_path : /v1/models
auth_header : api-key
auth_token_prefix : " "
command_prompt : ' [%datetime] [Q%counter] '
auto_create_new_thread : false
track_token_usage : false
debug : falseSie können den API -Schlüssel entweder in der oben gezeigten Konfigurationsdatei festlegen oder als Umgebungsvariable exportieren:
export AZURE_API_KEY= < your_key >Verwenden Sie für Verwirrung eine ähnliche Konfiguration wie:
name : perplexity
api_key : " "
model : llama-3.1-sonar-small-128k-online
max_tokens : 4096
context_window : 8192
role : Be precise and concise.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : test
omit_history : false
url : https://api.perplexity.ai
completions_path : /chat/completions
models_path : /models
auth_header : Authorization
auth_token_prefix : ' Bearer '
command_prompt : ' [%datetime] [Q%counter] [%usage] '
auto_create_new_thread : true
track_token_usage : true
debug : falseSie können den API -Schlüssel entweder in der oben gezeigten Konfigurationsdatei festlegen oder als Umgebungsvariable exportieren:
export PERPLEXITY_API_KEY= < your_key > Sie können den API -Schlüssel entweder in der oben gezeigten config.yaml festlegen oder als Umgebungsvariable exportieren:
export AZURE_API_KEY= < your_key >Verbessern Sie Ihre CLI -Erfahrung mit unserer neuen Autokaponetion -Funktion für Befehlsflags!
Die Autocompletion wird derzeit für die folgenden Muscheln unterstützt: Bash, ZSH, Fisch und PowerShell. Führen Sie den entsprechenden Befehl basierend auf Ihrer Shell aus, um den Flag -Abschluss in Ihrer aktuellen Shell -Sitzung zu aktivieren:
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression Für zusätzliche Bequemlichkeit können Sie die Autoperation in allen neuen Shell -Sitzungen für die Startdatei Ihrer Shell in allen neuen Shell -Sitzungen anhalten. Hier sind die Dateien, die normalerweise für jede Shell verwendet werden:
.bashrc oder .bash_profile hinzufügen.zshrc hinzufügenconfig.fish hinzu Zum Beispiel fügen Sie für Bash die folgende Zeile zu Ihrer .bashrc -Datei hinzu:
. <( chatgpt --set-completions bash )Dies stellt sicher, dass die automatische Vervollständigung des Befehlsflags jedes Mal automatisch aktiviert ist, wenn Sie ein neues Terminalfenster öffnen.
Sie können sich in Echtzeit mit dem hier befindlichen Skript mdrender.sh -Skript in Echtzeit markieren. Sie müssen zuerst den Glühen installieren.
Beispiel:
chatgpt write a hello world program in Java | ./scripts/mdrender.sh Um mit der Entwicklung zu beginnen, setzen Sie die Umgebungsvariable OPENAI_API_KEY auf Ihren Chatgpt -Geheimschlüssel.
Das Makefile vereinfacht Entwicklungsaufgaben, indem es mehrere Ziele für das Testen, Erstellen und Einsatz bereitstellt.
make all-testsmake binariesmake shipitmake updatedepsFür weitere verfügbare Befehle: Verwenden Sie:
make help .scriptsinstall.ps1Testen Sie nach einem erfolgreichen Build die Anwendung mit dem folgenden Befehl:
./bin/chatgpt what type of dog is a Jack Russel ?Wie bereits erwähnt, unterstützt die Chatgpt CLI die Verfolgung der Konversationsgeschichte über CLI -Anrufe. Diese Funktion schafft eine nahtlose und konverselle Erfahrung mit dem GPT -Modell, da die Geschichte in nachfolgenden Interaktionen als Kontext verwendet wird.
Um diese Funktion zu aktivieren, müssen Sie mit dem Befehl ein ~/.chatgpt-cli Verzeichnis erstellen:
mkdir -p ~ /.chatgpt-cliWenn Sie auf Probleme stoßen oder Vorschläge für Verbesserungen haben, geben Sie bitte ein Problem auf GitHub ein. Wir schätzen Ihr Feedback und Ihre Beiträge, um dieses Projekt besser zu machen.
Wenn Sie aus irgendeinem Grund die ChatGPT -CLI -Anwendung in Ihrem System deinstallieren möchten, können Sie dies tun, indem Sie folgende Schritte befolgen:
Wenn Sie die CLI mit Homebrew installiert haben, können Sie dies tun:
brew uninstall chatgpt-cliUnd um den Hahn zu entfernen:
brew untap kardolus/chatgpt-cliWenn Sie die Binärdatei direkt installiert haben, befolgen Sie diese Schritte:
Entfernen Sie die Binärdatei:
sudo rm /usr/local/bin/chatgpt Wenn Sie das Verzeichnis der Verlaufs-Tracking entfernen möchten, können Sie optional auch das ~/.chatgpt-cli Verzeichnis löschen:
rm -rf ~ /.chatgpt-cli Navigieren Sie zum Standort des chatgpt -Binary in Ihrem System, der sich auf Ihrem Weg befinden sollte.
Löschen Sie den chatgpt Binary.
Wenn Sie die Verlaufsverfolgung entfernen möchten, navigieren Sie optional zum Verzeichnis ~/.chatgpt-cli (wobei ~ sich auf das Heimverzeichnis Ihres Benutzers bezieht) und löschen Sie es.
Bitte beachten Sie, dass das Verlaufsverfolgungsverzeichnis ~/.chatgpt-cli nur Gesprächsgeschichte und keine personenbezogenen Daten enthält. Wenn Sie Bedenken haben, können Sie dieses Verzeichnis während der Deinstallation löschen.
Vielen Dank, dass Sie Chatgpt CLI verwendet haben!