autoterminal


Nameautoterminal JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/wds-dxh/autoterminal
Summary智能终端工具,基于LLM将自然语言转换为终端命令(create by claude 4 sonnet)
upload_time2025-08-15 08:30:15
maintainerNone
docs_urlNone
authorwds
requires_python>=3.10
licenseMIT
keywords terminal ai llm command-line automation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AutoTerminal - 智能终端工具

AutoTerminal 是一个基于大语言模型的智能终端工具,可以将自然语言转换为终端命令,提高工作效率。

## 功能特点

- 🧠 基于LLM的智能命令生成
- 🔐 安全的命令执行机制(需要用户确认)
- ⚙️ 灵活的配置管理
- 🌍 中文支持
- 🔄 支持多种LLM模型

## 安装

### 方法1:使用uv(开发模式)
确保已安装 `uv` 工具,然后运行:

```bash
uv sync
```

### 方法2:使用pip安装到用户目录(推荐给最终用户)
```bash
pip install --user .
```

安装后可以直接使用 `at` 命令:

```bash
at "查看当前目录"
```

### 卸载
```bash
pip uninstall autoterminal
```

### 全局安装(需要管理员权限)
```bash
sudo pip install .
```

## 配置

首次运行时,程序会引导您完成配置:

1. API密钥
2. Base URL
3. 模型名称

配置信息会保存在 `config.json` 文件中。

## 使用方法

### 方法1:使用uv run
```bash
uv run python autoterminal/main.py "查看当前目录下的所有文件"
```

### 方法2:安装后使用at命令
```bash
uv pip install -e .
at "查看当前目录下的所有文件"
```

程序会生成终端命令并显示提示,用户按回车后程序会直接执行该命令。

## 示例

```
$ at "列出当前目录下的所有文件"
$ ls -a
Press Enter to execute...
.  ..  autoterminal  config.json  .git  .gitignore  pyproject.toml  .python-version  README.md  uv.lock
```

## 支持的LLM

- OpenAI GPT系列
- 兼容OpenAI API的其他模型(如阿里云、腾讯云等)

## 项目结构

```
autoterminal/
├── __init__.py             # 包初始化文件
├── main.py                 # 主程序入口
├── config/                 # 配置管理模块
│   ├── __init__.py         # 包初始化文件
│   ├── loader.py           # 配置加载器
│   └── manager.py          # 配置管理器
├── llm/                    # LLM相关模块
│   ├── __init__.py         # 包初始化文件
│   └── client.py           # LLM客户端
├── utils/                  # 工具函数
│   ├── __init__.py         # 包初始化文件
│   └── helpers.py          # 辅助函数
├── pyproject.toml          # 项目配置
├── config.json             # 用户配置文件
├── .gitignore
└── README.md

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/wds-dxh/autoterminal",
    "name": "autoterminal",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "terminal, ai, llm, command-line, automation",
    "author": "wds",
    "author_email": "wds2dxh <wdsnpshy@163.com>",
    "download_url": "https://files.pythonhosted.org/packages/78/9e/086e7823e58785060bb0905a0f76977a3084f3e4fb5f1bf5faab101ea48e/autoterminal-0.1.0.tar.gz",
    "platform": null,
    "description": "# AutoTerminal - \u667a\u80fd\u7ec8\u7aef\u5de5\u5177\n\nAutoTerminal \u662f\u4e00\u4e2a\u57fa\u4e8e\u5927\u8bed\u8a00\u6a21\u578b\u7684\u667a\u80fd\u7ec8\u7aef\u5de5\u5177\uff0c\u53ef\u4ee5\u5c06\u81ea\u7136\u8bed\u8a00\u8f6c\u6362\u4e3a\u7ec8\u7aef\u547d\u4ee4\uff0c\u63d0\u9ad8\u5de5\u4f5c\u6548\u7387\u3002\n\n## \u529f\u80fd\u7279\u70b9\n\n- \ud83e\udde0 \u57fa\u4e8eLLM\u7684\u667a\u80fd\u547d\u4ee4\u751f\u6210\n- \ud83d\udd10 \u5b89\u5168\u7684\u547d\u4ee4\u6267\u884c\u673a\u5236\uff08\u9700\u8981\u7528\u6237\u786e\u8ba4\uff09\n- \u2699\ufe0f \u7075\u6d3b\u7684\u914d\u7f6e\u7ba1\u7406\n- \ud83c\udf0d \u4e2d\u6587\u652f\u6301\n- \ud83d\udd04 \u652f\u6301\u591a\u79cdLLM\u6a21\u578b\n\n## \u5b89\u88c5\n\n### \u65b9\u6cd51\uff1a\u4f7f\u7528uv\uff08\u5f00\u53d1\u6a21\u5f0f\uff09\n\u786e\u4fdd\u5df2\u5b89\u88c5 `uv` \u5de5\u5177\uff0c\u7136\u540e\u8fd0\u884c\uff1a\n\n```bash\nuv sync\n```\n\n### \u65b9\u6cd52\uff1a\u4f7f\u7528pip\u5b89\u88c5\u5230\u7528\u6237\u76ee\u5f55\uff08\u63a8\u8350\u7ed9\u6700\u7ec8\u7528\u6237\uff09\n```bash\npip install --user .\n```\n\n\u5b89\u88c5\u540e\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 `at` \u547d\u4ee4\uff1a\n\n```bash\nat \"\u67e5\u770b\u5f53\u524d\u76ee\u5f55\"\n```\n\n### \u5378\u8f7d\n```bash\npip uninstall autoterminal\n```\n\n### \u5168\u5c40\u5b89\u88c5\uff08\u9700\u8981\u7ba1\u7406\u5458\u6743\u9650\uff09\n```bash\nsudo pip install .\n```\n\n## \u914d\u7f6e\n\n\u9996\u6b21\u8fd0\u884c\u65f6\uff0c\u7a0b\u5e8f\u4f1a\u5f15\u5bfc\u60a8\u5b8c\u6210\u914d\u7f6e\uff1a\n\n1. API\u5bc6\u94a5\n2. Base URL\n3. \u6a21\u578b\u540d\u79f0\n\n\u914d\u7f6e\u4fe1\u606f\u4f1a\u4fdd\u5b58\u5728 `config.json` \u6587\u4ef6\u4e2d\u3002\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n### \u65b9\u6cd51\uff1a\u4f7f\u7528uv run\n```bash\nuv run python autoterminal/main.py \"\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6\"\n```\n\n### \u65b9\u6cd52\uff1a\u5b89\u88c5\u540e\u4f7f\u7528at\u547d\u4ee4\n```bash\nuv pip install -e .\nat \"\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6\"\n```\n\n\u7a0b\u5e8f\u4f1a\u751f\u6210\u7ec8\u7aef\u547d\u4ee4\u5e76\u663e\u793a\u63d0\u793a\uff0c\u7528\u6237\u6309\u56de\u8f66\u540e\u7a0b\u5e8f\u4f1a\u76f4\u63a5\u6267\u884c\u8be5\u547d\u4ee4\u3002\n\n## \u793a\u4f8b\n\n```\n$ at \"\u5217\u51fa\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6\"\n$ ls -a\nPress Enter to execute...\n.  ..  autoterminal  config.json  .git  .gitignore  pyproject.toml  .python-version  README.md  uv.lock\n```\n\n## \u652f\u6301\u7684LLM\n\n- OpenAI GPT\u7cfb\u5217\n- \u517c\u5bb9OpenAI API\u7684\u5176\u4ed6\u6a21\u578b\uff08\u5982\u963f\u91cc\u4e91\u3001\u817e\u8baf\u4e91\u7b49\uff09\n\n## \u9879\u76ee\u7ed3\u6784\n\n```\nautoterminal/\n\u251c\u2500\u2500 __init__.py             # \u5305\u521d\u59cb\u5316\u6587\u4ef6\n\u251c\u2500\u2500 main.py                 # \u4e3b\u7a0b\u5e8f\u5165\u53e3\n\u251c\u2500\u2500 config/                 # \u914d\u7f6e\u7ba1\u7406\u6a21\u5757\n\u2502   \u251c\u2500\u2500 __init__.py         # \u5305\u521d\u59cb\u5316\u6587\u4ef6\n\u2502   \u251c\u2500\u2500 loader.py           # \u914d\u7f6e\u52a0\u8f7d\u5668\n\u2502   \u2514\u2500\u2500 manager.py          # \u914d\u7f6e\u7ba1\u7406\u5668\n\u251c\u2500\u2500 llm/                    # LLM\u76f8\u5173\u6a21\u5757\n\u2502   \u251c\u2500\u2500 __init__.py         # \u5305\u521d\u59cb\u5316\u6587\u4ef6\n\u2502   \u2514\u2500\u2500 client.py           # LLM\u5ba2\u6237\u7aef\n\u251c\u2500\u2500 utils/                  # \u5de5\u5177\u51fd\u6570\n\u2502   \u251c\u2500\u2500 __init__.py         # \u5305\u521d\u59cb\u5316\u6587\u4ef6\n\u2502   \u2514\u2500\u2500 helpers.py          # \u8f85\u52a9\u51fd\u6570\n\u251c\u2500\u2500 pyproject.toml          # \u9879\u76ee\u914d\u7f6e\n\u251c\u2500\u2500 config.json             # \u7528\u6237\u914d\u7f6e\u6587\u4ef6\n\u251c\u2500\u2500 .gitignore\n\u2514\u2500\u2500 README.md\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u667a\u80fd\u7ec8\u7aef\u5de5\u5177\uff0c\u57fa\u4e8eLLM\u5c06\u81ea\u7136\u8bed\u8a00\u8f6c\u6362\u4e3a\u7ec8\u7aef\u547d\u4ee4(create by claude 4 sonnet)",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/wds-dxh/autoterminal",
        "Issues": "https://github.com/wds-dxh/autoterminal/issues",
        "Repository": "https://github.com/wds-dxh/autoterminal"
    },
    "split_keywords": [
        "terminal",
        " ai",
        " llm",
        " command-line",
        " automation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "75be333c6524efdf91a38d8988dd7a7cab7ce4a568214e57fcac3a6b1f00c411",
                "md5": "78efdadcd866adb1fff08a7398b992b0",
                "sha256": "935f7c647edd6cc65a19f0ce7f65f3a3f868a17064393bf13ac32c96c69cfbf9"
            },
            "downloads": -1,
            "filename": "autoterminal-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "78efdadcd866adb1fff08a7398b992b0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 8187,
            "upload_time": "2025-08-15T08:30:12",
            "upload_time_iso_8601": "2025-08-15T08:30:12.336113Z",
            "url": "https://files.pythonhosted.org/packages/75/be/333c6524efdf91a38d8988dd7a7cab7ce4a568214e57fcac3a6b1f00c411/autoterminal-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "789e086e7823e58785060bb0905a0f76977a3084f3e4fb5f1bf5faab101ea48e",
                "md5": "ca5c7156b975d06d57d8798b364b79a9",
                "sha256": "7a04f21f00901cfc2d84b9e4188b31acbf31442a6d130b4a8d8772d48f2a16cb"
            },
            "downloads": -1,
            "filename": "autoterminal-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ca5c7156b975d06d57d8798b364b79a9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 7609,
            "upload_time": "2025-08-15T08:30:15",
            "upload_time_iso_8601": "2025-08-15T08:30:15.377657Z",
            "url": "https://files.pythonhosted.org/packages/78/9e/086e7823e58785060bb0905a0f76977a3084f3e4fb5f1bf5faab101ea48e/autoterminal-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-15 08:30:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "wds-dxh",
    "github_project": "autoterminal",
    "github_not_found": true,
    "lcname": "autoterminal"
}
        
wds
Elapsed time: 0.70535s