一个将自然语言转换为Shell命令的CLI
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/BuilderIO/ai-shell
受GitHub Copilot X CLI启发,但面向所有人的开源项目

AI Shell
安装
Node.js 的最低支持版本是v14
- 安装 ai shell:
shellCopy code
npm install -g @builder.io/ai-shell
- 从OpenAI获取你的API密钥
注意:如果你还没有账户,需要先创建账户并设置计费。
- 设置API密钥以便 ai-shell 可以使用:
shellCopy code
ai config set OPENAI_KEY=<your token>
这会在你的主目录下创建一个 .ai-shell 文件。
使用
shellCopy code
ai <prompt>
例如:
shellCopy code
ai list all log files
然后你会得到如下输出,你可以选择运行建议的命令、通过提示修改命令或者取消:
shellCopy code◇ Your script:
│
│ find . -name "*.log"
│
◇ Explanation:
│
│ 1. 在当前目录和任何子目录中搜索所有扩展名为 ".log" 的文件。
│
◆ Run this script?
│ ● ✅ Yes (Lets go!)
│ ○ 📝 Revise
│ ○ ❌ Cancel
└
特殊字符
注意,某些Shell会特别处理某些字符,如 ? 或 * 或类似文件路径的内容。如果你遇到奇怪的行为,可以将提示用引号括起来以避免问题,如下所示:
shellCopy code
ai 'what is my ip address'
聊天模式

shellCopy code
ai chat
使用这种模式,你可以在CLI中直接与AI进行对话,并以自然、对话式的方式获得有用的回复:
shellCopy code┌ Starting new conversation
│
◇ You:
│ how do I serve a redirect in express
│
◇ AI Shell:
在 Express 中,你可以使用 `redirect()` 方法来服务重定向。`redirect()` 方法接受一个参数,即你想要重定向到的URL。
下面是一个例子:
\`\`\`js
app.get('/oldurl', (req, res) => {
res.redirect('/newurl');
});
\`\`\`
静默模式(跳过解释)
你可以使用标志 -s 或 --silent 来禁用并跳过解释部分:
shellCopy code
ai -s list all log files
或使用以下命令将该选项保存为首选项:
shellCopy code
ai config set SILENT_MODE=true
自定义API端点
你可以自定义 OpenAI API 端点,以设置 OPENAI_API_ENDPOINT(默认为 https://api.openai.com/v1)
shellCopy code
ai config set OPENAI_API_ENDPOINT=<your proxy endpoint>
配置UI
如果你想使用更直观的界面来查看和设置配置选项,可以键入:
shellCopy code
ai config
以获得如下交互式UI:
shellCopy code◆ Set config:
│ ○ OpenAI Key
│ ○ OpenAI API Endpoint
│ ○ Silent Mode
│ ● Model (gpt-3.5-turbo)
│ ○ Cancel
└
升级
使用以下命令检查已安装的版本:
shellCopy code
ai --version
如果它不是最新版本,运行以下命令:
shellCopy code
npm update -g @builder.io/ai-shell
或者只需使用 AI shell:
shellCopy code
ai update
常见问题
429错误
一些用户报告收到了来自 OpenAI 的 429 错误。这是由于错误的计费设置或超额的配额使用。请按照此指南进行修复。
你可以在此链接激活计费。如果没有处于 OpenAI 的活动补助计划下,请确保添加一个付款方式。
动机
我不是一个 bash 魔术师,也很渴望使用 copilot CLI,而且很不耐烦。
贡献
如果你想在 Issues 中修复错误或实现功能(提示:查看 help wanted 标签),请查看 贡献指南 以了解如何设置项目。
鸣谢
- 感谢 GitHub Copilot 提供了这个惊人的工具和这个想法。
- 感谢 Hassan 及其在 aicommits 上的工作,它启发了工作流程和代码和流程的某些部分。
社区
来加入 Builder.io 的 Discord 并在 #ai-shell 房间与我们聊天吧。
