
¡Probado y compatible con Operai Chatgpt, Azure OpenAi Service, Perplexity Ai y Llama!
CHATGPT CLI proporciona una poderosa interfaz de línea de comandos para una interacción perfecta con los modelos ChatGPT a través de OpenAI y Azure, con capacidades de transmisión y amplias opciones de configuración.

context-window .-l o --list-models .--list-threads .config.yaml y variables de entorno. Para ajustes rápidos, se proporcionan varias banderas --set-<value> . Para verificar su configuración actual, use el indicador --config o -c . ¡Estamos entusiasmados de presentar el soporte para archivos de inmediato con el indicador --prompt en la versión 1.7.1 ! Esta característica le permite proporcionar un contexto rico y detallado para sus conversaciones directamente desde un archivo.
--prompt El indicador --prompt le permite especificar un archivo que contiene el contexto inicial o las instrucciones para su conversación ChatGPT. Esto es especialmente útil cuando tiene instrucciones o contexto detallados que desea reutilizar en diferentes conversaciones.
Para usar el indicador --prompt , pase la ruta de su archivo de inmediato como este:
chatgpt --prompt path/to/your/prompt.md " Use a pipe or provide a query here " El contenido de prompt.md se leerá y utilizará como el contexto inicial para la conversación, mientras que la consulta que proporciona directamente servirá como la pregunta o tarea específica que desea abordar.
Aquí hay un ejemplo divertido en el que puede usar la salida de un comando git diff como un aviso:
git diff | chatgpt --prompt ../prompts/write_pull-request.md En este ejemplo, el contenido del archivo de inmediato write_pull-request.md se utiliza para guiar la respuesta del modelo en función de los datos DIFF de git diff .
Para obtener una variedad de indicaciones listas para usar, consulte este increíble repositorio de indicaciones. ¡Estos pueden servir como excelentes puntos de partida o inspiración para sus propias indicaciones personalizadas!
Puede instalar chatgpt-cli usando homebrew:
brew tap kardolus/chatgpt-cli && brew install chatgpt-cliPara una instalación rápida y fácil sin compilar, puede descargar directamente el binario preconstruido para su sistema operativo y arquitectura:
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/Descargue el binario de este enlace y agréguelo a su ruta.
Elija el comando apropiado para su sistema, que descargará el binario, lo hará ejecutable y lo moverá a su directorio/usr/local/bin (o % ruta % en Windows) para facilitar el acceso.
Establezca la variable de entorno OPENAI_API_KEY en su clave secreta CHATGPT. Para establecer la variable de entorno, puede agregar la siguiente línea a su perfil de shell (por ejemplo, ~/.bashrc, ~/.zshrc o ~/.bash_profile), reemplazando su_api_key con su clave real:
export OPENAI_API_KEY= " your_api_key "Para habilitar el seguimiento del historial a través de las llamadas CLI, cree un directorio ~/.chatgpt-cli usando el comando:
mkdir -p ~ /.chatgpt-cliUna vez que este directorio está en su lugar, la CLI administra automáticamente el historial de mensajes para cada "hilo" con el que conversa. El historial funciona como una ventana deslizante, manteniendo el contexto hasta un máximo de token configurable. Esto garantiza un equilibrio entre mantener el contexto de conversación y lograr un rendimiento óptimo.
De manera predeterminada, si el usuario no proporciona un subproceso específico, la CLI usa el subproceso predeterminado y almacena el historial en ~/.chatgpt-cli/history/default.json . Puede encontrar más detalles sobre cómo configurar el parámetro de thread en la sección de configuración de este documento.
Pruébalo:
chatgpt what is the capital of the Netherlands Para iniciar el modo interactivo, use el indicador -i o --interactive :
chatgpt --interactive Si desea que la CLI cree automáticamente un nuevo hilo para cada sesión, asegúrese de que la variable de configuración auto_create_new_thread esté configurada en true . Esto creará un identificador de hilo único para cada sesión interactiva.
Para usar la función de tubería, cree un archivo de texto que contenga algún contexto. Por ejemplo, cree un archivo llamado context.txt con el siguiente contenido:
Kya is a playful dog who loves swimming and playing fetch.Luego, use la función de tubería para proporcionar este contexto para chatgpt:
cat context.txt | chatgpt " What kind of toy would Kya enjoy? "Para enumerar todos los modelos disponibles, use la bandera -l o -list -mods:
chatgpt --list-modelsPara obtener más opciones, ver:
chatgpt --helpLa CLI CHATGPT adopta una estrategia de configuración de cuatro niveles, con diferentes niveles de precedencia asignados a indicadores, variables de entorno, un archivo config.yaml y valores predeterminados, en ese orden respectivo:
| Variable | Descripción | Por defecto |
|---|---|---|
name | El prefijo para la variable de entorno anula. | 'OpenAi' |
thread | El nombre del hilo de chat actual. Cada nombre de hilo único tiene su propio contexto. | 'por defecto' |
omit_history | Si es cierto, el historial de chat no se utilizará para proporcionar contexto para el modelo GPT. | FALSO |
command_prompt | El símbolo del sistema en modo interactivo. Debe ser citada única. | '[%DateTime] [Q%contador]' |
output_prompt | La solicitud de salida en modo interactivo. Debe ser citada única. | '' |
auto_create_new_thread | Si se establece en true , se creará un nuevo hilo con un identificador único (por ejemplo, int_a1b2 ) para cada sesión interactiva. If false , la CLI usará el hilo especificado por el parámetro thread . | false |
track_token_usage | Si se establece en True, muestra el uso total del token después de cada consulta en el modo Query, ayudándole al uso de API. | false |
debug | Si se establece en True, imprime los datos de solicitud y respuesta sin procesar durante las llamadas de API, útil para la depuración. | false |
skip_tls_verify | Si se establece en True, omita la verificación del certificado TLS, permitiendo solicitudes HTTPS inseguras. | false |
multiline | Si se establece en True, habilita el modo de entrada multilínea en sesiones interactivas. | false |
| Variable | Descripción | Por defecto |
|---|---|---|
api_key | Tu clave API. | (ninguno por seguridad) |
model | El modelo GPT utilizado por la aplicación. | 'GPT-3.5-TURBO' |
max_tokens | El número máximo de tokens que se pueden usar en una sola llamada API. | 4096 |
context_window | El límite de memoria de cuánto de la conversación se puede recordar a la vez. | 8192 |
role | El rol del sistema | 'Eres un asistente útil'. |
temperature | Qué temperatura de muestreo para usar, entre 0 y 2. Los valores más altos hacen que la salida sea más aleatoria; Los valores más bajos lo hacen más enfocado y determinista. | 1.0 |
frequency_penalty | Número entre -2.0 y 2.0. Los valores positivos penalizan nuevos tokens en función de su frecuencia existente en el texto hasta ahora. | 0.0 |
top_p | Una alternativa al muestreo con temperatura, llamado muestreo de núcleo, donde el modelo considera los resultados de los tokens con masa de probabilidad TOP_P. | 1.0 |
presence_penalty | Número entre -2.0 y 2.0. Los valores positivos penalizan nuevos tokens en función de si aparecen en el texto hasta ahora. | 0.0 |
seed | Establece la semilla para el muestreo determinista (beta). Las solicitudes repetidas con la misma semilla y parámetros tienen como objetivo devolver el mismo resultado. | 0 |
url | La URL base para la API de OpenAI. | 'https://api.openai.com' |
completions_path | El punto final de la API para completar. | '/v1/chat/finalizaciones' |
models_path | El punto final API para acceder a la información del modelo. | '/v1/modelos' |
auth_header | El encabezado utilizado para la autorización en solicitudes de API. | 'Autorización' |
auth_token_prefix | El prefijo se agregará antes del token en el auth_header . | 'Portador' |
Por defecto, ChatGPT CLI almacena archivos de configuración e historial en el directorio ~/.chatgpt-cli . Sin embargo, puede anular fácilmente estas ubicaciones estableciendo variables de entorno, lo que le permite almacenar la configuración y el historial en directorios personalizados.
| Variable de entorno | Descripción | Ubicación predeterminada |
|---|---|---|
OPENAI_CONFIG_HOME | Anula la ruta de directorio de configuración predeterminada. | ~/.chatgpt-cli |
OPENAI_DATA_HOME | Anula la ruta de directorio de datos predeterminada. | ~/.chatgpt-cli/history |
Para cambiar la configuración predeterminada o los directorios de datos, establezca las variables de entorno apropiadas:
export OPENAI_CONFIG_HOME="/custom/config/path"
export OPENAI_DATA_HOME="/custom/data/path"
Si estas variables de entorno no están establecidas, la aplicación es predeterminada a ~/.chatgpt-cli para archivos de configuración y ~ /.chatgpt-cli/history para la historia.
%date : la fecha actual en el formato YYYY-MM-DD .%time : el tiempo actual en el formato HH:MM:SS .%datetime : la fecha y hora actuales en el formato YYYY-MM-DD HH:MM:SS .%counter : el número total de consultas en la sesión actual.%usage : el uso en tokens totales utilizados (solo funciona en modo de consulta). Los valores predeterminados se pueden anular proporcionando sus propios valores en el archivo de configuración del usuario. La estructura de este archivo refleja la de la configuración predeterminada. Por ejemplo, para anular el model y los parámetros max_tokens , su archivo puede verse así:
model : gpt-3.5-turbo-16k
max_tokens : 4096 Esto altera el model a gpt-3.5-turbo-16k y ajusta max_tokens a 4096 . Todas las demás opciones, como url , completions_path y models_path , pueden modificarse de manera similar. Si no se puede acceder o falta el archivo de configuración del usuario, la aplicación recurrirá a la configuración predeterminada.
Otra forma de ajustar los valores sin editar manualmente el archivo de configuración es mediante las variables de entorno. El atributo name forma el prefijo de estas variables. Como ejemplo, el model se puede modificar utilizando la variable de entorno OPENAI_MODEL . Del mismo modo, para deshabilitar el historial durante la ejecución de un comando, use:
OPENAI_OMIT_HISTORY=true chatgpt what is the capital of Denmark ?Este enfoque es especialmente beneficioso para cambios temporales o para probar configuraciones variables.
Además, puede usar el indicador --config o -c para ver la configuración actual. Esta práctica característica permite a los usuarios verificar rápidamente su configuración actual sin la necesidad de inspeccionar manualmente los archivos de configuración.
chatgpt --configEjecución de este comando mostrará la configuración activa, incluidas las anulaciones instituidas por las variables de entorno o el archivo de configuración del usuario.
Para facilitar ajustes convenientes, la CLI CHATGPT proporciona indicadores para modificar rápidamente el model , thread , context-window y los parámetros max_tokens en su usuario configurado config.yaml . Estas banderas son --set-model , --set-thread , --set-context-window y --set-max-tokens .
Por ejemplo, para actualizar el modelo, use el siguiente comando:
chatgpt --set-model gpt-3.5-turbo-16kEsta característica permite cambios rápidos en los parámetros de configuración clave, optimizando su experiencia con la CLI CHATGPT.
Para Azure, use una configuración similar a:
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 : falsePuede establecer la tecla API en el archivo config.yaml como se muestra arriba o exportarlo como una variable de entorno:
export AZURE_API_KEY= < your_key >Para la perplejidad, use una configuración similar a:
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 : falsePuede establecer la tecla API en el archivo config.yaml como se muestra arriba o exportarla como una variable de entorno:
export PERPLEXITY_API_KEY= < your_key > Puede establecer la tecla API en el archivo config.yaml como se muestra arriba o exportarla como una variable de entorno:
export AZURE_API_KEY= < your_key >¡Mejore su experiencia CLI con nuestra nueva función de Autocompletación para las banderas de comando!
El autocompleto actualmente es compatible con los siguientes conchas: Bash, ZSH, Fish y PowerShell. Para activar la finalización del indicador en su sesión de shell actual, ejecute el comando apropiado en función de su shell:
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression Para mayor comodidad, puede hacer que el autocompleto persista en todas las nuevas sesiones de shell agregando el comando de abastecimiento apropiado al archivo de inicio de su shell. Aquí están los archivos típicamente utilizados para cada shell:
.bashrc o .bash_profile.zshrcconfig.fish Por ejemplo, para BASH, agregaría la siguiente línea a su archivo .bashrc :
. <( chatgpt --set-completions bash )Esto asegura que el indicador de comando Autocompletion esté habilitado automáticamente cada vez que abre una nueva ventana de terminal.
Puede representar a Markdown en tiempo real utilizando el script mdrender.sh , ubicado aquí. Primero deberá instalar GLOW.
Ejemplo:
chatgpt write a hello world program in Java | ./scripts/mdrender.sh Para comenzar a desarrollar, establezca la variable de entorno OPENAI_API_KEY en su clave secreta CHATGPT.
MakeFile simplifica las tareas de desarrollo al proporcionar varios objetivos para las pruebas, la construcción y la implementación.
make all-testsmake binariesmake shipitmake updatedepsPara más comandos disponibles, use:
make help .scriptsinstall.ps1Después de una compilación exitosa, pruebe la aplicación con el siguiente comando:
./bin/chatgpt what type of dog is a Jack Russel ?Como se mencionó anteriormente, la CLI CHATGPT admite el seguimiento del historial de conversación en las llamadas CLI. Esta característica crea una experiencia perfecta y conversacional con el modelo GPT, ya que la historia se utiliza como contexto en las interacciones posteriores.
Para habilitar esta función, debe crear un directorio ~/.chatgpt-cli usando el comando:
mkdir -p ~ /.chatgpt-cliSi encuentra algún problema o tiene sugerencias de mejoras, envíe un problema en GitHub. Agradecemos sus comentarios y contribuciones para ayudar a mejorar este proyecto.
Si por alguna razón desea desinstalar la aplicación CHATGPT CLI de su sistema, puede hacerlo siguiendo estos pasos:
Si instaló la CLI usando Homebrew, puede hacer:
brew uninstall chatgpt-cliY para eliminar el grifo:
brew untap kardolus/chatgpt-cliSi instaló el binario directamente, siga estos pasos:
Retire el binario:
sudo rm /usr/local/bin/chatgpt Opcionalmente, si desea eliminar el directorio de seguimiento del historial, también puede eliminar el directorio ~/.chatgpt-cli :
rm -rf ~ /.chatgpt-cli Navegue a la ubicación del binario chatgpt en su sistema, que debería estar en su camino.
Elimine el chatgpt binario.
Opcionalmente, si desea eliminar el seguimiento del historial, navegue al directorio ~/.chatgpt-cli (donde ~ se refiere al directorio de inicio de su usuario) y elimínelo.
Tenga en cuenta que el directorio de seguimiento del historial ~/.chatgpt-cli solo contiene historial de conversación y sin datos personales. Si tiene alguna inquietud al respecto, no dude en eliminar este directorio durante la desinstalación.
¡Gracias por usar Chatgpt CLI!