一个命令行的 Copilot:ai-shell

Github 之前发布了 GitHub Copilot CLI,有了它你可以在你的命令行控制台中通过自然语言让它帮你写出 shell 命令,完成你所描述的目的。也就不用再费脑细胞记住那么多命令和参数了。.

一个命令行的 Copilot:ai-shell

感兴趣的可以到 https://githubnext.com/projects/copilot-cli/ 去申请加入到 「waitlist」 ,然后看你是否可以不用等待太漫长的官方审批吧。反正,我是已经等了好久还都没拿到试用通知。

那我们是否可以通过其他方式来体验这个能力呢?答案当然是可以的,它就是今天我要给大家推荐的:ai-shell

简介

ai-shell 是一个将自然语言转换为 Shell 命令的 CLI,灵感就来自于前面提到的 GitHub Copilot CLI。它是由国外 Headless CMS 厂商 builder.io 的创始人 Steve Sewell 发起的一个 MIT 协议的开源项目。是基于 Node.js 用 typescript 开发的,截至本文发稿时它在 GitHub 上已经有 2.7k 的 Star 了。

一个命令行的 Copilot:ai-shell

安装

ai-shell 是基于 Node.js 开发的所以,需要依赖 Node.js 环境才能运行。目前支持的 Node.js 最低版本是 v14。

有了 Node.js 环境后,就可以使用下面的命令安装 ai-shell了:

npm install -g @builder.io/ai-shell

而 ai-shell 的 AI 能力来自于 OpenAI 的 API 接口,所以你需要有 OpenAI 的 API 密钥。(注意:如果您还没有创建 OpenAI 账号并设置计费方式,您需要先进行这些步骤)

你可以通过下面的命令为你的 ai-shell 设置密钥

ai config set OPENAI_KEY=<你的密钥>

【注】ai-shell 的所有配置均存储在当前用户根目录下的 .ai-shell 文件中,碰到极端情况你可以直接修改这里面的配置内容。

使用

ai <提示语>

例如:

ai 查找所有.log文件
一个命令行的 Copilot:ai-shell

特殊字符

某些 shell 会处理某些特殊字符,如 ? 或 * 或看起来像是文件路径的字符。如果您遇到一些奇怪的行为,可以将提示语用引号括起来以避免类似问题,例如下面的示例:

ai '我的 IP 地址是什么?'

静默模式(跳过解释)

您可以使用 -s 或 --silent 标志来禁用和跳过解释部分。

ai -s 列出所有日志文件

或者使用以下命令将静默模式保存为首选项:

ai config set SILENT_MODE=true

自定义 API 端点

ai-shell 默认使用的是 OpenAI 官方的 API 端点(默认值为 https://api.openai.com/v1

如果您有自己的 OpenAI API 代理端点,那么您可以通过设置 OPENAI_API_ENDPOINT 来修改这个设置

ai config set OPENAI_API_ENDPOINT=<您的代理端点>

聊天模式

通过下面的命令,可以进入聊天模式(相当于命令行版的 ChatGPT):

ai chat
一个命令行的 Copilot:ai-shell

设置语言

今年的五一假期第一天,我就给 ai-shell 提交了一个支持多语言的 PR,其中我连带提交了除了英文外的12种语言的语言包。现在这个 PR 已经合并进了主分支,所以自 0.1.20 版开始,ai-shell 默认语言为英文,但是你可以自己修改为简体中文或者其他语言.

例如你可以通过以下命令将 ai-shell 默认语言设置为简体中文:

ai config set LANGUAGE=zh-Hans

您可以参考下列语言对应的键,来设置您需要的语言界面:

语言 键值
English(英语) en
简体中文 zh-Hans
繁体中文 zh-Hant
Español(西班牙语) es
日本語(日语) jp
한국어 (韩国语) ko
Français(法语) fr
Deutsch(德语) de
Русский(俄语) ru
Українська(乌克兰语) uk
Tiếng Việt(越南语) vi
العربية(阿拉伯语) ar
Português(葡萄牙语) pt

配置界面

如果要使用更可视化的界面查看和设置配置选项,可以键入:

ai config

您将看到如下所示的交互式 UI:

一个命令行的 Copilot:ai-shell

版本升级

使用以下命令检查已安装的版本:

ai --version

如果它不是最新版本,请运行:

npm update -g @builder.io/ai-shell

或者直接使用 AI shell 的子命令:

ai update