clash-cli


Nameclash-cli JSON
Version 1.0.5 PyPI version JSON
download
home_pageNone
SummaryClash的linux命令行实现
upload_time2025-07-27 20:11:34
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords clash proxy vpn linux systemd mihomo
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # clash-cli

![PyPI](https://img.shields.io/pypi/v/clash-cli)
![Python](https://img.shields.io/pypi/pyversions/clash-cli)
![License](https://img.shields.io/pypi/l/clash-cli)

Linux 一键安装 Clash 代理工具的 Python 实现版本。

## ✨ 特性

- 🚀 **一键安装**:`pip install clash-cli` 即可安装
- 🔧 **统一管理**:完整的命令行界面
- 🌐 **订阅转换**:内置订阅转换功能
- 🎯 **多内核支持**:支持 mihomo 和 clash 内核
- 🔒 **系统集成**:systemd 服务管理
- 🌍 **Web 控制台**:可视化管理界面
- 📱 **Tun 模式**:全局代理支持

## 📦 安装

```bash
pip install clash-cli
```

## 🚀 快速开始

### 1. 安装 Clash

```bash
# 使用默认 mihomo 内核安装
sudo clash-cli install

# 指定订阅链接安装
sudo clash-cli install -s "https://your-subscription-url.com"

# 使用 clash 内核安装
sudo clash-cli install --kernel clash
```

### 2. 基本使用

```bash
# 开启代理
clash-cli on

# 关闭代理
clash-cli off

# 查看状态
clash-cli status

# 查看 Web 控制台
clash-cli ui
```

## 📖 命令参考

### 基本命令

```bash
clash-cli install [--kernel mihomo|clash] [-s SUBSCRIPTION]  # 安装
clash-cli uninstall                                          # 卸载
clash-cli on                                                 # 开启代理
clash-cli off                                                # 关闭代理
clash-cli status [-n LINES] [-f]                            # 查看状态
clash-cli ui                                                 # Web 控制台信息
clash-cli info                                               # 系统信息
```

### 系统代理管理

```bash
clash-cli proxy          # 查看代理状态
clash-cli proxy on       # 开启系统代理
clash-cli proxy off      # 关闭系统代理
```

### Web 控制台

```bash
clash-cli secret [PASSWORD]    # 设置/查看密钥
```

### Tun 模式

```bash
clash-cli tun            # 查看 Tun 状态
clash-cli tun on         # 开启 Tun 模式
clash-cli tun off        # 关闭 Tun 模式
```

### 订阅管理

```bash
clash-cli update                    # 查看当前订阅
clash-cli update sync [URL]        # 更新订阅
clash-cli update log [-n LINES]    # 查看更新日志
```

### 配置管理

```bash
clash-cli mixin          # 查看 Mixin 配置
clash-cli mixin edit     # 编辑 Mixin 配置
clash-cli mixin runtime  # 查看运行时配置
```

## 🔧 高级配置

### Mixin 配置

Mixin 配置允许您自定义 Clash 设置,这些设置会与订阅配置合并:

```yaml
# 系统代理
system-proxy:
  enable: true

# Web 控制台
external-controller: "0.0.0.0:9090"
secret: "your-password"

# 自定义规则
rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - DOMAIN-KEYWORD,google,PROXY

# Tun 模式
tun:
  enable: true
  stack: system
```

### 环境要求

- **操作系统**:Linux (支持 systemd)
- **Python**:3.8+
- **权限**:root 或 sudo
- **架构**:x86_64, aarch64, armv7

## 🤝 贡献

欢迎提交 Issue 和 Pull Request!

## 📄 许可证

MIT License

## 🙏 致谢

- [mihomo](https://github.com/MetaCubeX/mihomo) - Clash 内核
- [subconverter](https://github.com/tindy2013/subconverter) - 订阅转换
- [yacd](https://github.com/haishanh/yacd) - Web 控制台
- [click](https://click.palletsprojects.com/) - 命令行框架
- [rich](https://rich.readthedocs.io/) - 终端美化

---

<div align="center">

**如果这个项目对您有帮助,请给个 ⭐ Star 支持一下!**

Made with ❤️ by [whillhill](https://github.com/whillhill)

</div>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "clash-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "whillhill <ooooofish@126.com>",
    "keywords": "clash, proxy, vpn, linux, systemd, mihomo",
    "author": null,
    "author_email": "whillhill <ooooofish@126.com>",
    "download_url": "https://files.pythonhosted.org/packages/5c/f0/973c7f6988ea22209c90396e4c82ef0e7db357822de181903c3f784ddb8f/clash_cli-1.0.5.tar.gz",
    "platform": null,
    "description": "# clash-cli\r\n\r\n![PyPI](https://img.shields.io/pypi/v/clash-cli)\r\n![Python](https://img.shields.io/pypi/pyversions/clash-cli)\r\n![License](https://img.shields.io/pypi/l/clash-cli)\r\n\r\nLinux \u4e00\u952e\u5b89\u88c5 Clash \u4ee3\u7406\u5de5\u5177\u7684 Python \u5b9e\u73b0\u7248\u672c\u3002\r\n\r\n## \u2728 \u7279\u6027\r\n\r\n- \ud83d\ude80 **\u4e00\u952e\u5b89\u88c5**\uff1a`pip install clash-cli` \u5373\u53ef\u5b89\u88c5\r\n- \ud83d\udd27 **\u7edf\u4e00\u7ba1\u7406**\uff1a\u5b8c\u6574\u7684\u547d\u4ee4\u884c\u754c\u9762\r\n- \ud83c\udf10 **\u8ba2\u9605\u8f6c\u6362**\uff1a\u5185\u7f6e\u8ba2\u9605\u8f6c\u6362\u529f\u80fd\r\n- \ud83c\udfaf **\u591a\u5185\u6838\u652f\u6301**\uff1a\u652f\u6301 mihomo \u548c clash \u5185\u6838\r\n- \ud83d\udd12 **\u7cfb\u7edf\u96c6\u6210**\uff1asystemd \u670d\u52a1\u7ba1\u7406\r\n- \ud83c\udf0d **Web \u63a7\u5236\u53f0**\uff1a\u53ef\u89c6\u5316\u7ba1\u7406\u754c\u9762\r\n- \ud83d\udcf1 **Tun \u6a21\u5f0f**\uff1a\u5168\u5c40\u4ee3\u7406\u652f\u6301\r\n\r\n## \ud83d\udce6 \u5b89\u88c5\r\n\r\n```bash\r\npip install clash-cli\r\n```\r\n\r\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\r\n\r\n### 1. \u5b89\u88c5 Clash\r\n\r\n```bash\r\n# \u4f7f\u7528\u9ed8\u8ba4 mihomo \u5185\u6838\u5b89\u88c5\r\nsudo clash-cli install\r\n\r\n# \u6307\u5b9a\u8ba2\u9605\u94fe\u63a5\u5b89\u88c5\r\nsudo clash-cli install -s \"https://your-subscription-url.com\"\r\n\r\n# \u4f7f\u7528 clash \u5185\u6838\u5b89\u88c5\r\nsudo clash-cli install --kernel clash\r\n```\r\n\r\n### 2. \u57fa\u672c\u4f7f\u7528\r\n\r\n```bash\r\n# \u5f00\u542f\u4ee3\u7406\r\nclash-cli on\r\n\r\n# \u5173\u95ed\u4ee3\u7406\r\nclash-cli off\r\n\r\n# \u67e5\u770b\u72b6\u6001\r\nclash-cli status\r\n\r\n# \u67e5\u770b Web \u63a7\u5236\u53f0\r\nclash-cli ui\r\n```\r\n\r\n## \ud83d\udcd6 \u547d\u4ee4\u53c2\u8003\r\n\r\n### \u57fa\u672c\u547d\u4ee4\r\n\r\n```bash\r\nclash-cli install [--kernel mihomo|clash] [-s SUBSCRIPTION]  # \u5b89\u88c5\r\nclash-cli uninstall                                          # \u5378\u8f7d\r\nclash-cli on                                                 # \u5f00\u542f\u4ee3\u7406\r\nclash-cli off                                                # \u5173\u95ed\u4ee3\u7406\r\nclash-cli status [-n LINES] [-f]                            # \u67e5\u770b\u72b6\u6001\r\nclash-cli ui                                                 # Web \u63a7\u5236\u53f0\u4fe1\u606f\r\nclash-cli info                                               # \u7cfb\u7edf\u4fe1\u606f\r\n```\r\n\r\n### \u7cfb\u7edf\u4ee3\u7406\u7ba1\u7406\r\n\r\n```bash\r\nclash-cli proxy          # \u67e5\u770b\u4ee3\u7406\u72b6\u6001\r\nclash-cli proxy on       # \u5f00\u542f\u7cfb\u7edf\u4ee3\u7406\r\nclash-cli proxy off      # \u5173\u95ed\u7cfb\u7edf\u4ee3\u7406\r\n```\r\n\r\n### Web \u63a7\u5236\u53f0\r\n\r\n```bash\r\nclash-cli secret [PASSWORD]    # \u8bbe\u7f6e/\u67e5\u770b\u5bc6\u94a5\r\n```\r\n\r\n### Tun \u6a21\u5f0f\r\n\r\n```bash\r\nclash-cli tun            # \u67e5\u770b Tun \u72b6\u6001\r\nclash-cli tun on         # \u5f00\u542f Tun \u6a21\u5f0f\r\nclash-cli tun off        # \u5173\u95ed Tun \u6a21\u5f0f\r\n```\r\n\r\n### \u8ba2\u9605\u7ba1\u7406\r\n\r\n```bash\r\nclash-cli update                    # \u67e5\u770b\u5f53\u524d\u8ba2\u9605\r\nclash-cli update sync [URL]        # \u66f4\u65b0\u8ba2\u9605\r\nclash-cli update log [-n LINES]    # \u67e5\u770b\u66f4\u65b0\u65e5\u5fd7\r\n```\r\n\r\n### \u914d\u7f6e\u7ba1\u7406\r\n\r\n```bash\r\nclash-cli mixin          # \u67e5\u770b Mixin \u914d\u7f6e\r\nclash-cli mixin edit     # \u7f16\u8f91 Mixin \u914d\u7f6e\r\nclash-cli mixin runtime  # \u67e5\u770b\u8fd0\u884c\u65f6\u914d\u7f6e\r\n```\r\n\r\n## \ud83d\udd27 \u9ad8\u7ea7\u914d\u7f6e\r\n\r\n### Mixin \u914d\u7f6e\r\n\r\nMixin \u914d\u7f6e\u5141\u8bb8\u60a8\u81ea\u5b9a\u4e49 Clash \u8bbe\u7f6e\uff0c\u8fd9\u4e9b\u8bbe\u7f6e\u4f1a\u4e0e\u8ba2\u9605\u914d\u7f6e\u5408\u5e76\uff1a\r\n\r\n```yaml\r\n# \u7cfb\u7edf\u4ee3\u7406\r\nsystem-proxy:\r\n  enable: true\r\n\r\n# Web \u63a7\u5236\u53f0\r\nexternal-controller: \"0.0.0.0:9090\"\r\nsecret: \"your-password\"\r\n\r\n# \u81ea\u5b9a\u4e49\u89c4\u5219\r\nrules:\r\n  - DOMAIN-SUFFIX,example.com,DIRECT\r\n  - DOMAIN-KEYWORD,google,PROXY\r\n\r\n# Tun \u6a21\u5f0f\r\ntun:\r\n  enable: true\r\n  stack: system\r\n```\r\n\r\n### \u73af\u5883\u8981\u6c42\r\n\r\n- **\u64cd\u4f5c\u7cfb\u7edf**\uff1aLinux (\u652f\u6301 systemd)\r\n- **Python**\uff1a3.8+\r\n- **\u6743\u9650**\uff1aroot \u6216 sudo\r\n- **\u67b6\u6784**\uff1ax86_64, aarch64, armv7\r\n\r\n## \ud83e\udd1d \u8d21\u732e\r\n\r\n\u6b22\u8fce\u63d0\u4ea4 Issue \u548c Pull Request\uff01\r\n\r\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\r\n\r\nMIT License\r\n\r\n## \ud83d\ude4f \u81f4\u8c22\r\n\r\n- [mihomo](https://github.com/MetaCubeX/mihomo) - Clash \u5185\u6838\r\n- [subconverter](https://github.com/tindy2013/subconverter) - \u8ba2\u9605\u8f6c\u6362\r\n- [yacd](https://github.com/haishanh/yacd) - Web \u63a7\u5236\u53f0\r\n- [click](https://click.palletsprojects.com/) - \u547d\u4ee4\u884c\u6846\u67b6\r\n- [rich](https://rich.readthedocs.io/) - \u7ec8\u7aef\u7f8e\u5316\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**\u5982\u679c\u8fd9\u4e2a\u9879\u76ee\u5bf9\u60a8\u6709\u5e2e\u52a9\uff0c\u8bf7\u7ed9\u4e2a \u2b50 Star \u652f\u6301\u4e00\u4e0b\uff01**\r\n\r\nMade with \u2764\ufe0f by [whillhill](https://github.com/whillhill)\r\n\r\n</div>\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Clash\u7684linux\u547d\u4ee4\u884c\u5b9e\u73b0",
    "version": "1.0.5",
    "project_urls": {
        "Bug Tracker": "https://github.com/whillhill/clash-cli/issues",
        "Documentation": "https://github.com/whillhill/clash-cli/wiki",
        "Homepage": "https://github.com/whillhill/clash-cli",
        "Repository": "https://github.com/whillhill/clash-cli"
    },
    "split_keywords": [
        "clash",
        " proxy",
        " vpn",
        " linux",
        " systemd",
        " mihomo"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "378560cfa8e06e39df4375177d5c1636e04eea151711eb186c3c47dfdcae90a6",
                "md5": "b40c8bd554cc640542bd2288fc9b0b70",
                "sha256": "fb629ac11d93ffdd37710b06124263fc8c24366c5efd54d1458ce4fc28e24586"
            },
            "downloads": -1,
            "filename": "clash_cli-1.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b40c8bd554cc640542bd2288fc9b0b70",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 31122,
            "upload_time": "2025-07-27T20:11:32",
            "upload_time_iso_8601": "2025-07-27T20:11:32.990214Z",
            "url": "https://files.pythonhosted.org/packages/37/85/60cfa8e06e39df4375177d5c1636e04eea151711eb186c3c47dfdcae90a6/clash_cli-1.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5cf0973c7f6988ea22209c90396e4c82ef0e7db357822de181903c3f784ddb8f",
                "md5": "536df5ca158e024070fb7e457516a3e9",
                "sha256": "c78a46ffe46989fe42f85c7dd7f5b709cd7d1cfd6645c5c98948d04d500eae12"
            },
            "downloads": -1,
            "filename": "clash_cli-1.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "536df5ca158e024070fb7e457516a3e9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 27804,
            "upload_time": "2025-07-27T20:11:34",
            "upload_time_iso_8601": "2025-07-27T20:11:34.413132Z",
            "url": "https://files.pythonhosted.org/packages/5c/f0/973c7f6988ea22209c90396e4c82ef0e7db357822de181903c3f784ddb8f/clash_cli-1.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-27 20:11:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "whillhill",
    "github_project": "clash-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "clash-cli"
}
        
Elapsed time: 1.07522s