Home

Awesome

<div align="center"> <div> <img src=".github/icon.png" alt="GPTCLI" width="200"/> <h1 align="center">GPT CLI</h1> <a href="https://www.producthunt.com/posts/gptcli?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-gptcli" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=386821&theme=light" alt="gptcli - All&#0032;in&#0032;one&#0032;ChatGPT&#0032;CLI&#0032;for&#0032;AI&#0032;Commit&#0044;&#0032;AI&#0032;Command&#0044;&#0032;etc | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a> </div> <p>All in one ChatGPT CLI, build your own AI cli tools just like GitHub Actions workflow</p> <p>With GPT CLI, you can customize your CLI tools to suit your needs and make your work more efficient.</p> <p>Convert NATURAL LANGUAGE PROCESSING (NLP) to into structured data. </p> <p>gptcli 内置 AI commmit(自动生成 commit message)、AI Command(自然语言转命令行)、翻译、gitmoji 等插件。秒级创建任意自定义 ChatGPT CLI 工具,就像创建一个 GitHub Actions 这么简单,让 AI 帮助我们链接自然语言和结构化数据。</p> <a href="https://www.npmjs.com/package/@johannlai/gptcli"><img src="https://img.shields.io/npm/v/@johannlai/gptcli" alt="Current version"></a> <a href="https://www.npmjs.com/package/@johannlai/gptcli"> <img src="https://img.shields.io/npm/dw/@johannlai/gptcli"> </a> <a href="https://github.com/semantic-release/semantic-release"> <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="semantic-release"> </a> <a href="https://github.com/JohannLai/gptcli/actions/workflows/npm-publish.yml"><img src="https://github.com/JohannLai/gptcli/actions/workflows/npm-publish.yml/badge.svg" alt="npm-publish"></a> <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs welcome"> </div>

GPT CLI is a command-line interface tool that allows you to create your own ChatGPT CLI tools in seconds. It's as simple as creating a GitHub Actions workflow. With GPT CLI, you can customize your CLI tools to suit your needs and make your work more efficient.

Note: ALL the commit message is wrote by this plugin, awesome!

<img src=".github/commit.gif" alt="commit-plugins" style="border-radius: 20px">

🚀 Features

🔧 Installation

You can install GPT CLI using npm or brew:

npm

To run this CLI tool, you need to have **Node.js version 16+ **, recommended to use nvm to manage node version.

npm install -g @johannlai/gptcli

brew(WIP)

brew install johannlai/tap/gptcli

Setup alias convenience commands

These will add the commands to your shell, but only for the current session. To make them available in all future sessions, you should add the above command on a line by itself to the bottom of your .zshrc or .bashrc or equivalent.

eval "$(gptcli alias)"

NOW, you can use ?? to start AI Command

$ ?? "show all js files in the current folder"
> AI is thinking...
# then you will see the result
> ls -al | grep .js

# chat?
$ chat?
👽: Hi, I am ChatGpt, I can answer your questions. Ask me anything, or say "bye" to exit.
? 🫣 how git diff --cached add EXCLUDE

# translate : t? "hello world"
$ t? "hello world"
> 你好,世界

# for more plugins, please check the plugins section

🧰 Built-in Plugins

GPT CLI comes with a variety of built-in plugins to help you get started. Here's a table of the current built-in plugins:

PluginDescriptionUsage
chatThe chat plugin enables real-time interaction with the ChatGPT model directly in the terminal, allowing users to chat and get answers quickly and efficiently.gptcli chat <br/>(alias chat?)
commandThe command plugin allows users to describe their desired command in natural language, and then outputs the corresponding plugin to fulfill the user's request. For example, if the user inputs "show all js files in the current folder", the plugin will output the corresponding plugin to display all the .js files in the current folder. This plugin makes it easier for users to find and utilize the appropriate plugins for their needs.gptcli command "write a command to list all js file" <br/>(alias ??)
translateThe translate plugin allows users to easily translate text within the terminal. By using this plugin, users can input any text they want to translate, choose their desired target language, and the plugin will output the translated text in the terminal. This plugin makes it more convenient for users to translate text without having to switch to a separate application or window.gptcli translate "你好" --to en <br/>(alias t?)
commitThe commit plugin allows users to generate a Git commit message automatically by simply entering gptcli commit in the terminal. The plugin will use the content from the Git diff to create a suitable commit message, making it easier for users to commit changes without having to manually craft a commit message themselves. This plugin helps streamline the Git commit process and saves users time and effort. All the commit message is wrote by this plugin, awesome!! Inspired By aicommitgptcli commit <br/>(alias commit?)
gitmojiThe gitmoji plugin allows users to generate Git commit messages in the gitmoji format by using the command "gptcli gitmoji" followed by a brief description of the commit, such as "fix a bug". This plugin utilizes emojis to provide visual representations of the type of commit being made(e.g: 🐛 fix a bug), making it easier for users to categorize and understand the purpose of each commit. 🎉🚀👍gptcli gitmoji "fix a bug"
czthe cz plugin is the cz-cli plugin for ChatGPT. You can input the commit message, and cz plugin help you transform it into cz style(fix: fix a bug)gptcli cz "fix a bug"
weatherThe weather plugin allows users to check the weather in any city with Natural language, it will generate a curl command to curl wttr.in , and show the weather information in the terminalgptcli weather "Hongkong weather"
notion[WIP]gptcli notion create xxx
whisper[WIP]The whisper plugin will run whisper in local machinegptcli whisper "input.mp4"

Help of built-in plugins

You can get help for each plugin by running the following command:

# chat plugin
gptcli chat help

# command plugin
gptcli command help

# and so on

List of built-in plugins

gptcli list

🛠️ Configuration

User configuration

🎉 Now! feel free to use MY OWN ChatGPT API KEY, but it's not recommended, because it's not stable, you can use your own API KEY, just follow the steps below:

gptcli config user.OPENAI_API_KEY sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

You can get your own API KEY from OpenAI

To configure the plugin

Some plugins require additional configuration to work properly. For example, the commit plugin requires a commit style to be specified. To configure the plugin, you can use the gptcli config command. For example, to configure the commit plugin to use the cz commit style, you can run the following command:

# cz style: fix: fix a bug
gptcli config commit.style cz

or gitmoji style:

# gitmoji style: 🐛 fix a bug
gptcli config commit.style gitmoji

👥 Community plugins

Coming soon...

Will be displayed in the website :)

For now, you can share your plugin with the community by submitting a pull request to add it to the list of community plugins. thanks! 👍

🎨 Customization, Build your own plugin in seconds

To create your own CLI plugin, you can fork this template repository and customize it to suit your needs. You can test your plugin locally and then install it globally using gptcli. For more information on how to create your own plugin, please refer to the template repository.

Don't forget to share your plugin with the community by submitting a pull request to add it to the list of community plugins.

It's easy to build your own plugin, just one YAML file

name: joke
description: "joke plugin for gpt cli"
repository: "johannlai/joke"
author: "johannlai"
help: |
  joke plugin for gpt cli
  Usage:
    ❯ gpt joke
    ❯ "Why did the tomato turn red? Because it saw the salad dressing!"
steps:
  - name: "ask ai to output joke"
    # use the gpt:createChatCompletion action to create a chat completion
    uses: "gpt:createChatCompletion"
    with:
      messages:
        - role: "user"
          content: "tell me a joke"
    export:
      # export the response content to the JOKE environment variable
      response_content: JOKE
  - name: "output response"
    # output the JOKE environment variable
    script: |
      echo $JOKE

For more information, please refer to the template repository

📜 License

GPT CLI is licensed under the MIT License. See the LICENSE file for more information.

📋 Other Information

For more information on how to use GPT CLI, please refer to the official website.

Issues

Ask questions, report bugs, and request features on the GitHub issues page


💻 Build by GitHub & ChatGPT with ❤️