
Testado e compatível com o OpenAi chatgpt, Azure OpenAi Service, Perplexity AI e Llama!
O ChatGPT CLI fornece uma poderosa interface de linha de comando para interação perfeita com os modelos ChatGPT via OpenAi e Azure, com recursos de streaming e opções de configuração extensas.

context-window .-l ou --list-models .--list-threads .config.yaml e variáveis de ambiente. Para ajustes rápidos, são fornecidos vários sinalizadores --set-<value> . Para verificar suas configurações atuais, use o sinalizador --config ou -c . Estamos empolgados em introduzir suporte para arquivos prompts com o sinalizador --prompt na versão 1.7.1 ! Esse recurso permite que você forneça um contexto rico e detalhado para suas conversas diretamente de um arquivo.
--prompt O sinalizador --prompt permite especificar um arquivo que contenha o contexto inicial ou instruções para sua conversa ChatGPT. Isso é especialmente útil quando você tem instruções ou contexto detalhados que deseja reutilizar em diferentes conversas.
Para usar a bandeira --prompt , passe no caminho do seu arquivo prompt como este:
chatgpt --prompt path/to/your/prompt.md " Use a pipe or provide a query here " O conteúdo do prompt.md será lido e usado como contexto inicial para a conversa, enquanto a consulta que você fornece diretamente servirá como a pergunta ou tarefa específica que você deseja abordar.
Aqui está um exemplo divertido em que você pode usar a saída de um comando git diff como um prompt:
git diff | chatgpt --prompt ../prompts/write_pull-request.md Neste exemplo, o conteúdo do arquivo prompt write_pull-request.md é usado para orientar a resposta do modelo com base nos dados diff do git diff .
Para uma variedade de avisos prontos para uso, consulte este incrível repositório de avisos. Isso pode servir como ótimos pontos de partida ou inspiração para seus próprios prompts personalizados!
Você pode instalar o ChatGPT-cli usando o HomeBrew:
brew tap kardolus/chatgpt-cli && brew install chatgpt-cliPara uma instalação rápida e fácil sem compilar, você pode baixar diretamente o binário pré-criado para o seu sistema operacional e arquitetura:
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/Faça o download do binário deste link e adicione -o ao seu caminho.
Escolha o comando apropriado para o seu sistema, que baixará o binário, o fará executável e mova -o para o seu diretório/usr/local/bin (ou % de caminho no Windows) para facilitar o acesso.
Defina a variável de ambiente OPENAI_API_KEY para sua tecla Secret ChatGPT. Para definir a variável de ambiente, você pode adicionar a seguinte linha ao seu perfil de shell (por exemplo, ~/.bashrc, ~/.zshrc ou ~/.bash_profile), substituindo seu_api_key pela sua chave real:
export OPENAI_API_KEY= " your_api_key "Para ativar o rastreamento da história nas chamadas da CLI, crie um diretório ~/.chatgpt-cli usando o comando:
mkdir -p ~ /.chatgpt-cliDepois que este diretório estiver em vigor, a CLI gerencia automaticamente o histórico de mensagens para cada "thread" com quem você conversam. A história opera como uma janela deslizante, mantendo o contexto até um máximo de token configurável. Isso garante um equilíbrio entre manter o contexto da conversa e alcançar o desempenho ideal.
Por padrão, se um encadeamento específico não for fornecido pelo usuário, a CLI usa o encadeamento padrão e armazena o histórico em ~/.chatgpt-cli/history/default.json . Você pode encontrar mais detalhes sobre como configurar o parâmetro thread na seção de configuração deste documento.
Experimente:
chatgpt what is the capital of the Netherlands Para iniciar o modo interativo, use o sinalizador -i ou --interactive :
chatgpt --interactive Se você deseja que a CLI crie automaticamente um novo thread para cada sessão, verifique se a variável de configuração auto_create_new_thread está definida como true . Isso criará um identificador de encadeamento exclusivo para cada sessão interativa.
Para usar o recurso Pipe, crie um arquivo de texto contendo algum contexto. Por exemplo, crie um arquivo chamado context.txt com o seguinte conteúdo:
Kya is a playful dog who loves swimming and playing fetch.Em seguida, use o recurso Pipe para fornecer esse contexto para ChatGPT:
cat context.txt | chatgpt " What kind of toy would Kya enjoy? "Para listar todos os modelos disponíveis, use o sinalizador -l ou - -lista -modelos:
chatgpt --list-modelsPara mais opções, consulte:
chatgpt --helpA CLI do ChatGPT adota uma estratégia de configuração de quatro camadas, com diferentes níveis de precedência atribuídos a sinalizadores, variáveis de ambiente, um arquivo config.yaml e valores padrão, nessa respectiva ordem:
| Variável | Descrição | Padrão |
|---|---|---|
name | O prefixo para substituições de variáveis de ambiente. | 'OpenAi' |
thread | O nome do tópico de bate -papo atual. Cada nome de thread exclusivo tem seu próprio contexto. | 'padrão' |
omit_history | Se for verdade, o histórico de bate -papo não será usado para fornecer contexto para o modelo GPT. | falso |
command_prompt | O prompt de comando no modo interativo. Deve ser de citação única. | '[%DateTime] [q%contador]' |
output_prompt | O prompt de saída no modo interativo. Deve ser de citação única. | '' |
auto_create_new_thread | Se definido como true , um novo thread com um identificador exclusivo (por exemplo, int_a1b2 ) será criado para cada sessão interativa. Se false , a CLI usará o encadeamento especificado pelo parâmetro thread . | false |
track_token_usage | Se definido como true, exibe o uso total do token após cada consulta no modo -QUERY, ajudando você a monitorar o uso da API. | false |
debug | Se definido como true, imprime os dados de solicitação e resposta brutos durante as chamadas da API, úteis para depuração. | false |
skip_tls_verify | Se definido como true, ignora a verificação do certificado TLS, permitindo solicitações HTTPS inseguras. | false |
multiline | Se definido como true, ativa o modo de entrada multilina em sessões interativas. | false |
| Variável | Descrição | Padrão |
|---|---|---|
api_key | Sua chave da API. | (Nenhum para segurança) |
model | O modelo GPT usado pelo aplicativo. | 'GPT-3.5-Turbo' |
max_tokens | O número máximo de tokens que podem ser usados em uma única chamada de API. | 4096 |
context_window | O limite de memória para quanto da conversa pode ser lembrado ao mesmo tempo. | 8192 |
role | A função do sistema | "Você é um assistente útil." |
temperature | Que temperatura de amostragem para usar, entre 0 e 2. Valores mais altos tornam a saída mais aleatória; Os valores mais baixos o tornam mais focado e determinístico. | 1.0 |
frequency_penalty | Número entre -2,0 e 2,0. Os valores positivos penalizam novos tokens com base em sua frequência existente no texto até agora. | 0,0 |
top_p | Uma alternativa à amostragem com temperatura, chamada de amostragem de núcleo, onde o modelo considera os resultados dos tokens com a massa de probabilidade TOP_P. | 1.0 |
presence_penalty | Número entre -2,0 e 2,0. Os valores positivos penalizam novos tokens com base se aparecem no texto até agora. | 0,0 |
seed | Define a semente para amostragem determinística (beta). Solicitações repetidas com a mesma semente e parâmetros pretendem retornar o mesmo resultado. | 0 |
url | O URL base para a API Openai. | 'https://api.openai.com' |
completions_path | O terminal da API para conclusões. | '/v1/bate -papo/conclusões' |
models_path | O terminal da API para acessar informações do modelo. | '/v1/modelos' |
auth_header | O cabeçalho usado para autorização em solicitações de API. | 'Autorização' |
auth_token_prefix | O prefixo a ser adicionado antes do token no auth_header . | 'Portador' |
Por padrão, o ChatGPT CLI armazena arquivos de configuração e histórico no diretório ~/.chatgpt-cli . No entanto, você pode substituir facilmente esses locais definindo variáveis de ambiente, permitindo armazenar configuração e histórico em diretórios personalizados.
| Variável de ambiente | Descrição | Localização padrão |
|---|---|---|
OPENAI_CONFIG_HOME | Substitui o caminho do diretório de configuração padrão. | ~/.chatgpt-cli |
OPENAI_DATA_HOME | Substitui o caminho padrão do diretório de dados. | ~/.chatgpt-cli/history |
Para alterar os diretórios de configuração ou dados padrão, defina as variáveis de ambiente apropriadas:
export OPENAI_CONFIG_HOME="/custom/config/path"
export OPENAI_DATA_HOME="/custom/data/path"
Se essas variáveis de ambiente não estiverem definidas, o aplicativo padrão como ~/.chatgpt-cli para arquivos de configuração e ~ /.chatgpt-cli/history for History.
%date : a data atual no formato YYYY-MM-DD .%time : o tempo atual no formato HH:MM:SS .%datetime : a data e a hora atuais no formato YYYY-MM-DD HH:MM:SS .%counter : o número total de consultas na sessão atual.%usage : o uso no total de tokens usados (funciona apenas no modo de consulta). Os padrões podem ser substituídos fornecendo seus próprios valores no arquivo de configuração do usuário. A estrutura deste arquivo reflete a da configuração padrão. Por exemplo, para substituir o model e os parâmetros max_tokens , seu arquivo pode ser assim:
model : gpt-3.5-turbo-16k
max_tokens : 4096 Isso altera o model para gpt-3.5-turbo-16k e ajusta max_tokens para 4096 . Todas as outras opções, como url , completions_path e models_path , podem ser modificadas da mesma forma. Se o arquivo de configuração do usuário não puder ser acessado ou estiver ausente, o aplicativo recorrerá à configuração padrão.
Outra maneira de ajustar os valores sem editar manualmente o arquivo de configuração é usando variáveis de ambiente. O atributo name forma o prefixo para essas variáveis. Como exemplo, o model pode ser modificado usando a variável de ambiente OPENAI_MODEL . Da mesma forma, para desativar a história durante a execução de um comando, use:
OPENAI_OMIT_HISTORY=true chatgpt what is the capital of Denmark ?Essa abordagem é especialmente benéfica para mudanças temporárias ou para testar configurações variadas.
Além disso, você pode usar o sinalizador --config ou -c para visualizar a configuração atual. Esse recurso útil permite que os usuários verifiquem rapidamente suas configurações atuais sem a necessidade de inspecionar manualmente os arquivos de configuração.
chatgpt --configA execução deste comando exibirá a configuração ativa, incluindo as substituições instituídas por variáveis de ambiente ou o arquivo de configuração do usuário.
Para facilitar ajustes convenientes, a CLI do ChatGPT fornece sinalizadores para modificar rapidamente os parâmetros do model , thread , context-window e max_tokens em seu usuário configurado configurado config.yaml . Essas bandeiras são --set-model , --set-thread , --set-context-window e --set-max-tokens .
Por exemplo, para atualizar o modelo, use o seguinte comando:
chatgpt --set-model gpt-3.5-turbo-16kEsse recurso permite alterações rápidas nos parâmetros de configuração -chave, otimizando sua experiência com a CLI do CHATGPT.
Para o Azure, use uma configuração semelhante 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 : falseVocê pode definir a chave da API no arquivo config.yaml, como mostrado acima ou exportá -lo como uma variável de ambiente:
export AZURE_API_KEY= < your_key >Para perplexidade, use uma configuração semelhante 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 : falseVocê pode definir a chave da API no arquivo config.yaml, como mostrado acima ou exportá -lo como uma variável de ambiente:
export PERPLEXITY_API_KEY= < your_key > Você pode definir a chave da API no arquivo config.yaml , como mostrado acima ou exportá -lo como uma variável de ambiente:
export AZURE_API_KEY= < your_key >Aprimore sua experiência de CLI com nosso novo recurso de conclusão automática para sinalizadores de comando!
Atualmente, a conclusão automática é suportada para as seguintes conchas: Bash, Zsh, Fish e PowerShell. Para ativar a conclusão do sinalizador em sua sessão atual, execute o comando apropriado com base no seu shell:
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression Para maior conveniência, você pode persistir com conclusão automática em todas as novas sessões do shell, adicionando o comando de fornecimento apropriado ao arquivo de inicialização do seu shell. Aqui estão os arquivos normalmente usados para cada shell:
.bashrc ou .bash_profile.zshrcconfig.fish Por exemplo, para Bash, você adicionaria a seguinte linha ao seu arquivo .bashrc :
. <( chatgpt --set-completions bash )Isso garante que o sinalizador de comando concepção automaticamente seja ativado automaticamente toda vez que você abrir uma nova janela de terminal.
Você pode renderizar o Markdown em tempo real usando o script mdrender.sh , localizado aqui. Você primeiro precisará instalar o brilho.
Exemplo:
chatgpt write a hello world program in Java | ./scripts/mdrender.sh Para começar a desenvolver, defina a variável de ambiente OPENAI_API_KEY para sua chave secreta ChatGPT.
O Makefile simplifica as tarefas de desenvolvimento, fornecendo vários alvos para testes, construir e implantação.
make all-testsmake binariesmake shipitmake updatedepsPara mais comandos disponíveis, use:
make help .scriptsinstall.ps1Após uma compilação bem -sucedida, teste o aplicativo com o seguinte comando:
./bin/chatgpt what type of dog is a Jack Russel ?Como mencionado anteriormente, a CLI do ChatGPT suporta rastrear o histórico de conversas nas chamadas da CLI. Esse recurso cria uma experiência perfeita e conversacional com o modelo GPT, pois a história é utilizada como contexto nas interações subsequentes.
Para ativar esse recurso, você precisa criar um diretório ~/.chatgpt-cli usando o comando:
mkdir -p ~ /.chatgpt-cliSe você encontrar algum problema ou ter sugestões de melhorias, envie um problema no GitHub. Agradecemos seus comentários e contribuições para ajudar a melhorar este projeto.
Se, por qualquer motivo, você deseja desinstalar o aplicativo CLI do ChatGPT do seu sistema, você pode fazê -lo seguindo estas etapas:
Se você instalou a CLI usando o homebrew, pode fazer:
brew uninstall chatgpt-cliE para remover a torneira:
brew untap kardolus/chatgpt-cliSe você instalou o binário diretamente, siga estas etapas:
Remova o binário:
sudo rm /usr/local/bin/chatgpt Opcionalmente, se você deseja remover o diretório de rastreamento do histórico, também pode excluir o diretório ~/.chatgpt-cli :
rm -rf ~ /.chatgpt-cli Navegue até a localização do binário chatgpt em seu sistema, que deve estar no seu caminho.
Exclua o binário chatgpt .
Opcionalmente, se você deseja remover o rastreamento do histórico, navegue até o diretório ~/.chatgpt-cli (onde ~ refere-se ao diretório inicial do seu usuário) e exclua-o.
Observe que o diretório de rastreamento de histórico ~/.chatgpt-cli contém apenas histórico de conversas e dados pessoais. Se você tiver alguma preocupação com isso, sinta -se à vontade para excluir este diretório durante a desinstalação.
Obrigado por usar o chatgpt cli!