aish (AI Shell 智能命令行)
将自然语言转换为安全可执行的 Shell 命令。aish 基于大语言模型将你的需求翻译成 bash 命令,自动进行安全校验后再执行,让命令行使用更简单高效。
技术栈
- CLI 框架: Typer — 现代 Python CLI 框架,支持类型提示
- 终端输出: Rich — 富文本终端输出
- 配置验证: Pydantic — 数据验证与配置管理
- LLM 客户端: OpenAI Python SDK — 兼容所有 OpenAI API 格式的服务商
环境要求
Python 3.10+。
安装
pip install aish-cli
# 或使用uv
uv pip install --system aish-cli
aish -v
安装完成后,你就可以在任意位置使用 aish 命令了。
配置
使用 aish init 命令配置你的大模型服务商信息,支持交互式和参数两种配置模式。
交互式配置(推荐)
直接运行 aish init,按照提示输入相关信息即可:
aish init
aish -M # 列出所有已配置的模型
参数模式配置
你也可以通过参数一次性完成配置:
# OpenAI 官方接口示例
aish init --base-url "https://api.openai.com/v1" --api-key "sk-..." --model "gpt-4o"
# 国内服务商示例(豆包)
aish init --base-url "https://ark.cn-beijing.volces.com/api/v3" --api-key "331fda..." --model "doubao-1.5-pro-250315"
# 国内服务商示例(DeepSeek)
aish init --base-url "https://api.deepseek.com/v1" --api-key "sk-..." --model "deepseek-chat"
# 国内服务商示例(通义千问)
aish init --base-url "https://dashscope.aliyuncs.com/compatible-mode/v1" --api-key "sk-..." --model "qwen-max"
推荐配置
推荐使用阿里百灵大模型,每日有50WToken的免费额度,且性能稳定,适合长期使用: 阿里百灵
# 阿里百灵大模型示例
aish init --base-url "https://api.tbox.cn/api/llm/v1" --api-key "sk-..." --model "Ling-2.5-1T/Ling-1T"
配置文件会自动保存到 ~/.aish/config.json 目录下。
多模型管理
aish 支持同时配置多个大模型服务商,可随时切换使用:
| 命令 | 说明 |
|---|---|
aish model |
显示当前使用的模型 |
aish model -l / --list |
列出所有已配置的模型 |
aish model -s <模型名/别名> / --switch |
切换到指定模型 |
aish model -a / --add |
交互式添加新的模型配置 |
多模型使用示例
# 查看当前模型
aish model
Current model: Ling-2.5-1T
# 列出所有配置
aish model -l
Available Configurations:
Ling-2.5-1T (alias: tbox)
✓ Ling-1T (alias: ling)
# 切换模型
aish model -s gpt-4o
✓ Switched active configuration to gpt-4o.
# 添加新配置
aish model -a
Base URL: https://api.deepseek.com/v1
API key: ************************
Model: deepseek-chat
Alias (optional): deepseek
✓ Configuration updated successfully.
使用方法
直接在 aish run 后面输入你的需求即可,不需要加引号:
# 列出当前目录下所有 Python 文件
aish run 列出所有python文件
# 显示磁盘使用情况
aish run 显示磁盘使用情况
# 查找当前目录下大于100MB的文件
aish run 查找大于100MB的文件
# 查看最近10条命令历史
aish run 查看最近10条历史命令
可用选项
| 选项 | 简写 | 说明 |
|---|---|---|
--yes |
-y |
低风险命令自动执行,跳过确认步骤 |
--dry-run |
-d |
仅显示生成的命令,不实际执行 |
使用示例:
# 自动执行低风险命令
aish run 更新系统包 -y
# 仅查看生成的命令,不执行
aish run 删除所有日志文件 --dry-run
history 命令
# 显示最近10条历史记录
aish history
aish -H
aish history -l 20 # 显示最近20条历史记录
aish history -c # 清空历史记录
安全机制
aish 内置多层安全保障机制:
1. 命令风险检测
所有命令在执行前都会进行风险评估,分为三个等级:
- ALLOW(低风险):普通文件操作、查看类命令等,使用
-y参数时会自动执行 - WARN(中风险):修改系统配置、删除文件等操作,即使使用
-y也会要求用户确认后再执行 - DENY(高风险):磁盘格式化、删根、fork 炸弹等危险命令,会直接被禁止执行
2. 敏感信息保护
- API密钥使用 Pydantic
SecretStr类型存储,内存中不会明文暴露,避免意外泄露 - 配置文件默认权限为用户只读(
-rw-------),仅当前用户可读取
所有操作都会明确显示风险等级和提示信息,确保使用安全。
执行历史
最近 1000 条执行的命令会自动保存在 ~/.aish/history 文件中(JSON Lines 格式),超过上限的历史记录会自动清理,节省存储空间。
常见问题
Q: 如何添加/修改配置?
A:
- 添加新配置:运行
aish model -a交互式添加 - 切换模型:运行
aish model -s <模型名/别名> - 查看所有配置:运行
aish model -l - 也可以直接编辑
~/.aish/config.json文件手动修改
Q: 最多可以配置多少个模型?
A: 没有数量限制,可以添加任意多个兼容OpenAI API格式的模型服务商。
Q: 支持哪些大模型服务商?
A: 所有兼容 OpenAI API 格式的大模型服务商都支持,包括但不限于 OpenAI、Anthropic、豆包、DeepSeek、通义千问、文心一言等。
Q: 生成的命令不符合预期怎么办?
A: 你可以使用 --dry-run 参数先查看生成的命令,或者更精确地描述你的需求。
Q: 历史记录可以手动清理吗?
A: 可以直接删除 ~/.aish/history 文件,或者执行 aish run 清空aish历史记录 命令。
Release files for aish-cli 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aish_cli-0.1.7.tar.gz | 19.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aish_cli-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.5 kB
Release files / aish_cli-0.1.7.tar.gz
| Download URL | aish_cli-0.1.7.tar.gz |
|---|---|
| Size | 19.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2c003eb36933c090d3d7628ca6bd9acbadeb1f19b1a8f9e801a93e3846540532
|
|
BLAKE2b-256 checksum How to use checksums |
b7f72d272f3586c9bdb22559d9df743d98147e2fc5c9accface356d89d9859bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / aish_cli-0.1.7-py3-none-any.whl
| Download URL | aish_cli-0.1.7-py3-none-any.whl |
|---|---|
| Size | 18.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ecee7577784ddf92b6e94d33412d77e80d98d45e2e10bb5b4560bceec0d3134e
|
|
BLAKE2b-256 checksum How to use checksums |
8fb2d92cad77db02547ad3743c0d0ed1a46cf972201150521c8cc7a5a9fd1755
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|