aibash-wx


Nameaibash-wx JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryAI-powered shell command generator
upload_time2025-11-10 10:31:23
maintainerNone
docs_urlNone
authorgithub/W1412X
requires_python>=3.7
licenseMIT
keywords ai bash shell command generator
VCS
bugtrack_url
requirements pyyaml requests urllib3 pyperclip
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AIBash

AI 驱动的 Shell 命令生成工具

## 简介

AIBash 是一个智能命令行工具,能够根据自然语言描述生成对应的 Shell 命令。支持 OpenAI API 和本地 Ollama 模型。

**注意**: 命令行内的所有提示信息均为英文,以避免字符编码问题。文档提供中英文两种版本。

## 功能特性

- 🤖 **AI 命令生成**: 根据自然语言描述生成 Shell 命令
- 🔄 **交互式选择**: 支持执行、修改或放弃生成的命令
- 📝 **历史记录**: 保存命令执行历史和输出,提供上下文支持
- ⚙️ **灵活配置**: 支持多种配置选项(模型、密钥、系统信息等)
- 🌐 **多平台支持**: 支持 macOS、Windows、Linux
- 🔌 **多模型支持**: 支持 OpenAI API 和 Ollama 本地模型
- 🧠 **自动化任务**: 通过 `-a` 自动规划多步命令,逐步执行完成复杂任务
- 🪟 **新终端执行**: 通过 `-new` 在新的终端窗口中运行命令,保持当前窗口清爽
- 🌏 **双语界面**: 命令行提示支持英文/中文两种语言,可随时切换

## 安装

### 从源码安装

```bash
git clone https://github.com/W1412X/aibash.git
cd aibash
pip install -e .
```

### 使用 pip 安装

```bash
pip install aibash-wx
```

## 快速开始

### 1. 配置

首次使用前需要配置模型连接信息。配置文件位于 `~/.aibash/config.yaml`。

#### OpenAI API 配置示例

```yaml
model:
  provider: openai
  api_base: https://api.openai.com/v1
  api_key: your-api-key-here
  model_name: gpt-3.5-turbo

history:
  enabled: true
  max_records: 50
  include_output: true

system_info: "Linux 5.15.0 (x86_64)"
use_default_prompt: true
```

#### Ollama 配置示例

```yaml
model:
  provider: ollama
  api_base: http://localhost:11434
  api_key: ""  # Ollama 不需要密钥
  model_name: llama2

history:
  enabled: true
  max_records: 50
  include_output: true

system_info: "Linux 5.15.0 (x86_64)"
use_default_prompt: true
```

### 2. 使用

```bash
# 基本用法
aibash -l "列出当前目录下的所有文件"

# 指定配置文件
aibash --config /path/to/config.yaml -l "查找包含test的文件"

# 自动模式示例(逐步完成任务并逐条确认)
aibash -a "查看当前项目依赖并生成 requirements.txt"

# 自动模式从文件读取任务描述
aibash -p /path/to/task_description.txt

# 在新的终端窗口中执行命令
aibash -new -l "运行当前目录下的测试用例"

# 项目分析模式(生成项目摘要后再执行)
aibash --analyze "梳理项目模块并输出重构建议"

# 查看帮助
aibash -h

# 初始化配置(首次使用)
aibash --init

# 查看命令历史
aibash --history

# 清空命令历史
aibash --clear-history

# 测试 AI 连接
aibash --test
```

- `-l, --lang QUERY`: 自然语言描述,用于生成 shell 命令
- `-a, --auto QUERY`: 自动模式,根据自然语言目标规划并执行多步操作(默认最多 30 步,不生成项目摘要)
- `--analyze QUERY`: 项目分析模式,在执行步骤前自动生成项目摘要,适合大型工程
- `-p, --plan-file PATH`: 指定文件作为自动模式的任务描述输入
- `--auto-approve-all`: 自动模式下自动批准所有动作(无确认)
- `--auto-approve-commands`: 自动模式下自动批准命令执行
- `--auto-approve-files`: 自动模式下自动批准文件读取
- `--auto-approve-web`: 自动模式下自动批准网络请求
- `--auto-max-steps N`: 自动模式下限制最多执行的步骤数量(默认 30)
- `--ui-language {en,zh}`: 临时切换界面语言(默认从配置读取,未设置时为英文)
- `--config PATH`: 指定配置文件路径(默认: ~/.aibash/config.yaml)
- `-new, --new-terminal`: 将命令在新的终端窗口中执行(未指定时默认在当前终端执行)
- `--init`: 交互式初始化配置文件
- `--history`: 查看命令执行历史
- `--clear-history`: 清空命令执行历史
- `--test`: 测试 AI 连接
- `-h, --help`: 显示帮助信息
- `-v, --version`: 显示版本信息

生成命令后,你可以选择:

- `[e]` 执行命令 - 直接执行生成的命令
- `[c]` 复制到剪贴板 - 将命令复制到剪贴板
- `[m]` 修改命令 - 修改命令后再执行
- `[s]` 跳过/放弃 - 不执行命令
- `[h]` 显示帮助 - 显示帮助信息

当命令执行失败时,AIBash 会自动根据最新历史记录和错误输出请求 AI 生成新的命令建议,连同一条中文提示一起展示,帮助你快速迭代。

### 自动模式(-a)

自动模式让 AIBash 充当一个“执行代理”,根据你的自然语言描述分步规划并完成任务:

- 模型每次只会规划一个动作(运行命令、读取文件、访问网络、向你提问或结束)
- 每个命令、文件读取或网络访问都会先询问你是否确认执行
- 执行结果会反馈给模型,帮助其决定下一步操作
- 适合需要多步协作的任务,如“拉取最新代码、安装依赖并运行测试”等
- 可使用 `--auto-approve-*` 参数细粒度控制哪些操作无需确认,并可通过 `--auto-max-steps` 限制最多执行的步骤数
- 如某一步执行失败,自动模式会向模型反馈错误详情,并自动重新规划新的命令或策略
- 自动模式默认不会生成项目摘要,专注于执行用户任务;如需对项目结构进行深入分析,请使用 `--analyze`
- 项目分析模式会先对目录下的关键文件进行摘要(支持缓存与并发),帮助模型快速理解项目结构,再继续执行计划;摘要缓存保存在项目下 `.aibash_cache/summary_cache.json`
- 自动模式和项目分析模式均支持从配置文件预设是否自动确认命令/读文件/访问网络,以及是否静默展示读取/目录类输出(`automation.allow_silence`,默认开启)

可以与 `-new` 搭配,在新的终端窗口中执行实际命令,确保自动模式界面保持整洁。

## 配置说明

### 模型配置

- `provider`: 模型提供商 (`openai` 或 `ollama`)
- `api_base`: API 基础 URL
- `api_key`: API 密钥(Ollama 可为空)
- `model_name`: 模型名称

### 历史记录配置

- `enabled`: 是否启用历史记录
- `max_records`: 最大记录数
- `include_output`: 是否包含命令输出
- `history_file`: 历史记录文件路径(自动设置)

### 其他配置

- `system_info`: 系统信息(用于生成更准确的命令)
- `custom_prompt`: 自定义 prompt 模板
- `use_default_prompt`: 是否使用默认 prompt
- `ui.language`: 界面语言(`en` 或 `zh`,默认 `en`)
- `automation`: 自动模式默认行为配置(如自动确认、最大步骤、项目摘要并发等)

```yaml
automation:
  auto_confirm_all: false
  auto_confirm_commands: false
  auto_confirm_files: false
  auto_confirm_web: false
  max_steps: 30
  allow_silence: true
  enable_auto_summary: false
  summary_workers: 4

ui:
  enable_colors: true
  single_key_mode: true
  language: en
```

命令行中的 `--ui-language` 仅对当前会话生效,如需长期使用请在配置文件的 `ui.language` 中设置。

## 自定义 Prompt

你可以自定义 prompt 模板来更好地控制 AI 的行为。在配置文件中设置 `custom_prompt`,并使用以下占位符:

- `{system_info}`: 系统信息
- `{history_context}`: 历史上下文
- `{user_query}`: 用户查询

示例:

```yaml
custom_prompt: |
  你是一个专业的命令行助手。
  系统: {system_info}
  {history_context}
  用户需求: {user_query}
  请生成对应的shell命令:
use_default_prompt: false
```

## 项目结构

```
aibash/
├── aibash/
│   ├── __init__.py
│   ├── config.py          # 配置管理
│   ├── ai_client.py       # AI 模型客户端
│   ├── history.py         # 历史记录管理
│   ├── interactive.py     # 交互式选择
│   ├── prompt.py          # Prompt 管理
│   └── main.py            # 主程序入口
├── setup.py
├── requirements.txt
└── README.md
```

## 开发

### 运行测试

```bash
python -m aibash.main -l "测试命令"
```

### 构建分发包

```bash
python setup.py sdist bdist_wheel
```

## 文档

- [中文文档](README.md) - 本文档
- [English Documentation](README_EN.md) - English version

## 许可证

MIT License

## 作者

github/W1412X

## 贡献

欢迎提交 Issue 和 Pull Request!


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "aibash-wx",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "ai, bash, shell, command, generator",
    "author": "github/W1412X",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/13/7d/34a6b85a0e53412a1f3f468a78974144726099da56bfa1d4f08dd46a9fc4/aibash_wx-0.3.0.tar.gz",
    "platform": null,
    "description": "# AIBash\n\nAI \u9a71\u52a8\u7684 Shell \u547d\u4ee4\u751f\u6210\u5de5\u5177\n\n## \u7b80\u4ecb\n\nAIBash \u662f\u4e00\u4e2a\u667a\u80fd\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u80fd\u591f\u6839\u636e\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u751f\u6210\u5bf9\u5e94\u7684 Shell \u547d\u4ee4\u3002\u652f\u6301 OpenAI API \u548c\u672c\u5730 Ollama \u6a21\u578b\u3002\n\n**\u6ce8\u610f**: \u547d\u4ee4\u884c\u5185\u7684\u6240\u6709\u63d0\u793a\u4fe1\u606f\u5747\u4e3a\u82f1\u6587\uff0c\u4ee5\u907f\u514d\u5b57\u7b26\u7f16\u7801\u95ee\u9898\u3002\u6587\u6863\u63d0\u4f9b\u4e2d\u82f1\u6587\u4e24\u79cd\u7248\u672c\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n- \ud83e\udd16 **AI \u547d\u4ee4\u751f\u6210**: \u6839\u636e\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u751f\u6210 Shell \u547d\u4ee4\n- \ud83d\udd04 **\u4ea4\u4e92\u5f0f\u9009\u62e9**: \u652f\u6301\u6267\u884c\u3001\u4fee\u6539\u6216\u653e\u5f03\u751f\u6210\u7684\u547d\u4ee4\n- \ud83d\udcdd **\u5386\u53f2\u8bb0\u5f55**: \u4fdd\u5b58\u547d\u4ee4\u6267\u884c\u5386\u53f2\u548c\u8f93\u51fa\uff0c\u63d0\u4f9b\u4e0a\u4e0b\u6587\u652f\u6301\n- \u2699\ufe0f **\u7075\u6d3b\u914d\u7f6e**: \u652f\u6301\u591a\u79cd\u914d\u7f6e\u9009\u9879\uff08\u6a21\u578b\u3001\u5bc6\u94a5\u3001\u7cfb\u7edf\u4fe1\u606f\u7b49\uff09\n- \ud83c\udf10 **\u591a\u5e73\u53f0\u652f\u6301**: \u652f\u6301 macOS\u3001Windows\u3001Linux\n- \ud83d\udd0c **\u591a\u6a21\u578b\u652f\u6301**: \u652f\u6301 OpenAI API \u548c Ollama \u672c\u5730\u6a21\u578b\n- \ud83e\udde0 **\u81ea\u52a8\u5316\u4efb\u52a1**: \u901a\u8fc7 `-a` \u81ea\u52a8\u89c4\u5212\u591a\u6b65\u547d\u4ee4\uff0c\u9010\u6b65\u6267\u884c\u5b8c\u6210\u590d\u6742\u4efb\u52a1\n- \ud83e\ude9f **\u65b0\u7ec8\u7aef\u6267\u884c**: \u901a\u8fc7 `-new` \u5728\u65b0\u7684\u7ec8\u7aef\u7a97\u53e3\u4e2d\u8fd0\u884c\u547d\u4ee4\uff0c\u4fdd\u6301\u5f53\u524d\u7a97\u53e3\u6e05\u723d\n- \ud83c\udf0f **\u53cc\u8bed\u754c\u9762**: \u547d\u4ee4\u884c\u63d0\u793a\u652f\u6301\u82f1\u6587/\u4e2d\u6587\u4e24\u79cd\u8bed\u8a00\uff0c\u53ef\u968f\u65f6\u5207\u6362\n\n## \u5b89\u88c5\n\n### \u4ece\u6e90\u7801\u5b89\u88c5\n\n```bash\ngit clone https://github.com/W1412X/aibash.git\ncd aibash\npip install -e .\n```\n\n### \u4f7f\u7528 pip \u5b89\u88c5\n\n```bash\npip install aibash-wx\n```\n\n## \u5feb\u901f\u5f00\u59cb\n\n### 1. \u914d\u7f6e\n\n\u9996\u6b21\u4f7f\u7528\u524d\u9700\u8981\u914d\u7f6e\u6a21\u578b\u8fde\u63a5\u4fe1\u606f\u3002\u914d\u7f6e\u6587\u4ef6\u4f4d\u4e8e `~/.aibash/config.yaml`\u3002\n\n#### OpenAI API \u914d\u7f6e\u793a\u4f8b\n\n```yaml\nmodel:\n  provider: openai\n  api_base: https://api.openai.com/v1\n  api_key: your-api-key-here\n  model_name: gpt-3.5-turbo\n\nhistory:\n  enabled: true\n  max_records: 50\n  include_output: true\n\nsystem_info: \"Linux 5.15.0 (x86_64)\"\nuse_default_prompt: true\n```\n\n#### Ollama \u914d\u7f6e\u793a\u4f8b\n\n```yaml\nmodel:\n  provider: ollama\n  api_base: http://localhost:11434\n  api_key: \"\"  # Ollama \u4e0d\u9700\u8981\u5bc6\u94a5\n  model_name: llama2\n\nhistory:\n  enabled: true\n  max_records: 50\n  include_output: true\n\nsystem_info: \"Linux 5.15.0 (x86_64)\"\nuse_default_prompt: true\n```\n\n### 2. \u4f7f\u7528\n\n```bash\n# \u57fa\u672c\u7528\u6cd5\naibash -l \"\u5217\u51fa\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6\"\n\n# \u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\naibash --config /path/to/config.yaml -l \"\u67e5\u627e\u5305\u542btest\u7684\u6587\u4ef6\"\n\n# \u81ea\u52a8\u6a21\u5f0f\u793a\u4f8b\uff08\u9010\u6b65\u5b8c\u6210\u4efb\u52a1\u5e76\u9010\u6761\u786e\u8ba4\uff09\naibash -a \"\u67e5\u770b\u5f53\u524d\u9879\u76ee\u4f9d\u8d56\u5e76\u751f\u6210 requirements.txt\"\n\n# \u81ea\u52a8\u6a21\u5f0f\u4ece\u6587\u4ef6\u8bfb\u53d6\u4efb\u52a1\u63cf\u8ff0\naibash -p /path/to/task_description.txt\n\n# \u5728\u65b0\u7684\u7ec8\u7aef\u7a97\u53e3\u4e2d\u6267\u884c\u547d\u4ee4\naibash -new -l \"\u8fd0\u884c\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\"\n\n# \u9879\u76ee\u5206\u6790\u6a21\u5f0f\uff08\u751f\u6210\u9879\u76ee\u6458\u8981\u540e\u518d\u6267\u884c\uff09\naibash --analyze \"\u68b3\u7406\u9879\u76ee\u6a21\u5757\u5e76\u8f93\u51fa\u91cd\u6784\u5efa\u8bae\"\n\n# \u67e5\u770b\u5e2e\u52a9\naibash -h\n\n# \u521d\u59cb\u5316\u914d\u7f6e\uff08\u9996\u6b21\u4f7f\u7528\uff09\naibash --init\n\n# \u67e5\u770b\u547d\u4ee4\u5386\u53f2\naibash --history\n\n# \u6e05\u7a7a\u547d\u4ee4\u5386\u53f2\naibash --clear-history\n\n# \u6d4b\u8bd5 AI \u8fde\u63a5\naibash --test\n```\n\n- `-l, --lang QUERY`: \u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\uff0c\u7528\u4e8e\u751f\u6210 shell \u547d\u4ee4\n- `-a, --auto QUERY`: \u81ea\u52a8\u6a21\u5f0f\uff0c\u6839\u636e\u81ea\u7136\u8bed\u8a00\u76ee\u6807\u89c4\u5212\u5e76\u6267\u884c\u591a\u6b65\u64cd\u4f5c\uff08\u9ed8\u8ba4\u6700\u591a 30 \u6b65\uff0c\u4e0d\u751f\u6210\u9879\u76ee\u6458\u8981\uff09\n- `--analyze QUERY`: \u9879\u76ee\u5206\u6790\u6a21\u5f0f\uff0c\u5728\u6267\u884c\u6b65\u9aa4\u524d\u81ea\u52a8\u751f\u6210\u9879\u76ee\u6458\u8981\uff0c\u9002\u5408\u5927\u578b\u5de5\u7a0b\n- `-p, --plan-file PATH`: \u6307\u5b9a\u6587\u4ef6\u4f5c\u4e3a\u81ea\u52a8\u6a21\u5f0f\u7684\u4efb\u52a1\u63cf\u8ff0\u8f93\u5165\n- `--auto-approve-all`: \u81ea\u52a8\u6a21\u5f0f\u4e0b\u81ea\u52a8\u6279\u51c6\u6240\u6709\u52a8\u4f5c\uff08\u65e0\u786e\u8ba4\uff09\n- `--auto-approve-commands`: \u81ea\u52a8\u6a21\u5f0f\u4e0b\u81ea\u52a8\u6279\u51c6\u547d\u4ee4\u6267\u884c\n- `--auto-approve-files`: \u81ea\u52a8\u6a21\u5f0f\u4e0b\u81ea\u52a8\u6279\u51c6\u6587\u4ef6\u8bfb\u53d6\n- `--auto-approve-web`: \u81ea\u52a8\u6a21\u5f0f\u4e0b\u81ea\u52a8\u6279\u51c6\u7f51\u7edc\u8bf7\u6c42\n- `--auto-max-steps N`: \u81ea\u52a8\u6a21\u5f0f\u4e0b\u9650\u5236\u6700\u591a\u6267\u884c\u7684\u6b65\u9aa4\u6570\u91cf\uff08\u9ed8\u8ba4 30\uff09\n- `--ui-language {en,zh}`: \u4e34\u65f6\u5207\u6362\u754c\u9762\u8bed\u8a00\uff08\u9ed8\u8ba4\u4ece\u914d\u7f6e\u8bfb\u53d6\uff0c\u672a\u8bbe\u7f6e\u65f6\u4e3a\u82f1\u6587\uff09\n- `--config PATH`: \u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\uff08\u9ed8\u8ba4: ~/.aibash/config.yaml\uff09\n- `-new, --new-terminal`: \u5c06\u547d\u4ee4\u5728\u65b0\u7684\u7ec8\u7aef\u7a97\u53e3\u4e2d\u6267\u884c\uff08\u672a\u6307\u5b9a\u65f6\u9ed8\u8ba4\u5728\u5f53\u524d\u7ec8\u7aef\u6267\u884c\uff09\n- `--init`: \u4ea4\u4e92\u5f0f\u521d\u59cb\u5316\u914d\u7f6e\u6587\u4ef6\n- `--history`: \u67e5\u770b\u547d\u4ee4\u6267\u884c\u5386\u53f2\n- `--clear-history`: \u6e05\u7a7a\u547d\u4ee4\u6267\u884c\u5386\u53f2\n- `--test`: \u6d4b\u8bd5 AI \u8fde\u63a5\n- `-h, --help`: \u663e\u793a\u5e2e\u52a9\u4fe1\u606f\n- `-v, --version`: \u663e\u793a\u7248\u672c\u4fe1\u606f\n\n\u751f\u6210\u547d\u4ee4\u540e\uff0c\u4f60\u53ef\u4ee5\u9009\u62e9\uff1a\n\n- `[e]` \u6267\u884c\u547d\u4ee4 - \u76f4\u63a5\u6267\u884c\u751f\u6210\u7684\u547d\u4ee4\n- `[c]` \u590d\u5236\u5230\u526a\u8d34\u677f - \u5c06\u547d\u4ee4\u590d\u5236\u5230\u526a\u8d34\u677f\n- `[m]` \u4fee\u6539\u547d\u4ee4 - \u4fee\u6539\u547d\u4ee4\u540e\u518d\u6267\u884c\n- `[s]` \u8df3\u8fc7/\u653e\u5f03 - \u4e0d\u6267\u884c\u547d\u4ee4\n- `[h]` \u663e\u793a\u5e2e\u52a9 - \u663e\u793a\u5e2e\u52a9\u4fe1\u606f\n\n\u5f53\u547d\u4ee4\u6267\u884c\u5931\u8d25\u65f6\uff0cAIBash \u4f1a\u81ea\u52a8\u6839\u636e\u6700\u65b0\u5386\u53f2\u8bb0\u5f55\u548c\u9519\u8bef\u8f93\u51fa\u8bf7\u6c42 AI \u751f\u6210\u65b0\u7684\u547d\u4ee4\u5efa\u8bae\uff0c\u8fde\u540c\u4e00\u6761\u4e2d\u6587\u63d0\u793a\u4e00\u8d77\u5c55\u793a\uff0c\u5e2e\u52a9\u4f60\u5feb\u901f\u8fed\u4ee3\u3002\n\n### \u81ea\u52a8\u6a21\u5f0f\uff08-a\uff09\n\n\u81ea\u52a8\u6a21\u5f0f\u8ba9 AIBash \u5145\u5f53\u4e00\u4e2a\u201c\u6267\u884c\u4ee3\u7406\u201d\uff0c\u6839\u636e\u4f60\u7684\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u5206\u6b65\u89c4\u5212\u5e76\u5b8c\u6210\u4efb\u52a1\uff1a\n\n- \u6a21\u578b\u6bcf\u6b21\u53ea\u4f1a\u89c4\u5212\u4e00\u4e2a\u52a8\u4f5c\uff08\u8fd0\u884c\u547d\u4ee4\u3001\u8bfb\u53d6\u6587\u4ef6\u3001\u8bbf\u95ee\u7f51\u7edc\u3001\u5411\u4f60\u63d0\u95ee\u6216\u7ed3\u675f\uff09\n- \u6bcf\u4e2a\u547d\u4ee4\u3001\u6587\u4ef6\u8bfb\u53d6\u6216\u7f51\u7edc\u8bbf\u95ee\u90fd\u4f1a\u5148\u8be2\u95ee\u4f60\u662f\u5426\u786e\u8ba4\u6267\u884c\n- \u6267\u884c\u7ed3\u679c\u4f1a\u53cd\u9988\u7ed9\u6a21\u578b\uff0c\u5e2e\u52a9\u5176\u51b3\u5b9a\u4e0b\u4e00\u6b65\u64cd\u4f5c\n- \u9002\u5408\u9700\u8981\u591a\u6b65\u534f\u4f5c\u7684\u4efb\u52a1\uff0c\u5982\u201c\u62c9\u53d6\u6700\u65b0\u4ee3\u7801\u3001\u5b89\u88c5\u4f9d\u8d56\u5e76\u8fd0\u884c\u6d4b\u8bd5\u201d\u7b49\n- \u53ef\u4f7f\u7528 `--auto-approve-*` \u53c2\u6570\u7ec6\u7c92\u5ea6\u63a7\u5236\u54ea\u4e9b\u64cd\u4f5c\u65e0\u9700\u786e\u8ba4\uff0c\u5e76\u53ef\u901a\u8fc7 `--auto-max-steps` \u9650\u5236\u6700\u591a\u6267\u884c\u7684\u6b65\u9aa4\u6570\n- \u5982\u67d0\u4e00\u6b65\u6267\u884c\u5931\u8d25\uff0c\u81ea\u52a8\u6a21\u5f0f\u4f1a\u5411\u6a21\u578b\u53cd\u9988\u9519\u8bef\u8be6\u60c5\uff0c\u5e76\u81ea\u52a8\u91cd\u65b0\u89c4\u5212\u65b0\u7684\u547d\u4ee4\u6216\u7b56\u7565\n- \u81ea\u52a8\u6a21\u5f0f\u9ed8\u8ba4\u4e0d\u4f1a\u751f\u6210\u9879\u76ee\u6458\u8981\uff0c\u4e13\u6ce8\u4e8e\u6267\u884c\u7528\u6237\u4efb\u52a1\uff1b\u5982\u9700\u5bf9\u9879\u76ee\u7ed3\u6784\u8fdb\u884c\u6df1\u5165\u5206\u6790\uff0c\u8bf7\u4f7f\u7528 `--analyze`\n- \u9879\u76ee\u5206\u6790\u6a21\u5f0f\u4f1a\u5148\u5bf9\u76ee\u5f55\u4e0b\u7684\u5173\u952e\u6587\u4ef6\u8fdb\u884c\u6458\u8981\uff08\u652f\u6301\u7f13\u5b58\u4e0e\u5e76\u53d1\uff09\uff0c\u5e2e\u52a9\u6a21\u578b\u5feb\u901f\u7406\u89e3\u9879\u76ee\u7ed3\u6784\uff0c\u518d\u7ee7\u7eed\u6267\u884c\u8ba1\u5212\uff1b\u6458\u8981\u7f13\u5b58\u4fdd\u5b58\u5728\u9879\u76ee\u4e0b `.aibash_cache/summary_cache.json`\n- \u81ea\u52a8\u6a21\u5f0f\u548c\u9879\u76ee\u5206\u6790\u6a21\u5f0f\u5747\u652f\u6301\u4ece\u914d\u7f6e\u6587\u4ef6\u9884\u8bbe\u662f\u5426\u81ea\u52a8\u786e\u8ba4\u547d\u4ee4/\u8bfb\u6587\u4ef6/\u8bbf\u95ee\u7f51\u7edc\uff0c\u4ee5\u53ca\u662f\u5426\u9759\u9ed8\u5c55\u793a\u8bfb\u53d6/\u76ee\u5f55\u7c7b\u8f93\u51fa\uff08`automation.allow_silence`\uff0c\u9ed8\u8ba4\u5f00\u542f\uff09\n\n\u53ef\u4ee5\u4e0e `-new` \u642d\u914d\uff0c\u5728\u65b0\u7684\u7ec8\u7aef\u7a97\u53e3\u4e2d\u6267\u884c\u5b9e\u9645\u547d\u4ee4\uff0c\u786e\u4fdd\u81ea\u52a8\u6a21\u5f0f\u754c\u9762\u4fdd\u6301\u6574\u6d01\u3002\n\n## \u914d\u7f6e\u8bf4\u660e\n\n### \u6a21\u578b\u914d\u7f6e\n\n- `provider`: \u6a21\u578b\u63d0\u4f9b\u5546 (`openai` \u6216 `ollama`)\n- `api_base`: API \u57fa\u7840 URL\n- `api_key`: API \u5bc6\u94a5\uff08Ollama \u53ef\u4e3a\u7a7a\uff09\n- `model_name`: \u6a21\u578b\u540d\u79f0\n\n### \u5386\u53f2\u8bb0\u5f55\u914d\u7f6e\n\n- `enabled`: \u662f\u5426\u542f\u7528\u5386\u53f2\u8bb0\u5f55\n- `max_records`: \u6700\u5927\u8bb0\u5f55\u6570\n- `include_output`: \u662f\u5426\u5305\u542b\u547d\u4ee4\u8f93\u51fa\n- `history_file`: \u5386\u53f2\u8bb0\u5f55\u6587\u4ef6\u8def\u5f84\uff08\u81ea\u52a8\u8bbe\u7f6e\uff09\n\n### \u5176\u4ed6\u914d\u7f6e\n\n- `system_info`: \u7cfb\u7edf\u4fe1\u606f\uff08\u7528\u4e8e\u751f\u6210\u66f4\u51c6\u786e\u7684\u547d\u4ee4\uff09\n- `custom_prompt`: \u81ea\u5b9a\u4e49 prompt \u6a21\u677f\n- `use_default_prompt`: \u662f\u5426\u4f7f\u7528\u9ed8\u8ba4 prompt\n- `ui.language`: \u754c\u9762\u8bed\u8a00\uff08`en` \u6216 `zh`\uff0c\u9ed8\u8ba4 `en`\uff09\n- `automation`: \u81ea\u52a8\u6a21\u5f0f\u9ed8\u8ba4\u884c\u4e3a\u914d\u7f6e\uff08\u5982\u81ea\u52a8\u786e\u8ba4\u3001\u6700\u5927\u6b65\u9aa4\u3001\u9879\u76ee\u6458\u8981\u5e76\u53d1\u7b49\uff09\n\n```yaml\nautomation:\n  auto_confirm_all: false\n  auto_confirm_commands: false\n  auto_confirm_files: false\n  auto_confirm_web: false\n  max_steps: 30\n  allow_silence: true\n  enable_auto_summary: false\n  summary_workers: 4\n\nui:\n  enable_colors: true\n  single_key_mode: true\n  language: en\n```\n\n\u547d\u4ee4\u884c\u4e2d\u7684 `--ui-language` \u4ec5\u5bf9\u5f53\u524d\u4f1a\u8bdd\u751f\u6548\uff0c\u5982\u9700\u957f\u671f\u4f7f\u7528\u8bf7\u5728\u914d\u7f6e\u6587\u4ef6\u7684 `ui.language` \u4e2d\u8bbe\u7f6e\u3002\n\n## \u81ea\u5b9a\u4e49 Prompt\n\n\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49 prompt \u6a21\u677f\u6765\u66f4\u597d\u5730\u63a7\u5236 AI \u7684\u884c\u4e3a\u3002\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u8bbe\u7f6e `custom_prompt`\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u5360\u4f4d\u7b26\uff1a\n\n- `{system_info}`: \u7cfb\u7edf\u4fe1\u606f\n- `{history_context}`: \u5386\u53f2\u4e0a\u4e0b\u6587\n- `{user_query}`: \u7528\u6237\u67e5\u8be2\n\n\u793a\u4f8b\uff1a\n\n```yaml\ncustom_prompt: |\n  \u4f60\u662f\u4e00\u4e2a\u4e13\u4e1a\u7684\u547d\u4ee4\u884c\u52a9\u624b\u3002\n  \u7cfb\u7edf: {system_info}\n  {history_context}\n  \u7528\u6237\u9700\u6c42: {user_query}\n  \u8bf7\u751f\u6210\u5bf9\u5e94\u7684shell\u547d\u4ee4\uff1a\nuse_default_prompt: false\n```\n\n## \u9879\u76ee\u7ed3\u6784\n\n```\naibash/\n\u251c\u2500\u2500 aibash/\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 config.py          # \u914d\u7f6e\u7ba1\u7406\n\u2502   \u251c\u2500\u2500 ai_client.py       # AI \u6a21\u578b\u5ba2\u6237\u7aef\n\u2502   \u251c\u2500\u2500 history.py         # \u5386\u53f2\u8bb0\u5f55\u7ba1\u7406\n\u2502   \u251c\u2500\u2500 interactive.py     # \u4ea4\u4e92\u5f0f\u9009\u62e9\n\u2502   \u251c\u2500\u2500 prompt.py          # Prompt \u7ba1\u7406\n\u2502   \u2514\u2500\u2500 main.py            # \u4e3b\u7a0b\u5e8f\u5165\u53e3\n\u251c\u2500\u2500 setup.py\n\u251c\u2500\u2500 requirements.txt\n\u2514\u2500\u2500 README.md\n```\n\n## \u5f00\u53d1\n\n### \u8fd0\u884c\u6d4b\u8bd5\n\n```bash\npython -m aibash.main -l \"\u6d4b\u8bd5\u547d\u4ee4\"\n```\n\n### \u6784\u5efa\u5206\u53d1\u5305\n\n```bash\npython setup.py sdist bdist_wheel\n```\n\n## \u6587\u6863\n\n- [\u4e2d\u6587\u6587\u6863](README.md) - \u672c\u6587\u6863\n- [English Documentation](README_EN.md) - English version\n\n## \u8bb8\u53ef\u8bc1\n\nMIT License\n\n## \u4f5c\u8005\n\ngithub/W1412X\n\n## \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4 Issue \u548c Pull Request\uff01\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "AI-powered shell command generator",
    "version": "0.3.0",
    "project_urls": {
        "Homepage": "https://github.com/W1412X/aibash",
        "Repository": "https://github.com/W1412X/aibash"
    },
    "split_keywords": [
        "ai",
        " bash",
        " shell",
        " command",
        " generator"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ca89c3028399d1805ed09f5e84ebdf66a0cbe2c6a99af144ababd15d37f3727d",
                "md5": "ebecde50b9453e44ee554220be6cace6",
                "sha256": "a8eae8e61fd240a27779822eb9adbd195d844fe72b98d70de10dd2774b6320cf"
            },
            "downloads": -1,
            "filename": "aibash_wx-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ebecde50b9453e44ee554220be6cace6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 53315,
            "upload_time": "2025-11-10T10:31:22",
            "upload_time_iso_8601": "2025-11-10T10:31:22.076770Z",
            "url": "https://files.pythonhosted.org/packages/ca/89/c3028399d1805ed09f5e84ebdf66a0cbe2c6a99af144ababd15d37f3727d/aibash_wx-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "137d34a6b85a0e53412a1f3f468a78974144726099da56bfa1d4f08dd46a9fc4",
                "md5": "2f30ae4ff5c6f11af6df2ac0cc28d0f6",
                "sha256": "912ac97185af31cb63a12efbd28eee2daa4593cde0b0cb47961f1215bf6027f3"
            },
            "downloads": -1,
            "filename": "aibash_wx-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "2f30ae4ff5c6f11af6df2ac0cc28d0f6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 45643,
            "upload_time": "2025-11-10T10:31:23",
            "upload_time_iso_8601": "2025-11-10T10:31:23.505518Z",
            "url": "https://files.pythonhosted.org/packages/13/7d/34a6b85a0e53412a1f3f468a78974144726099da56bfa1d4f08dd46a9fc4/aibash_wx-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-10 10:31:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "W1412X",
    "github_project": "aibash",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "pyyaml",
            "specs": [
                [
                    ">=",
                    "5.4.1"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.25.1"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    ">=",
                    "1.26.0"
                ]
            ]
        },
        {
            "name": "pyperclip",
            "specs": [
                [
                    ">=",
                    "1.9.0"
                ]
            ]
        }
    ],
    "lcname": "aibash-wx"
}
        
Elapsed time: 1.73227s