ais-terminal


Nameais-terminal JSON
Version 0.2.11 PyPI version JSON
download
home_pageNone
SummaryAI智能终端助手 - 让命令行更智能,让学习更高效
upload_time2025-07-15 05:25:51
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords ai assistant automation cli error-analysis shell terminal
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AIS - AI智能终端助手

<div align="center">

**让命令行更智能,让学习更高效**

[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://python.org)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Package Version](https://img.shields.io/badge/version-0.2.8-blue.svg)](https://github.com/kangvcar/ais)
[![CI Status](https://img.shields.io/github/workflow/status/kangvcar/ais/CI)](https://github.com/kangvcar/ais/actions)

[📖 安装指南](#installation) · [🚀 快速开始](#quickstart) · [📚 文档](#documentation) · [🤝 贡献](#contributing)

</div>

---

## 概述

AIS(AI-powered terminal assistant)是一个革命性的命令行工具,通过AI技术为终端用户提供智能错误分析、学习指导和操作建议。当命令执行失败时,AIS会自动分析原因并提供解决方案,帮助用户快速解决问题并学习相关知识。

### 🌟 核心特性

#### 🔍 智能错误分析
- **自动检测** - 命令失败时自动分析错误原因
- **上下文感知** - 结合当前目录、Git状态、项目类型等环境信息  
- **个性化建议** - 基于用户技能水平提供针对性解决方案
- **安全等级** - 每个建议都标注风险等级,确保操作安全

#### 📚 智能学习系统
- **交互式教学** - 解释"为什么"而不只是"怎么做"
- **主题学习** - 深入学习Git、Docker、Vim等专题知识
- **渐进式内容** - 根据用户水平调整教学深度
- **实践导向** - 提供可执行的命令示例和最佳实践

#### 🎯 多模式交互
- **问答模式** - `ais ask` 快速获取问题答案
- **学习模式** - `ais learn` 系统学习命令行知识
- **分析模式** - 自动或手动分析命令错误

#### 🔌 强大的集成能力
- **Shell集成** - 支持Bash、Zsh自动错误捕获
- **多AI支持** - 兼容OpenAI、Ollama、Claude等多种AI服务
- **隐私保护** - 本地数据存储,敏感信息自动过滤
- **跨平台** - 支持Linux、macOS

---

## <a id="installation"></a>📦 安装

### 系统要求

- **Python**: 3.8+ (推荐 3.11+)
- **操作系统**: Linux, macOS
- **网络**: 需要网络连接以下载依赖和AI服务
- **空间**: 至少 100MB 可用空间

### ⚡ 一键安装(推荐)

```bash
# 智能安装 - 自动检测环境并选择最佳方式
curl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/install.sh | bash
```

**安装脚本会自动:**
- 🔍 检测当前环境(个人/团队/容器)
- 🎯 选择最佳安装方式(pipx用户级/系统级/容器化)
- 📦 安装pipx和AIS
- 🔧 配置shell集成
- ✅ 执行健康检查

### 🗑️ 一键卸载

```bash
# 智能卸载 - 自动检测安装方式并完全清理
curl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/uninstall.sh | bash
```

**卸载脚本会自动:**
- 🔍 检测AIS安装方式(pipx用户级/系统级)
- 🗑️ 卸载AIS包和依赖
- 🧹 清理shell集成配置
- 📁 可选择保留或删除用户数据
- ✅ 验证卸载完成

### 🎯 分场景安装

<details>
<summary><b>🐳 Docker容器(推荐 - 零配置)</b></summary>

```bash
# 直接运行最新版本
docker run -it --rm kangvcar/ais:latest

# 或者交互式使用
docker run -it --rm -v $(pwd):/workspace kangvcar/ais:latest bash

# 使用Docker Compose(推荐用于持久化配置)
curl -O https://raw.githubusercontent.com/kangvcar/ais/main/docker-compose.yml
docker-compose up -d ais
docker-compose exec ais bash
```

**优势**: 零配置启动,环境隔离,跨平台一致性,支持ARM64架构

</details>

<details>
<summary><b>👨‍💻 个人开发者(Python环境)</b></summary>

```bash
# 用户级安装(最安全)
curl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/install.sh | bash -s -- --user

# 或手动安装
pipx install ais-terminal
ais setup
```

**优势**: 最高安全性,独立虚拟环境,无需sudo权限

</details>

<details>
<summary><b>🏢 团队/企业环境</b></summary>

```bash
# 系统级安装(所有用户可用)
curl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/install.sh | bash -s -- --system
```

**优势**: 所有用户可用,保持安全隔离,集中管理和更新

</details>

<details>
<summary><b>🐳 容器/云环境</b></summary>

```bash
# Docker容器化安装
curl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/docker-install.sh | bash

# 或直接运行
docker run -it --rm ais-terminal:latest
```

**优势**: 环境一致性,快速部署,易于扩展,完全隔离

</details>

<details>
<summary><b>🔧 开发者/贡献者</b></summary>

```bash
# 源码安装
git clone https://github.com/kangvcar/ais.git
cd ais
pipx install -e .

# 或使用虚拟环境
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
```

**优势**: 实时修改效果,完整开发工具链,易于调试

</details>

### ✅ 验证安装

```bash
# 检查版本
ais --version

# 测试基本功能
ais ask "你好,AIS!"

# 测试自动错误分析(故意输错命令)
mkdirr /tmp/test
```

---

## <a id="quickstart"></a>🚀 快速开始

### 基础配置

```bash
# 查看当前配置
ais config

# 设置API提供商(可选)
ais config set provider=openai
ais config set api_key="your-api-key"

# 调整分析级别
ais config set analysis_level=detailed
```

### 核心功能体验

#### 💬 AI问答
```bash
ais ask "如何查看系统内存使用情况?"
ais ask "Docker容器如何挂载目录?"
ais ask "Git合并冲突如何解决?"
```

#### 📖 主题学习
```bash
ais learn git      # 学习Git版本控制
ais learn docker   # 学习容器化技术
ais learn vim      # 学习文本编辑器
ais learn ssh      # 学习远程连接
```

#### 🔍 智能错误分析
```bash
# 这些错误命令会自动触发AI分析
pytho --version        # 拼写错误
ls /not/exist         # 路径不存在
git statuss           # 命令错误
```

#### 📊 历史管理
```bash
ais history                    # 查看最近的命令记录
ais history --failed-only     # 只显示失败的命令
ais history 3                 # 查看第3条记录的详细分析
```

---

## 📚 详细功能

### 智能问答 - `ais ask`

快速获取技术问题的答案,支持编程、运维、工具使用等各类问题:

```bash
ais ask "Linux文件权限755表示什么?"
ais ask "如何优化Python脚本性能?"
ais ask "Nginx配置反向代理的步骤?"
```

### 知识学习 - `ais learn`

系统学习命令行工具和概念:

```bash
ais learn              # 查看所有可学习主题
ais learn git          # Git版本控制完整教程
ais learn docker       # 容器化技术深度学习
ais learn linux        # Linux系统管理基础
```

### AI服务商管理

支持多种AI服务商,灵活切换:

```bash
# 查看可用服务商
ais provider-list

# 添加本地Ollama服务
ais provider-add ollama \
  --url http://localhost:11434/v1/chat/completions \
  --model llama3

# 切换服务商
ais provider-use ollama
```

### Shell集成配置

AIS支持自动错误分析,需要配置Shell集成:

```bash
# 自动配置
ais setup

# 测试集成是否正常工作
ais test-integration
```

---

## ⚙️ 高级配置

### 上下文收集设置

控制错误分析时收集的上下文信息量:

```bash
# 设置上下文级别
ais config set context_level=minimal    # 基本信息
ais config set context_level=standard   # 标准信息(默认)
ais config set context_level=detailed   # 详细信息

# 控制自动分析
ais config set auto_analysis=true       # 开启自动分析
ais config set auto_analysis=false      # 关闭自动分析
```

### 隐私和安全

AIS重视用户隐私和数据安全:

- **本地存储** - 所有数据存储在本地SQLite数据库
- **敏感信息过滤** - 自动过滤密码、密钥等敏感信息
- **可配置的上下文级别** - 用户可控制信息收集范围
- **开源透明** - 完全开源,代码公开透明

---

## 🏗️ 项目架构

```
ais/
├── src/ais/              # 主要源代码
│   ├── cli/              # CLI界面模块
│   │   ├── main.py       # 主CLI入口
│   │   └── interactive.py # 交互式菜单
│   ├── core/             # 核心功能模块
│   │   ├── ai.py         # AI交互模块
│   │   ├── config.py     # 配置管理
│   │   ├── context.py    # 上下文收集
│   │   └── database.py   # 数据库操作
│   ├── ui/               # 用户界面
│   │   └── panels.py     # 显示面板
│   └── utils/            # 工具函数
├── scripts/              # 安装和部署脚本
├── tests/                # 测试文件
├── docs/                 # 文档目录
└── pyproject.toml        # 项目配置
```

### 核心模块

- **CLI模块** (`src/ais/cli/`): 命令行接口和交互式界面
- **Core模块** (`src/ais/core/`): AI服务集成、配置管理、上下文收集、数据库操作
- **UI模块** (`src/ais/ui/`): Rich库显示面板和格式化

---

## <a id="documentation"></a>📚 文档

### 详细指南

- 📖 [安装指南](docs/INSTALLATION.md) - 各种环境的详细安装说明
- 🐳 [Docker部署指南](docs/DOCKER_GUIDE.md) - 容器化部署
- 🏢 [企业部署指南](docs/DEPLOYMENT_GUIDE.md) - 生产环境部署
- 🔧 [开发指南](docs/DEVELOPMENT.md) - 开发环境设置和贡献代码

### API文档

所有命令都支持详细帮助:

```bash
ais ask --help-detail         # AI问答详细说明
ais learn --help-detail       # 学习功能详细说明
ais config --help-context     # 配置管理详细说明
ais history --help-detail     # 历史记录详细说明
ais provider-add --help-detail # 服务商管理详细说明
```

---

## 🧪 开发和测试

### 开发环境设置

```bash
# 克隆仓库
git clone https://github.com/kangvcar/ais.git
cd ais

# 创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate

# 安装开发版本和依赖
pip install -e ".[dev]"

# 设置pre-commit
pre-commit install
```

### 运行测试

```bash
# 运行所有测试
python -m pytest tests/ -v

# 运行覆盖率测试
python -m pytest --cov=ais tests/

# 代码质量检查
source .venv/bin/activate && black src/ tests/
source .venv/bin/activate && flake8 src/ tests/ --max-line-length=79
```

---

## <a id="contributing"></a>🤝 贡献指南

我们欢迎所有形式的贡献!

### 如何参与

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

### 开发规范

- 遵循 [PEP 8](https://pep8.org/) 代码风格
- 为新功能添加测试用例
- 更新相关文档
- 提交信息使用清晰的描述

### 代码质量

确保代码符合项目标准:

```bash
# 自动代码格式化
source .venv/bin/activate && autopep8 --in-place --aggressive --aggressive --max-line-length=79 src/ tests/ -r

# 运行所有质量检查
python -m pytest tests/ -v
source .venv/bin/activate && black src/ tests/
source .venv/bin/activate && flake8 src/ tests/ --max-line-length=79
```

---

## 🆘 获取帮助

### 自助资源

```bash
# 一键诊断
ais doctor

# 详细调试
ais --debug --version

# 查看所有帮助
ais help-all
```

### 社区支持

- 📚 [完整文档](docs/)
- 💬 [GitHub Discussions](https://github.com/kangvcar/ais/discussions) - 交流讨论
- 🐛 [GitHub Issues](https://github.com/kangvcar/ais/issues) - 问题反馈
- 📧 [邮件支持](mailto:ais@example.com) - 直接联系

### 报告问题

报告问题时请提供:
- 操作系统和版本
- Python版本 (`python3 --version`)
- AIS版本 (`ais --version`)
- 安装方式(pipx/Docker/源码)
- 完整错误信息
- 复现步骤

---

## 📝 许可证

本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。

---

## 🎉 鸣谢

感谢所有为这个项目做出贡献的开发者们!

### 技术栈

- **Python 3.8+** - 核心语言
- **Click** - 命令行界面框架
- **Rich** - 终端美化和格式化
- **SQLModel** - 数据库ORM
- **httpx** - HTTP客户端
- **pytest** - 测试框架

---

<div align="center">

**🎉 让AI成为你的终端伙伴,让命令行学习变得简单而有趣!**

如果觉得有用,请给我们点个 ⭐️ 支持!

[![Stars](https://img.shields.io/github/stars/kangvcar/ais?style=social)](https://github.com/kangvcar/ais/stargazers)
[![Forks](https://img.shields.io/github/forks/kangvcar/ais?style=social)](https://github.com/kangvcar/ais/network/members)

[回到顶部](#ais---ai智能终端助手)

</div>
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ais-terminal",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "AIS Team <ais@example.com>",
    "keywords": "ai, assistant, automation, cli, error-analysis, shell, terminal",
    "author": null,
    "author_email": "AIS Team <ais@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/b1/34/2ac07f1e4859983e524278a6f0cece289d1efb2ebbf453ced02e7ce30a62/ais_terminal-0.2.11.tar.gz",
    "platform": null,
    "description": "# AIS - AI\u667a\u80fd\u7ec8\u7aef\u52a9\u624b\n\n<div align=\"center\">\n\n**\u8ba9\u547d\u4ee4\u884c\u66f4\u667a\u80fd\uff0c\u8ba9\u5b66\u4e60\u66f4\u9ad8\u6548**\n\n[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://python.org)\n[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![Package Version](https://img.shields.io/badge/version-0.2.8-blue.svg)](https://github.com/kangvcar/ais)\n[![CI Status](https://img.shields.io/github/workflow/status/kangvcar/ais/CI)](https://github.com/kangvcar/ais/actions)\n\n[\ud83d\udcd6 \u5b89\u88c5\u6307\u5357](#installation) \u00b7 [\ud83d\ude80 \u5feb\u901f\u5f00\u59cb](#quickstart) \u00b7 [\ud83d\udcda \u6587\u6863](#documentation) \u00b7 [\ud83e\udd1d \u8d21\u732e](#contributing)\n\n</div>\n\n---\n\n## \u6982\u8ff0\n\nAIS\uff08AI-powered terminal assistant\uff09\u662f\u4e00\u4e2a\u9769\u547d\u6027\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u901a\u8fc7AI\u6280\u672f\u4e3a\u7ec8\u7aef\u7528\u6237\u63d0\u4f9b\u667a\u80fd\u9519\u8bef\u5206\u6790\u3001\u5b66\u4e60\u6307\u5bfc\u548c\u64cd\u4f5c\u5efa\u8bae\u3002\u5f53\u547d\u4ee4\u6267\u884c\u5931\u8d25\u65f6\uff0cAIS\u4f1a\u81ea\u52a8\u5206\u6790\u539f\u56e0\u5e76\u63d0\u4f9b\u89e3\u51b3\u65b9\u6848\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u89e3\u51b3\u95ee\u9898\u5e76\u5b66\u4e60\u76f8\u5173\u77e5\u8bc6\u3002\n\n### \ud83c\udf1f \u6838\u5fc3\u7279\u6027\n\n#### \ud83d\udd0d \u667a\u80fd\u9519\u8bef\u5206\u6790\n- **\u81ea\u52a8\u68c0\u6d4b** - \u547d\u4ee4\u5931\u8d25\u65f6\u81ea\u52a8\u5206\u6790\u9519\u8bef\u539f\u56e0\n- **\u4e0a\u4e0b\u6587\u611f\u77e5** - \u7ed3\u5408\u5f53\u524d\u76ee\u5f55\u3001Git\u72b6\u6001\u3001\u9879\u76ee\u7c7b\u578b\u7b49\u73af\u5883\u4fe1\u606f  \n- **\u4e2a\u6027\u5316\u5efa\u8bae** - \u57fa\u4e8e\u7528\u6237\u6280\u80fd\u6c34\u5e73\u63d0\u4f9b\u9488\u5bf9\u6027\u89e3\u51b3\u65b9\u6848\n- **\u5b89\u5168\u7b49\u7ea7** - \u6bcf\u4e2a\u5efa\u8bae\u90fd\u6807\u6ce8\u98ce\u9669\u7b49\u7ea7\uff0c\u786e\u4fdd\u64cd\u4f5c\u5b89\u5168\n\n#### \ud83d\udcda \u667a\u80fd\u5b66\u4e60\u7cfb\u7edf\n- **\u4ea4\u4e92\u5f0f\u6559\u5b66** - \u89e3\u91ca\"\u4e3a\u4ec0\u4e48\"\u800c\u4e0d\u53ea\u662f\"\u600e\u4e48\u505a\"\n- **\u4e3b\u9898\u5b66\u4e60** - \u6df1\u5165\u5b66\u4e60Git\u3001Docker\u3001Vim\u7b49\u4e13\u9898\u77e5\u8bc6\n- **\u6e10\u8fdb\u5f0f\u5185\u5bb9** - \u6839\u636e\u7528\u6237\u6c34\u5e73\u8c03\u6574\u6559\u5b66\u6df1\u5ea6\n- **\u5b9e\u8df5\u5bfc\u5411** - \u63d0\u4f9b\u53ef\u6267\u884c\u7684\u547d\u4ee4\u793a\u4f8b\u548c\u6700\u4f73\u5b9e\u8df5\n\n#### \ud83c\udfaf \u591a\u6a21\u5f0f\u4ea4\u4e92\n- **\u95ee\u7b54\u6a21\u5f0f** - `ais ask` \u5feb\u901f\u83b7\u53d6\u95ee\u9898\u7b54\u6848\n- **\u5b66\u4e60\u6a21\u5f0f** - `ais learn` \u7cfb\u7edf\u5b66\u4e60\u547d\u4ee4\u884c\u77e5\u8bc6\n- **\u5206\u6790\u6a21\u5f0f** - \u81ea\u52a8\u6216\u624b\u52a8\u5206\u6790\u547d\u4ee4\u9519\u8bef\n\n#### \ud83d\udd0c \u5f3a\u5927\u7684\u96c6\u6210\u80fd\u529b\n- **Shell\u96c6\u6210** - \u652f\u6301Bash\u3001Zsh\u81ea\u52a8\u9519\u8bef\u6355\u83b7\n- **\u591aAI\u652f\u6301** - \u517c\u5bb9OpenAI\u3001Ollama\u3001Claude\u7b49\u591a\u79cdAI\u670d\u52a1\n- **\u9690\u79c1\u4fdd\u62a4** - \u672c\u5730\u6570\u636e\u5b58\u50a8\uff0c\u654f\u611f\u4fe1\u606f\u81ea\u52a8\u8fc7\u6ee4\n- **\u8de8\u5e73\u53f0** - \u652f\u6301Linux\u3001macOS\n\n---\n\n## <a id=\"installation\"></a>\ud83d\udce6 \u5b89\u88c5\n\n### \u7cfb\u7edf\u8981\u6c42\n\n- **Python**: 3.8+ \uff08\u63a8\u8350 3.11+\uff09\n- **\u64cd\u4f5c\u7cfb\u7edf**: Linux, macOS\n- **\u7f51\u7edc**: \u9700\u8981\u7f51\u7edc\u8fde\u63a5\u4ee5\u4e0b\u8f7d\u4f9d\u8d56\u548cAI\u670d\u52a1\n- **\u7a7a\u95f4**: \u81f3\u5c11 100MB \u53ef\u7528\u7a7a\u95f4\n\n### \u26a1 \u4e00\u952e\u5b89\u88c5\uff08\u63a8\u8350\uff09\n\n```bash\n# \u667a\u80fd\u5b89\u88c5 - \u81ea\u52a8\u68c0\u6d4b\u73af\u5883\u5e76\u9009\u62e9\u6700\u4f73\u65b9\u5f0f\ncurl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/install.sh | bash\n```\n\n**\u5b89\u88c5\u811a\u672c\u4f1a\u81ea\u52a8\uff1a**\n- \ud83d\udd0d \u68c0\u6d4b\u5f53\u524d\u73af\u5883\uff08\u4e2a\u4eba/\u56e2\u961f/\u5bb9\u5668\uff09\n- \ud83c\udfaf \u9009\u62e9\u6700\u4f73\u5b89\u88c5\u65b9\u5f0f\uff08pipx\u7528\u6237\u7ea7/\u7cfb\u7edf\u7ea7/\u5bb9\u5668\u5316\uff09\n- \ud83d\udce6 \u5b89\u88c5pipx\u548cAIS\n- \ud83d\udd27 \u914d\u7f6eshell\u96c6\u6210\n- \u2705 \u6267\u884c\u5065\u5eb7\u68c0\u67e5\n\n### \ud83d\uddd1\ufe0f \u4e00\u952e\u5378\u8f7d\n\n```bash\n# \u667a\u80fd\u5378\u8f7d - \u81ea\u52a8\u68c0\u6d4b\u5b89\u88c5\u65b9\u5f0f\u5e76\u5b8c\u5168\u6e05\u7406\ncurl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/uninstall.sh | bash\n```\n\n**\u5378\u8f7d\u811a\u672c\u4f1a\u81ea\u52a8\uff1a**\n- \ud83d\udd0d \u68c0\u6d4bAIS\u5b89\u88c5\u65b9\u5f0f\uff08pipx\u7528\u6237\u7ea7/\u7cfb\u7edf\u7ea7\uff09\n- \ud83d\uddd1\ufe0f \u5378\u8f7dAIS\u5305\u548c\u4f9d\u8d56\n- \ud83e\uddf9 \u6e05\u7406shell\u96c6\u6210\u914d\u7f6e\n- \ud83d\udcc1 \u53ef\u9009\u62e9\u4fdd\u7559\u6216\u5220\u9664\u7528\u6237\u6570\u636e\n- \u2705 \u9a8c\u8bc1\u5378\u8f7d\u5b8c\u6210\n\n### \ud83c\udfaf \u5206\u573a\u666f\u5b89\u88c5\n\n<details>\n<summary><b>\ud83d\udc33 Docker\u5bb9\u5668\uff08\u63a8\u8350 - \u96f6\u914d\u7f6e\uff09</b></summary>\n\n```bash\n# \u76f4\u63a5\u8fd0\u884c\u6700\u65b0\u7248\u672c\ndocker run -it --rm kangvcar/ais:latest\n\n# \u6216\u8005\u4ea4\u4e92\u5f0f\u4f7f\u7528\ndocker run -it --rm -v $(pwd):/workspace kangvcar/ais:latest bash\n\n# \u4f7f\u7528Docker Compose\uff08\u63a8\u8350\u7528\u4e8e\u6301\u4e45\u5316\u914d\u7f6e\uff09\ncurl -O https://raw.githubusercontent.com/kangvcar/ais/main/docker-compose.yml\ndocker-compose up -d ais\ndocker-compose exec ais bash\n```\n\n**\u4f18\u52bf**: \u96f6\u914d\u7f6e\u542f\u52a8\uff0c\u73af\u5883\u9694\u79bb\uff0c\u8de8\u5e73\u53f0\u4e00\u81f4\u6027\uff0c\u652f\u6301ARM64\u67b6\u6784\n\n</details>\n\n<details>\n<summary><b>\ud83d\udc68\u200d\ud83d\udcbb \u4e2a\u4eba\u5f00\u53d1\u8005\uff08Python\u73af\u5883\uff09</b></summary>\n\n```bash\n# \u7528\u6237\u7ea7\u5b89\u88c5\uff08\u6700\u5b89\u5168\uff09\ncurl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/install.sh | bash -s -- --user\n\n# \u6216\u624b\u52a8\u5b89\u88c5\npipx install ais-terminal\nais setup\n```\n\n**\u4f18\u52bf**: \u6700\u9ad8\u5b89\u5168\u6027\uff0c\u72ec\u7acb\u865a\u62df\u73af\u5883\uff0c\u65e0\u9700sudo\u6743\u9650\n\n</details>\n\n<details>\n<summary><b>\ud83c\udfe2 \u56e2\u961f/\u4f01\u4e1a\u73af\u5883</b></summary>\n\n```bash\n# \u7cfb\u7edf\u7ea7\u5b89\u88c5\uff08\u6240\u6709\u7528\u6237\u53ef\u7528\uff09\ncurl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/install.sh | bash -s -- --system\n```\n\n**\u4f18\u52bf**: \u6240\u6709\u7528\u6237\u53ef\u7528\uff0c\u4fdd\u6301\u5b89\u5168\u9694\u79bb\uff0c\u96c6\u4e2d\u7ba1\u7406\u548c\u66f4\u65b0\n\n</details>\n\n<details>\n<summary><b>\ud83d\udc33 \u5bb9\u5668/\u4e91\u73af\u5883</b></summary>\n\n```bash\n# Docker\u5bb9\u5668\u5316\u5b89\u88c5\ncurl -sSL https://raw.githubusercontent.com/kangvcar/ais/main/scripts/docker-install.sh | bash\n\n# \u6216\u76f4\u63a5\u8fd0\u884c\ndocker run -it --rm ais-terminal:latest\n```\n\n**\u4f18\u52bf**: \u73af\u5883\u4e00\u81f4\u6027\uff0c\u5feb\u901f\u90e8\u7f72\uff0c\u6613\u4e8e\u6269\u5c55\uff0c\u5b8c\u5168\u9694\u79bb\n\n</details>\n\n<details>\n<summary><b>\ud83d\udd27 \u5f00\u53d1\u8005/\u8d21\u732e\u8005</b></summary>\n\n```bash\n# \u6e90\u7801\u5b89\u88c5\ngit clone https://github.com/kangvcar/ais.git\ncd ais\npipx install -e .\n\n# \u6216\u4f7f\u7528\u865a\u62df\u73af\u5883\npython -m venv .venv\nsource .venv/bin/activate\npip install -e \".[dev]\"\n```\n\n**\u4f18\u52bf**: \u5b9e\u65f6\u4fee\u6539\u6548\u679c\uff0c\u5b8c\u6574\u5f00\u53d1\u5de5\u5177\u94fe\uff0c\u6613\u4e8e\u8c03\u8bd5\n\n</details>\n\n### \u2705 \u9a8c\u8bc1\u5b89\u88c5\n\n```bash\n# \u68c0\u67e5\u7248\u672c\nais --version\n\n# \u6d4b\u8bd5\u57fa\u672c\u529f\u80fd\nais ask \"\u4f60\u597d\uff0cAIS\uff01\"\n\n# \u6d4b\u8bd5\u81ea\u52a8\u9519\u8bef\u5206\u6790\uff08\u6545\u610f\u8f93\u9519\u547d\u4ee4\uff09\nmkdirr /tmp/test\n```\n\n---\n\n## <a id=\"quickstart\"></a>\ud83d\ude80 \u5feb\u901f\u5f00\u59cb\n\n### \u57fa\u7840\u914d\u7f6e\n\n```bash\n# \u67e5\u770b\u5f53\u524d\u914d\u7f6e\nais config\n\n# \u8bbe\u7f6eAPI\u63d0\u4f9b\u5546\uff08\u53ef\u9009\uff09\nais config set provider=openai\nais config set api_key=\"your-api-key\"\n\n# \u8c03\u6574\u5206\u6790\u7ea7\u522b\nais config set analysis_level=detailed\n```\n\n### \u6838\u5fc3\u529f\u80fd\u4f53\u9a8c\n\n#### \ud83d\udcac AI\u95ee\u7b54\n```bash\nais ask \"\u5982\u4f55\u67e5\u770b\u7cfb\u7edf\u5185\u5b58\u4f7f\u7528\u60c5\u51b5\uff1f\"\nais ask \"Docker\u5bb9\u5668\u5982\u4f55\u6302\u8f7d\u76ee\u5f55\uff1f\"\nais ask \"Git\u5408\u5e76\u51b2\u7a81\u5982\u4f55\u89e3\u51b3\uff1f\"\n```\n\n#### \ud83d\udcd6 \u4e3b\u9898\u5b66\u4e60\n```bash\nais learn git      # \u5b66\u4e60Git\u7248\u672c\u63a7\u5236\nais learn docker   # \u5b66\u4e60\u5bb9\u5668\u5316\u6280\u672f\nais learn vim      # \u5b66\u4e60\u6587\u672c\u7f16\u8f91\u5668\nais learn ssh      # \u5b66\u4e60\u8fdc\u7a0b\u8fde\u63a5\n```\n\n#### \ud83d\udd0d \u667a\u80fd\u9519\u8bef\u5206\u6790\n```bash\n# \u8fd9\u4e9b\u9519\u8bef\u547d\u4ee4\u4f1a\u81ea\u52a8\u89e6\u53d1AI\u5206\u6790\npytho --version        # \u62fc\u5199\u9519\u8bef\nls /not/exist         # \u8def\u5f84\u4e0d\u5b58\u5728\ngit statuss           # \u547d\u4ee4\u9519\u8bef\n```\n\n#### \ud83d\udcca \u5386\u53f2\u7ba1\u7406\n```bash\nais history                    # \u67e5\u770b\u6700\u8fd1\u7684\u547d\u4ee4\u8bb0\u5f55\nais history --failed-only     # \u53ea\u663e\u793a\u5931\u8d25\u7684\u547d\u4ee4\nais history 3                 # \u67e5\u770b\u7b2c3\u6761\u8bb0\u5f55\u7684\u8be6\u7ec6\u5206\u6790\n```\n\n---\n\n## \ud83d\udcda \u8be6\u7ec6\u529f\u80fd\n\n### \u667a\u80fd\u95ee\u7b54 - `ais ask`\n\n\u5feb\u901f\u83b7\u53d6\u6280\u672f\u95ee\u9898\u7684\u7b54\u6848\uff0c\u652f\u6301\u7f16\u7a0b\u3001\u8fd0\u7ef4\u3001\u5de5\u5177\u4f7f\u7528\u7b49\u5404\u7c7b\u95ee\u9898\uff1a\n\n```bash\nais ask \"Linux\u6587\u4ef6\u6743\u9650755\u8868\u793a\u4ec0\u4e48\uff1f\"\nais ask \"\u5982\u4f55\u4f18\u5316Python\u811a\u672c\u6027\u80fd\uff1f\"\nais ask \"Nginx\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u7684\u6b65\u9aa4\uff1f\"\n```\n\n### \u77e5\u8bc6\u5b66\u4e60 - `ais learn`\n\n\u7cfb\u7edf\u5b66\u4e60\u547d\u4ee4\u884c\u5de5\u5177\u548c\u6982\u5ff5\uff1a\n\n```bash\nais learn              # \u67e5\u770b\u6240\u6709\u53ef\u5b66\u4e60\u4e3b\u9898\nais learn git          # Git\u7248\u672c\u63a7\u5236\u5b8c\u6574\u6559\u7a0b\nais learn docker       # \u5bb9\u5668\u5316\u6280\u672f\u6df1\u5ea6\u5b66\u4e60\nais learn linux        # Linux\u7cfb\u7edf\u7ba1\u7406\u57fa\u7840\n```\n\n### AI\u670d\u52a1\u5546\u7ba1\u7406\n\n\u652f\u6301\u591a\u79cdAI\u670d\u52a1\u5546\uff0c\u7075\u6d3b\u5207\u6362\uff1a\n\n```bash\n# \u67e5\u770b\u53ef\u7528\u670d\u52a1\u5546\nais provider-list\n\n# \u6dfb\u52a0\u672c\u5730Ollama\u670d\u52a1\nais provider-add ollama \\\n  --url http://localhost:11434/v1/chat/completions \\\n  --model llama3\n\n# \u5207\u6362\u670d\u52a1\u5546\nais provider-use ollama\n```\n\n### Shell\u96c6\u6210\u914d\u7f6e\n\nAIS\u652f\u6301\u81ea\u52a8\u9519\u8bef\u5206\u6790\uff0c\u9700\u8981\u914d\u7f6eShell\u96c6\u6210\uff1a\n\n```bash\n# \u81ea\u52a8\u914d\u7f6e\nais setup\n\n# \u6d4b\u8bd5\u96c6\u6210\u662f\u5426\u6b63\u5e38\u5de5\u4f5c\nais test-integration\n```\n\n---\n\n## \u2699\ufe0f \u9ad8\u7ea7\u914d\u7f6e\n\n### \u4e0a\u4e0b\u6587\u6536\u96c6\u8bbe\u7f6e\n\n\u63a7\u5236\u9519\u8bef\u5206\u6790\u65f6\u6536\u96c6\u7684\u4e0a\u4e0b\u6587\u4fe1\u606f\u91cf\uff1a\n\n```bash\n# \u8bbe\u7f6e\u4e0a\u4e0b\u6587\u7ea7\u522b\nais config set context_level=minimal    # \u57fa\u672c\u4fe1\u606f\nais config set context_level=standard   # \u6807\u51c6\u4fe1\u606f\uff08\u9ed8\u8ba4\uff09\nais config set context_level=detailed   # \u8be6\u7ec6\u4fe1\u606f\n\n# \u63a7\u5236\u81ea\u52a8\u5206\u6790\nais config set auto_analysis=true       # \u5f00\u542f\u81ea\u52a8\u5206\u6790\nais config set auto_analysis=false      # \u5173\u95ed\u81ea\u52a8\u5206\u6790\n```\n\n### \u9690\u79c1\u548c\u5b89\u5168\n\nAIS\u91cd\u89c6\u7528\u6237\u9690\u79c1\u548c\u6570\u636e\u5b89\u5168\uff1a\n\n- **\u672c\u5730\u5b58\u50a8** - \u6240\u6709\u6570\u636e\u5b58\u50a8\u5728\u672c\u5730SQLite\u6570\u636e\u5e93\n- **\u654f\u611f\u4fe1\u606f\u8fc7\u6ee4** - \u81ea\u52a8\u8fc7\u6ee4\u5bc6\u7801\u3001\u5bc6\u94a5\u7b49\u654f\u611f\u4fe1\u606f\n- **\u53ef\u914d\u7f6e\u7684\u4e0a\u4e0b\u6587\u7ea7\u522b** - \u7528\u6237\u53ef\u63a7\u5236\u4fe1\u606f\u6536\u96c6\u8303\u56f4\n- **\u5f00\u6e90\u900f\u660e** - \u5b8c\u5168\u5f00\u6e90\uff0c\u4ee3\u7801\u516c\u5f00\u900f\u660e\n\n---\n\n## \ud83c\udfd7\ufe0f \u9879\u76ee\u67b6\u6784\n\n```\nais/\n\u251c\u2500\u2500 src/ais/              # \u4e3b\u8981\u6e90\u4ee3\u7801\n\u2502   \u251c\u2500\u2500 cli/              # CLI\u754c\u9762\u6a21\u5757\n\u2502   \u2502   \u251c\u2500\u2500 main.py       # \u4e3bCLI\u5165\u53e3\n\u2502   \u2502   \u2514\u2500\u2500 interactive.py # \u4ea4\u4e92\u5f0f\u83dc\u5355\n\u2502   \u251c\u2500\u2500 core/             # \u6838\u5fc3\u529f\u80fd\u6a21\u5757\n\u2502   \u2502   \u251c\u2500\u2500 ai.py         # AI\u4ea4\u4e92\u6a21\u5757\n\u2502   \u2502   \u251c\u2500\u2500 config.py     # \u914d\u7f6e\u7ba1\u7406\n\u2502   \u2502   \u251c\u2500\u2500 context.py    # \u4e0a\u4e0b\u6587\u6536\u96c6\n\u2502   \u2502   \u2514\u2500\u2500 database.py   # \u6570\u636e\u5e93\u64cd\u4f5c\n\u2502   \u251c\u2500\u2500 ui/               # \u7528\u6237\u754c\u9762\n\u2502   \u2502   \u2514\u2500\u2500 panels.py     # \u663e\u793a\u9762\u677f\n\u2502   \u2514\u2500\u2500 utils/            # \u5de5\u5177\u51fd\u6570\n\u251c\u2500\u2500 scripts/              # \u5b89\u88c5\u548c\u90e8\u7f72\u811a\u672c\n\u251c\u2500\u2500 tests/                # \u6d4b\u8bd5\u6587\u4ef6\n\u251c\u2500\u2500 docs/                 # \u6587\u6863\u76ee\u5f55\n\u2514\u2500\u2500 pyproject.toml        # \u9879\u76ee\u914d\u7f6e\n```\n\n### \u6838\u5fc3\u6a21\u5757\n\n- **CLI\u6a21\u5757** (`src/ais/cli/`): \u547d\u4ee4\u884c\u63a5\u53e3\u548c\u4ea4\u4e92\u5f0f\u754c\u9762\n- **Core\u6a21\u5757** (`src/ais/core/`): AI\u670d\u52a1\u96c6\u6210\u3001\u914d\u7f6e\u7ba1\u7406\u3001\u4e0a\u4e0b\u6587\u6536\u96c6\u3001\u6570\u636e\u5e93\u64cd\u4f5c\n- **UI\u6a21\u5757** (`src/ais/ui/`): Rich\u5e93\u663e\u793a\u9762\u677f\u548c\u683c\u5f0f\u5316\n\n---\n\n## <a id=\"documentation\"></a>\ud83d\udcda \u6587\u6863\n\n### \u8be6\u7ec6\u6307\u5357\n\n- \ud83d\udcd6 [\u5b89\u88c5\u6307\u5357](docs/INSTALLATION.md) - \u5404\u79cd\u73af\u5883\u7684\u8be6\u7ec6\u5b89\u88c5\u8bf4\u660e\n- \ud83d\udc33 [Docker\u90e8\u7f72\u6307\u5357](docs/DOCKER_GUIDE.md) - \u5bb9\u5668\u5316\u90e8\u7f72\n- \ud83c\udfe2 [\u4f01\u4e1a\u90e8\u7f72\u6307\u5357](docs/DEPLOYMENT_GUIDE.md) - \u751f\u4ea7\u73af\u5883\u90e8\u7f72\n- \ud83d\udd27 [\u5f00\u53d1\u6307\u5357](docs/DEVELOPMENT.md) - \u5f00\u53d1\u73af\u5883\u8bbe\u7f6e\u548c\u8d21\u732e\u4ee3\u7801\n\n### API\u6587\u6863\n\n\u6240\u6709\u547d\u4ee4\u90fd\u652f\u6301\u8be6\u7ec6\u5e2e\u52a9\uff1a\n\n```bash\nais ask --help-detail         # AI\u95ee\u7b54\u8be6\u7ec6\u8bf4\u660e\nais learn --help-detail       # \u5b66\u4e60\u529f\u80fd\u8be6\u7ec6\u8bf4\u660e\nais config --help-context     # \u914d\u7f6e\u7ba1\u7406\u8be6\u7ec6\u8bf4\u660e\nais history --help-detail     # \u5386\u53f2\u8bb0\u5f55\u8be6\u7ec6\u8bf4\u660e\nais provider-add --help-detail # \u670d\u52a1\u5546\u7ba1\u7406\u8be6\u7ec6\u8bf4\u660e\n```\n\n---\n\n## \ud83e\uddea \u5f00\u53d1\u548c\u6d4b\u8bd5\n\n### \u5f00\u53d1\u73af\u5883\u8bbe\u7f6e\n\n```bash\n# \u514b\u9686\u4ed3\u5e93\ngit clone https://github.com/kangvcar/ais.git\ncd ais\n\n# \u521b\u5efa\u865a\u62df\u73af\u5883\npython3 -m venv .venv\nsource .venv/bin/activate\n\n# \u5b89\u88c5\u5f00\u53d1\u7248\u672c\u548c\u4f9d\u8d56\npip install -e \".[dev]\"\n\n# \u8bbe\u7f6epre-commit\npre-commit install\n```\n\n### \u8fd0\u884c\u6d4b\u8bd5\n\n```bash\n# \u8fd0\u884c\u6240\u6709\u6d4b\u8bd5\npython -m pytest tests/ -v\n\n# \u8fd0\u884c\u8986\u76d6\u7387\u6d4b\u8bd5\npython -m pytest --cov=ais tests/\n\n# \u4ee3\u7801\u8d28\u91cf\u68c0\u67e5\nsource .venv/bin/activate && black src/ tests/\nsource .venv/bin/activate && flake8 src/ tests/ --max-line-length=79\n```\n\n---\n\n## <a id=\"contributing\"></a>\ud83e\udd1d \u8d21\u732e\u6307\u5357\n\n\u6211\u4eec\u6b22\u8fce\u6240\u6709\u5f62\u5f0f\u7684\u8d21\u732e\uff01\n\n### \u5982\u4f55\u53c2\u4e0e\n\n1. **Fork** \u8fd9\u4e2a\u4ed3\u5e93\n2. \u521b\u5efa\u4f60\u7684\u7279\u6027\u5206\u652f (`git checkout -b feature/AmazingFeature`)\n3. \u63d0\u4ea4\u4f60\u7684\u66f4\u6539 (`git commit -m 'Add some AmazingFeature'`)\n4. \u63a8\u9001\u5230\u5206\u652f (`git push origin feature/AmazingFeature`)\n5. \u6253\u5f00\u4e00\u4e2a **Pull Request**\n\n### \u5f00\u53d1\u89c4\u8303\n\n- \u9075\u5faa [PEP 8](https://pep8.org/) \u4ee3\u7801\u98ce\u683c\n- \u4e3a\u65b0\u529f\u80fd\u6dfb\u52a0\u6d4b\u8bd5\u7528\u4f8b\n- \u66f4\u65b0\u76f8\u5173\u6587\u6863\n- \u63d0\u4ea4\u4fe1\u606f\u4f7f\u7528\u6e05\u6670\u7684\u63cf\u8ff0\n\n### \u4ee3\u7801\u8d28\u91cf\n\n\u786e\u4fdd\u4ee3\u7801\u7b26\u5408\u9879\u76ee\u6807\u51c6\uff1a\n\n```bash\n# \u81ea\u52a8\u4ee3\u7801\u683c\u5f0f\u5316\nsource .venv/bin/activate && autopep8 --in-place --aggressive --aggressive --max-line-length=79 src/ tests/ -r\n\n# \u8fd0\u884c\u6240\u6709\u8d28\u91cf\u68c0\u67e5\npython -m pytest tests/ -v\nsource .venv/bin/activate && black src/ tests/\nsource .venv/bin/activate && flake8 src/ tests/ --max-line-length=79\n```\n\n---\n\n## \ud83c\udd98 \u83b7\u53d6\u5e2e\u52a9\n\n### \u81ea\u52a9\u8d44\u6e90\n\n```bash\n# \u4e00\u952e\u8bca\u65ad\nais doctor\n\n# \u8be6\u7ec6\u8c03\u8bd5\nais --debug --version\n\n# \u67e5\u770b\u6240\u6709\u5e2e\u52a9\nais help-all\n```\n\n### \u793e\u533a\u652f\u6301\n\n- \ud83d\udcda [\u5b8c\u6574\u6587\u6863](docs/)\n- \ud83d\udcac [GitHub Discussions](https://github.com/kangvcar/ais/discussions) - \u4ea4\u6d41\u8ba8\u8bba\n- \ud83d\udc1b [GitHub Issues](https://github.com/kangvcar/ais/issues) - \u95ee\u9898\u53cd\u9988\n- \ud83d\udce7 [\u90ae\u4ef6\u652f\u6301](mailto:ais@example.com) - \u76f4\u63a5\u8054\u7cfb\n\n### \u62a5\u544a\u95ee\u9898\n\n\u62a5\u544a\u95ee\u9898\u65f6\u8bf7\u63d0\u4f9b\uff1a\n- \u64cd\u4f5c\u7cfb\u7edf\u548c\u7248\u672c\n- Python\u7248\u672c (`python3 --version`)\n- AIS\u7248\u672c (`ais --version`)\n- \u5b89\u88c5\u65b9\u5f0f\uff08pipx/Docker/\u6e90\u7801\uff09\n- \u5b8c\u6574\u9519\u8bef\u4fe1\u606f\n- \u590d\u73b0\u6b65\u9aa4\n\n---\n\n## \ud83d\udcdd \u8bb8\u53ef\u8bc1\n\n\u672c\u9879\u76ee\u91c7\u7528 MIT \u8bb8\u53ef\u8bc1 - \u67e5\u770b [LICENSE](LICENSE) \u6587\u4ef6\u4e86\u89e3\u8be6\u60c5\u3002\n\n---\n\n## \ud83c\udf89 \u9e23\u8c22\n\n\u611f\u8c22\u6240\u6709\u4e3a\u8fd9\u4e2a\u9879\u76ee\u505a\u51fa\u8d21\u732e\u7684\u5f00\u53d1\u8005\u4eec\uff01\n\n### \u6280\u672f\u6808\n\n- **Python 3.8+** - \u6838\u5fc3\u8bed\u8a00\n- **Click** - \u547d\u4ee4\u884c\u754c\u9762\u6846\u67b6\n- **Rich** - \u7ec8\u7aef\u7f8e\u5316\u548c\u683c\u5f0f\u5316\n- **SQLModel** - \u6570\u636e\u5e93ORM\n- **httpx** - HTTP\u5ba2\u6237\u7aef\n- **pytest** - \u6d4b\u8bd5\u6846\u67b6\n\n---\n\n<div align=\"center\">\n\n**\ud83c\udf89 \u8ba9AI\u6210\u4e3a\u4f60\u7684\u7ec8\u7aef\u4f19\u4f34\uff0c\u8ba9\u547d\u4ee4\u884c\u5b66\u4e60\u53d8\u5f97\u7b80\u5355\u800c\u6709\u8da3\uff01**\n\n\u5982\u679c\u89c9\u5f97\u6709\u7528\uff0c\u8bf7\u7ed9\u6211\u4eec\u70b9\u4e2a \u2b50\ufe0f \u652f\u6301\uff01\n\n[![Stars](https://img.shields.io/github/stars/kangvcar/ais?style=social)](https://github.com/kangvcar/ais/stargazers)\n[![Forks](https://img.shields.io/github/forks/kangvcar/ais?style=social)](https://github.com/kangvcar/ais/network/members)\n\n[\u56de\u5230\u9876\u90e8](#ais---ai\u667a\u80fd\u7ec8\u7aef\u52a9\u624b)\n\n</div>",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "AI\u667a\u80fd\u7ec8\u7aef\u52a9\u624b - \u8ba9\u547d\u4ee4\u884c\u66f4\u667a\u80fd\uff0c\u8ba9\u5b66\u4e60\u66f4\u9ad8\u6548",
    "version": "0.2.11",
    "project_urls": {
        "Changelog": "https://github.com/kangvcar/ais/blob/main/docs/CHANGELOG.md",
        "Documentation": "https://github.com/kangvcar/ais/blob/main/docs/README.md",
        "Homepage": "https://github.com/kangvcar/ais",
        "Issues": "https://github.com/kangvcar/ais/issues",
        "Repository": "https://github.com/kangvcar/ais"
    },
    "split_keywords": [
        "ai",
        " assistant",
        " automation",
        " cli",
        " error-analysis",
        " shell",
        " terminal"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c7a1b19793cd39d7ae30485eebf9615e54e9947df82b15bb94c605f60c998695",
                "md5": "dfeec2453cf13958317b0047987fd6c4",
                "sha256": "257e820123529e694e6bd4c3ac93241958daabbd31b87c48a3938c24288ce9e8"
            },
            "downloads": -1,
            "filename": "ais_terminal-0.2.11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dfeec2453cf13958317b0047987fd6c4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 45057,
            "upload_time": "2025-07-15T05:25:50",
            "upload_time_iso_8601": "2025-07-15T05:25:50.289458Z",
            "url": "https://files.pythonhosted.org/packages/c7/a1/b19793cd39d7ae30485eebf9615e54e9947df82b15bb94c605f60c998695/ais_terminal-0.2.11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b1342ac07f1e4859983e524278a6f0cece289d1efb2ebbf453ced02e7ce30a62",
                "md5": "e009e3ec08540a4a261a27cd622e61ff",
                "sha256": "8ba91c0310effb11265811f8d22ea08e08bca810a21b249b30642e381e6a20b0"
            },
            "downloads": -1,
            "filename": "ais_terminal-0.2.11.tar.gz",
            "has_sig": false,
            "md5_digest": "e009e3ec08540a4a261a27cd622e61ff",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 72863,
            "upload_time": "2025-07-15T05:25:51",
            "upload_time_iso_8601": "2025-07-15T05:25:51.938312Z",
            "url": "https://files.pythonhosted.org/packages/b1/34/2ac07f1e4859983e524278a6f0cece289d1efb2ebbf453ced02e7ce30a62/ais_terminal-0.2.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-15 05:25:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kangvcar",
    "github_project": "ais",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ais-terminal"
}
        
Elapsed time: 1.22104s