Generate auto-completion for any CLI via ChatGPT.
MIT License
Complish是一款用于为任何类型的CLI生成补全文件的工具,现在支持 zsh 和 fish 。
该工具使用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]
生成名为mycmd
的CLI的fish补全文件
complish mycmd --shell fish
当脚本执行完毕时,你会发现当前目录中存在mycmd.fish
文件。
注意,执行速度受ChatGPT的响应时间限制,因此生成补全文件可能需要10秒到1分钟或更长时间。
将fish脚本复制到fish shell的补全目录中,即可自动加载文件。其他可用的fish补全目录可以在这里找到
cp ./croc.fish ~/.config/fish/completions/
重新打开终端后,当您按下<TAB>时,您会发现补全已经生效!
生成名为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! 请给我您的建议或其他反馈!😊