Skip to content

hurricanetx/ai-bash-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI-Bash-Shell (ais)

Version License Bash OpenAI

项目概述

AI-Bash-Shell (ais) 是一个革命性的智能命令行工具,能将自然语言描述转换为可执行的 Linux 命令。基于 OpenAI API,它通过 AI 理解用户意图并生成相应的 shell 命令,极大降低命令行使用门槛,让每个人都能轻松使用强大的 Linux 命令行工具。

快速开始

只需三步即可开始使用 AI-Bash-Shell:

# 1. 下载并安装
wget -q -O /usr/local/bin/ais https://raw.githubusercontent.com/hurricanetx/ai-bash-shell/main/ais_v1_3 && sudo chmod +x /usr/local/bin/ais

# 2. 配置 API 密钥
ais setkey sk-your-openai-api-key

# 3. 开始使用
ais "列出当前目录的文件"

核心特性

  • 自然语言转换:用中文描述操作,自动生成对应命令
  • 智能建议系统:提供多个可选命令方案
  • 配置持久化:支持自定义 API 参数并保存配置
  • 调试支持:可显示请求/响应数据用于问题排查
  • 系统感知:自动获取当前系统环境信息优化命令生成
  • 多版本自选:包含 v1.0 到 v1.3 的完整版本演进
  • 跨平台兼容:支持 Darwin/Linux/Unix 系统
  • 安全执行:生成命令前提供用户确认机制

前置条件

系统要求

  • Darwin/Linux/Unix 系统(支持 /etc/os-release
  • Bash shell 环境

必需依赖

# 安装基础工具
brew install curl jq          # Darwin/MacOS
sudo apt-get install curl jq  # Debian/Ubuntu
sudo yum install curl jq      # CentOS/RHEL

账号要求

  • OpenAI API 密钥(或其他兼容 OpenAI 协议的第三方)
  • 本地 Ollama 模型(可选,用于离线模式)

使用预览

AI-Bash-Shell Screen1 AI-Bash-Shell Screen2
AI-Bash-Shell Screen3 AI-Bash-Shell Screen4

运行方法

1. 快速安装

# 方式一:系统级安装
sudo wget -q -O /usr/local/bin/ais https://raw.githubusercontent.com/hurricanetx/ai-bash-shell/main/ais_v1_3 && sudo chmod +x /usr/local/bin/ais

# 方式二:用户级安装
mkdir -p ~/bin && wget -q -O ~/bin/ais https://raw.githubusercontent.com/hurricanetx/ai-bash-shell/main/ais_v1_3 && chmod +x ~/bin/ais
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

2. 初始配置

# 设置 API 地址(默认 OpenAI)
ais seturl https://api.openai.com/v1/chat/completions

# 设置 API 密钥
ais setkey sk-xxxxxxxxxxxxxxxxxxxxxxxx

# 设置模型(可选)
ais setmodel gpt-4o-mini

# 查看当前配置
ais config

3. 基本使用

# 获得帮助
ais -h

# 简单命令
ais "列出当前目录文件"

# 复杂操作
ais "访问百度搜索关于'智谱'的最新消息,提取所有链接url按行保存在1.txt中"

# 调试模式
ais -sd "查询占用3000的服务列表并自动关闭这些进程"    # 显示请求数据
ais -sr "检查系统磁盘使用情况"                     # 显示响应数据

构建方法

本项目为单文件脚本,无需传统构建流程:

开发环境设置

# 克隆仓库
git clone https://github.com/hurricanetx/ai-bash-shell.git
cd ai-bash-shell

# 直接测试脚本
chmod +x ais_v1_3
./ais_v1_3 "测试命令"

自定义修改

  1. 编辑 ais_v1_3 文件
  2. 修改以下关键参数:
    DEFAULT_URL="https://your-api-endpoint"
    DEFAULT_MODEL="your-model-name"
    DEFAULT_MAX_TOKENS=1000
  3. 测试修改后的脚本

配置说明

所有配置保存在 ~/.config/ais_config 文件中:

参数 说明 默认值
URL API 接口地址 OpenAI 默认地址
API_KEY 认证密钥
MODEL 使用的模型 gpt-4o-mini
MAX_TOKENS 最大响应长度 1000
TEMPERATURE 生成随机性 (0-1) 0.7
SHOW_DATA 是否显示请求数据 false
SHOW_RESPONSE 是否显示响应数据 false

使用技巧

  1. 多命令组合:用自然语言描述连续操作,如"创建文件并写入内容"
  2. 系统信息利用:脚本会自动收集当前目录、系统版本等信息优化命令生成
  3. 安全执行:生成命令后会提示用户确认再执行
  4. 错误处理:自动检测 API 响应状态码和 JSON 格式有效性

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

注意事项

  • 首次运行会提示输入必要配置(API 地址、密钥等)
  • 生成的命令会在执行前显示供用户确认
  • 网络请求失败时会显示详细错误信息
  • 建议先使用 -sd/-sr 参数调试复杂命令

版本历史

v1.3.0 (当前版本)

  • 新增显示请求/响应数据功能 (-sd, -sr 参数)
  • 优化 JSON 解析逻辑
  • 改进错误处理机制
  • 支持多命令组合执行
  • 增强系统信息收集功能

v1.2.0

  • 改进配置管理
  • 优化错误处理
  • 增强系统兼容性

v1.1.0

  • 引入配置持久化功能
  • 改进用户体验
  • 增加更多系统信息收集

v1.0.0

  • 初始版本发布
  • 基础自然语言到命令转换功能
  • OpenAI API 集成

项目结构

AI-Bash-Shell/
├── README.md              # 项目说明文档
├── LICENSE                # MIT 许可证
├── ais_v1_0              # 版本 1.0 脚本
├── ais_v1_1              # 版本 1.1 脚本
├── ais_v1_2              # 版本 1.2 脚本
├── ais_v1_3              # 版本 1.3 脚本 (当前版本)
└── assets/               # 资源目录 (预留)

技术实现

核心技术栈

  • Bash Shell: 主要脚本语言
  • curl: HTTP 请求处理
  • jq: JSON 数据解析
  • OpenAI API: AI 能力提供

系统信息收集

  • 当前工作目录
  • 系统版本信息
  • 用户权限信息
  • 网络连接状态

安全机制

  • 命令执行前用户确认
  • 配置文件加密存储
  • API 密钥安全保护
  • 网络请求超时控制

贡献指南

我们欢迎各种形式的贡献:

报告问题

  • 使用 GitHub Issues 提交 bug 报告
  • 提供详细的复现步骤
  • 包含系统环境信息

功能建议

  • 在 Issues 中提出新功能建议
  • 详细描述使用场景
  • 讨论实现方案

代码贡献

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

代码规范

  • 遵循现有代码风格
  • 添加必要的注释
  • 确保向后兼容性
  • 包含测试用例

常见问题

Q: 如何切换到不同版本?

A: 直接运行对应版本的脚本文件,例如:

./ais_v1_2 "测试命令"

Q: 配置文件在哪里?

A: 配置文件位于 ~/.config/ais_config,可以手动编辑或使用命令行工具配置。

Q: 支持哪些 AI 模型?

A: 支持所有兼容 OpenAI API 格式的模型,包括:

  • OpenAI 官方模型 (GPT-3.5, GPT-4, GPT-4o-mini 等)
  • 本地 Ollama 模型
  • 第三方兼容服务

Q: 如何调试网络问题?

A: 使用 -sd 参数显示请求数据,-sr 参数显示响应数据:

ais -sd "测试命令"    # 显示发送给API的数据
ais -sr "测试命令"    # 显示API返回的响应

已知问题

JSON 解析异常

$ ais "查询占用3000的服务列表并自动关闭这些进程"
Error: Invalid JSON response from API
Raw response:
[{"suggests":[{"command":[["ps","-e","-o","%cpu,%mem,command","|","grep","3000"]],"msg":"查询占用CPU或内存超过3000%的进程列表"},{"command":[["kill","-9"],"-$(ps","-e","-o","pid","|","grep","3000","|","awk","'{print $1}'")],"msg":"自动关闭占用CPU或内存超过3000%的进程"}],"code":0}]

开发计划

  • 美化推荐命令选择界面
  • 大模型返回数据兼容性持续提升

免责声明

本项目仅供学习和研究使用,开发者不对因使用本工具产生的任何后果负责。

版权声明

本项目采用MIT 许可证许可 - 请参阅 LICENSE 文件以获取详细信息。

本项目中的内容均由ZhiPuAI/GLM-4.5 参与创作,版权归属 AI-Bash-Shell 项目组。


如果这个项目对你有帮助,请考虑给我们一个 ⭐️ Star

Made with ❤️ by CHurricane

About

为bash zsh sh等shell 增加ai功能,允许用户使用自然语言获得建议

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages