https://github.com/fifsky/aishell
A command-line AI assistant script that supports context, simple and lightweight
https://github.com/fifsky/aishell
Last synced: 4 months ago
JSON representation
A command-line AI assistant script that supports context, simple and lightweight
- Host: GitHub
- URL: https://github.com/fifsky/aishell
- Owner: fifsky
- Created: 2026-01-29T09:32:25.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-01-29T10:00:36.000Z (4 months ago)
- Last Synced: 2026-01-30T00:47:44.760Z (4 months ago)
- Language: Shell
- Size: 11.7 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AI Shell 助手 (aishell)
一个基于 AI 的智能终端命令生成工具,能够将自然语言转换为 Shell 命令并辅助执行。
## 功能特性
- 🗣️ **自然语言交互**:直接描述你的需求,自动生成对应的 Shell 命令。
- 🧠 **智能上下文**:自动记录对话历史,支持多轮对话,能够理解之前的操作结果。
- 🔄 **执行反馈**:命令执行的输出(标准输出和错误)会自动反馈给 AI,以便进行后续的错误修正或进一步操作。
- 🛡️ **安全执行**:生成的命令在执行前需要用户确认,防止误操作。
- 📁 **Session 管理**:支持多会话管理,可在不同项目/任务间切换上下文。
- 🧹 **一键重置**:支持 `clear` 命令快速清理对话上下文。
- ⚙️ **可配置**:支持开启/关闭 AI 思考模式 (Thinking Mode)。
## 依赖要求
- `bash`
- `curl`
- `jq` (用于处理 JSON 数据)
- `fzf` (可选,用于 Session 列表选择和删除功能)
macOS 安装依赖:
```bash
brew install jq fzf
```
## 安装与配置
### 1. 下载与授权
使用 wget 下载脚本到本地(例如 `~/aishell.sh`):
```bash
wget -O ~/aishell.sh https://raw.githubusercontent.com/fifsky/aishell/refs/heads/main/aishell.sh
```
赋予执行权限:
```bash
chmod +x ~/aishell.sh
```
### 2. 配置环境变量
在使用之前,你需要配置 API 密钥和接口地址(可选)。
**以 zsh 为例 (macOS/Linux 默认 Shell):**
编辑你的 `~/.zshrc` 文件,添加以下内容:
```bash
# 必填:配置 API 密钥
export AISHELL_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 选填:配置 API 接口地址 (默认为 Moonshot AI 地址)
# export AISHELL_BASE_URL="https://api.moonshot.cn/v1/chat/completions"
# 选填:配置模型 (默认为 kimi-k2.5)
# export AISHELL_MODEL="kimi-k2.5"
# 选填:配置上下文保留条数 (默认为 100)
# export AISHELL_MAX_CONTEXT=100
# 选填:配置别名
alias ai="${HOME}/aishell.sh"
```
保存后,重载配置文件使生效:
```bash
source ~/.zshrc
```
### 3. 开始使用
配置完成后,你就可以直接使用 `ai` 命令了。
## 使用指南
### 基础用法
```bash
ai "查看当前目录下的所有 PDF 文件"
```
### 多轮对话示例
```bash
# 第一步
ai 查找最近修改的日志文件
# 第二步 (AI 会记得上一步的文件)
ai 把它们打包成 tar.gz
# 第三步 (执行出错时 AI 会尝试修复)
ai 解压刚才的包
```
> 输入的内容包含特殊字符(如空格),请用引号括起来。或者放入文本文件中使用`cat 文件名 | ai`
### Session 管理
aishell 支持多会话管理,让你可以在不同的项目或任务之间保持独立的对话上下文。
#### 切换/创建 Session
切换到指定名称的 session(如果不存在会自动创建):
```bash
ai session myproject
```
#### 列出所有 Session
查看所有可用的 session 并快速切换(需要安装 fzf):
```bash
ai list
```
这将打开一个交互式列表,当前 session 会标有 `*` 号,选择后即可快速切换。
#### 删除 Session
删除不需要的 session(支持多选,需要安装 fzf):
```bash
ai delete
```
> **注意**:删除当前正在使用的 session 后,会自动切换到 `default` session。
#### 不同 Session 的使用示例
```bash
# 在项目 A 的 session 中工作
ai session project-a
ai 查找所有的JavaScript文件
# 切换到项目 B 的 session,完全独立的上下文
ai session project-b
ai 查看当前的Git状态
# 列出所有 session
ai list
# 清理不再需要的 session
ai delete
```
### 清理上下文
当你想开始一个新的话题时,可以使用 `clear` 命令:
```bash
ai clear
```
## 高级配置
你可以直接编辑 `aishell.sh` 文件头部变量进行配置:
- **ENABLE_THINKING**: 设置为 `"true"` 可开启 AI 的思考过程展示(取决于模型支持)。
- **MODEL**: 切换使用的模型版本(默认 `kimi-k2.5`)。