Skip to content

Latest commit

 

History

History
116 lines (73 loc) · 2.72 KB

README-zh.md

File metadata and controls

116 lines (73 loc) · 2.72 KB

complish

license release

English | 简体中文

使用ChatGPT自动生成CLI的自动补全文件

Complish是一款用于为任何类型的CLI生成补全文件的工具,现在支持 zshfish

该工具使用chatGPT API解析CLI的帮助页面(执行cmd --help时打印出来的文本)并输出关于帮助页面的结构化信息。然后为特定的shell(如zsh或fish)生成补全脚本。

安装

npm i -g complish

需要OpenAI的API密钥,你可以通过设置环境变量或使用下面这条命令来设置密钥:

export OPENAI_API_KEY=your_openai_api_key

或者

complish set-key your_openai_api_key

如果没有密钥,你可以在OpenAI申请一个,并记得保密!

使用

complish [options] [cmd]

在fish中的实例

生成名为mycmd的CLI的fish补全文件

complish mycmd --shell fish

当脚本执行完毕时,你会发现当前目录中存在mycmd.fish文件。

注意,执行速度受ChatGPT的响应时间限制,因此生成补全文件可能需要10秒到1分钟或更长时间。

将fish脚本复制到fish shell的补全目录中,即可自动加载文件。其他可用的fish补全目录可以在这里找到

cp ./croc.fish ~/.config/fish/completions/

重新打开终端后,当您按下<TAB>时,您会发现补全已经生效!

在zsh中的实例

生成名为mycmd的CLI的zsh补全文件。

complish mycmd --shell zsh

当脚本执行完成时,你会在当前目录发现一个名为_mycmd的zsh-completion格式的文件。然后将zsh补全文件复制到环境变量$fpath中的目录中。你可以在zsh中运行echo $fpath查看所有有效的目录。

cp ./_mycmd /Users/you/.zsh/functions

重新打开终端后,当您按下<TAB>时,您会发现补全已经生效!

开发

克隆此存储库。

git clone https://github.com/werifu/complish.git

我使用pnpm来管理依赖项:

安装依赖项:

pnpm i

编译TypeScript代码并运行已编译的JavaScript:

pnpm build
./dist/index.js

或者你可以直接使用ts-node运行它:

pnpm dev

贡献

欢迎Pull requests / issues! 请给我您的建议或其他反馈!😊

TODO

  • 支持bash补全(规划中)
  • 减少API调用次数(此工具的瓶颈)
  • 更详细的参数补全