大家好,我是萌新程序员豆小匠。
为terminal(终端)增加自定义命令这个想法从开始学编程的时候就有了,但是一直没有付诸行动。
这次,终于抽时间完成了,且代码开源!
实现的功能
先说下实现的功能,目前只实现了几个简单的基础命令:
查看帮助信息:bot -h
查看版本:bot -v
关机:bot -shutdown
接入ChatGPT:bot -c "your question"
bot -shutdown
这个命令就不尝试啦~
重点介绍下接入ChatGPT的操作:
这里其实就是用了ChatGPT的接口,通过SSE(Server-Sent Events,服务器推送事件),不断往terminal上打印返回的文字,视频效果如下:
【终端增强工具】这次,我把Terminal也接入了ChatGPT…
简单使用
- 准备好golang环境
- 下载&运行项目
git clone https://github.com/anjude/terminalx.git
cd terminalx
go mod tidy
go build -o bot.exe main.go
- 把生成bot.exe(mac、linux没有.exe扩展名)文件的目录放到环境变量下
- 修改config.yaml文件,需要设置自己的api-key,按需设置代理端口,然后放到
~/.terminal/config.yaml
(~
是用户目录,如C:\Users\aboy0
) - 在终端运行
bot -h
查看帮助
开发拓展
- 在handler目录新增一个自定义目录,可以参考version目录和version_handler.go文件
- 新增的handler实现base.IHandler接口
- 在handler/option_map.go文件定义命令和handler的关联
- 重新编译文件(
go build -o bot.exe main.go
)即可
type IHandler interface {// GetCommand 获取handler的命令GetCommand() (command string)// GetDesc 获取该命令的详情GetDesc() (desc string)// GetArgs 获取该命令需要的参数GetArgs(args []string) (curArgs []string, nextArgs []string)// Handle 该命令的具体执行逻辑Handle(args []string)
}
传送门:GitHub地址
觉得有意思别忘了点个赞哦~