clove-proxy


Nameclove-proxy JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryA Claude.ai reverse proxy
upload_time2025-07-13 03:51:26
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
keywords ai claude fastapi proxy
VCS
bugtrack_url
requirements httpx curl-cffi fastapi loguru pydantic pydantic-settings tiktoken uvicorn json5 tenacity rnet
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Clove 🍀

<div align="center">

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Python](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)
[![FastAPI](https://img.shields.io/badge/FastAPI-0.115+-green.svg)](https://fastapi.tiangolo.com)

**全力以赴的 Claude 反向代理 ✨**

[English](./README_en.md) | [简体中文](#)

</div>

## 🌟 这是什么?

Clove 是一个让你能够通过标准 Claude API 访问 Claude.ai 的反向代理工具。简单来说,它让各种 AI 应用都能连接上 Claude!

**最大亮点**:Clove 是首个支持通过 OAuth 认证访问 Claude 官方 API 的反向代理(就是 Claude Code 用的那个)!这意味着你能享受到完整的 Claude API 功能,包括原生系统消息和预填充等高级特性。

## 🚀 快速开始

只需要三步,就能开始使用:

### 1. 安装 Python

确保你的电脑上有 Python 3.13 或更高版本

### 2. 安装 Clove

```bash
pip install "clove-proxy[rnet]"
```

### 3. 启动!

```bash
clove
```

启动后会在控制台显示一个随机生成的临时管理密钥。登录管理页面后别忘了添加自己的密钥哦!

### 4. 配置账户

打开浏览器访问:http://localhost:5201

使用刚才的管理密钥登录,然后就可以添加你的 Claude 账户了~

## ✨ 核心功能

### 🔐 双模式运行

- **OAuth 模式**:优先使用,可以访问 Claude API 的全部功能
- **网页反代模式**:当 OAuth 不可用时自动切换,通过模拟 Claude.ai 网页版实现

### 🎯 超高兼容性

与其他反代工具(如 Clewd)相比,Clove 的兼容性非常出色:

- ✅ 完全支持 SillyTavern
- ✅ 支持绝大部分使用 Claude API 的应用
- ✅ 甚至支持 Claude Code 本身!

### 🛠️ 功能增强

#### 对于 OAuth 模式

- 完全访问 Claude API 的全部功能
- 支持原生系统消息
- 支持预填充功能
- 性能更好,更稳定

#### 对于 Claude.ai 网页反代模式

Clove 处理了 Claude.ai 网页版与 API 的各种差异:

- 图片上传支持
- 扩展思考(思维链)支持

即使是通过网页反代,Clove 也能让你使用原本不支持的功能:

- 工具调用(Function Calling)
- 停止序列(Stop Sequences)
- Token 计数(估算值)
- 非流式传输

Clove 尽可能让 Claude.ai 网页反代更接近 API,以期在所有应用程序中获得无缝体验。

### 🎨 友好的管理界面

- 现代化的 Web 管理界面
- 无需编辑配置文件
- 所有设置都能在管理页面上完成
- 自动管理用户配额和状态

### 🔄 智能功能

- **自动 OAuth 认证**:通过 Cookie 自动完成,无需手动登录 Claude Code
- **智能切换**:自动在 OAuth 和 Claude.ai 网页反代之间切换
- **配额管理**:超出配额时自动标记并在重置时恢复

## ⚠️ 局限性

### 1. Android Termux 用户注意

Clove 依赖 `curl_cffi` 来请求 claude.ai,但这个依赖无法在 Termux 上运行。

**解决方案**:

- 使用不含 curl_cffi 的版本:`pip install clove-proxy`
  - ✅ 通过 OAuth 访问 Claude API(需要在管理页面手动完成认证)
  - ❌ 无法使用网页反代功能
  - ❌ 无法自动完成 OAuth 认证
- 使用反向代理/镜像(如 fuclaude)
  - ✅ 可以使用全部功能
  - ❌ 需要额外的服务器(既然有搭建镜像的服务器,为什么要在 Termux 上部署呢 www)

### 2. 工具调用限制

如果你使用网页反代模式,避免接入会**大量并行执行工具调用**的应用。

- Clove 需要保持与 Claude.ai 的连接等待工具调用结果
- 过多并行调用会耗尽连接导致失败
- OAuth 模式不受此限制

### 3. 提示结构限制

当 Clove 使用网页反代时,Claude.ai 会在提示中添加额外的系统提示词和文件上传结构。当使用对结构要求高的提示词(如 RP 预设)时:

- 你可以预估请求将通过何种方式进行。在默认配置下:
  - 使用 Free 账户时,所有请求通过 Claude.ai 网页反代
  - 使用 Pro 账户时,Sonnet 模型通过 Claude API,Opus 模型通过 Claude.ai 网页反代
  - 使用 Max 账户时,所有请求通过 Claude API 进行
  - 若存在多账户,Clove 始终优先使用可访问该模型 API 的账户
- 请选择与请求方式兼容的提示词

## 🔧 高级配置

### 环境变量

虽然大部分配置都能在管理界面完成,但你也可以通过环境变量进行设置:

```bash
# 端口配置
PORT=5201

# 管理密钥(不设置则自动生成)
ADMIN_API_KEYS==your-secret-key

# Claude.ai Cookie
COOKIES=sessionKey=your-session-key
```

更多配置请见 `.env.example` 文件。

### API 使用

配置完成后,你可以像使用标准 Claude API 一样使用 Clove:

```python
import anthropic

client = anthropic.Anthropic(
    base_url="http://localhost:5201/v1",
    api_key="your-api-key"  # 在管理界面创建
)

response = client.messages.create(
    model="claude-opus-4-20250514",
    messages=[{"role": "user", "content": "Hello, Claude!"}]
)
```

## 🤝 贡献

欢迎贡献代码!如果你有好的想法或发现了问题:

1. Fork 这个项目
2. 创建你的功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交你的修改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开一个 Pull Request

## 📄 许可证

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

## 🙏 致谢

- [Anthropic Claude](https://www.anthropic.com/claude) - ~~可爱的小克~~ 强大的 AI 助手
- [Clewd](https://github.com/teralomaniac/clewd/) - 初代 Claude.ai 反向代理
- [ClewdR](https://github.com/Xerxes-2/clewdr) - 高性能 Claude.ai 反向代理
- [FastAPI](https://fastapi.tiangolo.com/) - 现代、快速的 Web 框架
- [Tailwind CSS](https://tailwindcss.com/) - CSS 框架
- [Shadcn UI](https://ui.shadcn.com/) - 现代化的 UI 组件库
- [Vite](https://vitejs.dev/) - 现代化的前端构建工具
- [React](https://reactjs.org/) - JavaScript 库

## ⚠️ 免责声明

本项目仅供学习和研究使用。使用本项目时,请遵守相关服务的使用条款。作者不对任何滥用或违反服务条款的行为负责。

## 📮 联系方式

如有问题或建议,欢迎通过以下方式联系:

- 提交 [Issue](https://github.com/mirrorange/clove/issues)
- 发送 Pull Request
- 发送邮件至:orange@freesia.ink

## 🌸 关于 Clove

丁香,桃金娘科蒲桃属植物,是一种常见的香料,也可用作中药。丁香(Clove)与丁香花(Syringa)是两种不同的植物哦~在本项目中,Clove 更接近 Claude 和 love 的合成词呢!

---

<div align="center">
Made with ❤️ by 🍊
</div>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "clove-proxy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "ai, claude, fastapi, proxy",
    "author": null,
    "author_email": "mirrorange <orange@freesia.ink>",
    "download_url": null,
    "platform": null,
    "description": "# Clove \ud83c\udf40\n\n<div align=\"center\">\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Python](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.115+-green.svg)](https://fastapi.tiangolo.com)\n\n**\u5168\u529b\u4ee5\u8d74\u7684 Claude \u53cd\u5411\u4ee3\u7406 \u2728**\n\n[English](./README_en.md) | [\u7b80\u4f53\u4e2d\u6587](#)\n\n</div>\n\n## \ud83c\udf1f \u8fd9\u662f\u4ec0\u4e48\uff1f\n\nClove \u662f\u4e00\u4e2a\u8ba9\u4f60\u80fd\u591f\u901a\u8fc7\u6807\u51c6 Claude API \u8bbf\u95ee Claude.ai \u7684\u53cd\u5411\u4ee3\u7406\u5de5\u5177\u3002\u7b80\u5355\u6765\u8bf4\uff0c\u5b83\u8ba9\u5404\u79cd AI \u5e94\u7528\u90fd\u80fd\u8fde\u63a5\u4e0a Claude\uff01\n\n**\u6700\u5927\u4eae\u70b9**\uff1aClove \u662f\u9996\u4e2a\u652f\u6301\u901a\u8fc7 OAuth \u8ba4\u8bc1\u8bbf\u95ee Claude \u5b98\u65b9 API \u7684\u53cd\u5411\u4ee3\u7406\uff08\u5c31\u662f Claude Code \u7528\u7684\u90a3\u4e2a\uff09\uff01\u8fd9\u610f\u5473\u7740\u4f60\u80fd\u4eab\u53d7\u5230\u5b8c\u6574\u7684 Claude API \u529f\u80fd\uff0c\u5305\u62ec\u539f\u751f\u7cfb\u7edf\u6d88\u606f\u548c\u9884\u586b\u5145\u7b49\u9ad8\u7ea7\u7279\u6027\u3002\n\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\n\n\u53ea\u9700\u8981\u4e09\u6b65\uff0c\u5c31\u80fd\u5f00\u59cb\u4f7f\u7528\uff1a\n\n### 1. \u5b89\u88c5 Python\n\n\u786e\u4fdd\u4f60\u7684\u7535\u8111\u4e0a\u6709 Python 3.13 \u6216\u66f4\u9ad8\u7248\u672c\n\n### 2. \u5b89\u88c5 Clove\n\n```bash\npip install \"clove-proxy[rnet]\"\n```\n\n### 3. \u542f\u52a8\uff01\n\n```bash\nclove\n```\n\n\u542f\u52a8\u540e\u4f1a\u5728\u63a7\u5236\u53f0\u663e\u793a\u4e00\u4e2a\u968f\u673a\u751f\u6210\u7684\u4e34\u65f6\u7ba1\u7406\u5bc6\u94a5\u3002\u767b\u5f55\u7ba1\u7406\u9875\u9762\u540e\u522b\u5fd8\u4e86\u6dfb\u52a0\u81ea\u5df1\u7684\u5bc6\u94a5\u54e6\uff01\n\n### 4. \u914d\u7f6e\u8d26\u6237\n\n\u6253\u5f00\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1ahttp://localhost:5201\n\n\u4f7f\u7528\u521a\u624d\u7684\u7ba1\u7406\u5bc6\u94a5\u767b\u5f55\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u6dfb\u52a0\u4f60\u7684 Claude \u8d26\u6237\u4e86\uff5e\n\n## \u2728 \u6838\u5fc3\u529f\u80fd\n\n### \ud83d\udd10 \u53cc\u6a21\u5f0f\u8fd0\u884c\n\n- **OAuth \u6a21\u5f0f**\uff1a\u4f18\u5148\u4f7f\u7528\uff0c\u53ef\u4ee5\u8bbf\u95ee Claude API \u7684\u5168\u90e8\u529f\u80fd\n- **\u7f51\u9875\u53cd\u4ee3\u6a21\u5f0f**\uff1a\u5f53 OAuth \u4e0d\u53ef\u7528\u65f6\u81ea\u52a8\u5207\u6362\uff0c\u901a\u8fc7\u6a21\u62df Claude.ai \u7f51\u9875\u7248\u5b9e\u73b0\n\n### \ud83c\udfaf \u8d85\u9ad8\u517c\u5bb9\u6027\n\n\u4e0e\u5176\u4ed6\u53cd\u4ee3\u5de5\u5177\uff08\u5982 Clewd\uff09\u76f8\u6bd4\uff0cClove \u7684\u517c\u5bb9\u6027\u975e\u5e38\u51fa\u8272\uff1a\n\n- \u2705 \u5b8c\u5168\u652f\u6301 SillyTavern\n- \u2705 \u652f\u6301\u7edd\u5927\u90e8\u5206\u4f7f\u7528 Claude API \u7684\u5e94\u7528\n- \u2705 \u751a\u81f3\u652f\u6301 Claude Code \u672c\u8eab\uff01\n\n### \ud83d\udee0\ufe0f \u529f\u80fd\u589e\u5f3a\n\n#### \u5bf9\u4e8e OAuth \u6a21\u5f0f\n\n- \u5b8c\u5168\u8bbf\u95ee Claude API \u7684\u5168\u90e8\u529f\u80fd\n- \u652f\u6301\u539f\u751f\u7cfb\u7edf\u6d88\u606f\n- \u652f\u6301\u9884\u586b\u5145\u529f\u80fd\n- \u6027\u80fd\u66f4\u597d\uff0c\u66f4\u7a33\u5b9a\n\n#### \u5bf9\u4e8e Claude.ai \u7f51\u9875\u53cd\u4ee3\u6a21\u5f0f\n\nClove \u5904\u7406\u4e86 Claude.ai \u7f51\u9875\u7248\u4e0e API \u7684\u5404\u79cd\u5dee\u5f02\uff1a\n\n- \u56fe\u7247\u4e0a\u4f20\u652f\u6301\n- \u6269\u5c55\u601d\u8003\uff08\u601d\u7ef4\u94fe\uff09\u652f\u6301\n\n\u5373\u4f7f\u662f\u901a\u8fc7\u7f51\u9875\u53cd\u4ee3\uff0cClove \u4e5f\u80fd\u8ba9\u4f60\u4f7f\u7528\u539f\u672c\u4e0d\u652f\u6301\u7684\u529f\u80fd\uff1a\n\n- \u5de5\u5177\u8c03\u7528\uff08Function Calling\uff09\n- \u505c\u6b62\u5e8f\u5217\uff08Stop Sequences\uff09\n- Token \u8ba1\u6570\uff08\u4f30\u7b97\u503c\uff09\n- \u975e\u6d41\u5f0f\u4f20\u8f93\n\nClove \u5c3d\u53ef\u80fd\u8ba9 Claude.ai \u7f51\u9875\u53cd\u4ee3\u66f4\u63a5\u8fd1 API\uff0c\u4ee5\u671f\u5728\u6240\u6709\u5e94\u7528\u7a0b\u5e8f\u4e2d\u83b7\u5f97\u65e0\u7f1d\u4f53\u9a8c\u3002\n\n### \ud83c\udfa8 \u53cb\u597d\u7684\u7ba1\u7406\u754c\u9762\n\n- \u73b0\u4ee3\u5316\u7684 Web \u7ba1\u7406\u754c\u9762\n- \u65e0\u9700\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6\n- \u6240\u6709\u8bbe\u7f6e\u90fd\u80fd\u5728\u7ba1\u7406\u9875\u9762\u4e0a\u5b8c\u6210\n- \u81ea\u52a8\u7ba1\u7406\u7528\u6237\u914d\u989d\u548c\u72b6\u6001\n\n### \ud83d\udd04 \u667a\u80fd\u529f\u80fd\n\n- **\u81ea\u52a8 OAuth \u8ba4\u8bc1**\uff1a\u901a\u8fc7 Cookie \u81ea\u52a8\u5b8c\u6210\uff0c\u65e0\u9700\u624b\u52a8\u767b\u5f55 Claude Code\n- **\u667a\u80fd\u5207\u6362**\uff1a\u81ea\u52a8\u5728 OAuth \u548c Claude.ai \u7f51\u9875\u53cd\u4ee3\u4e4b\u95f4\u5207\u6362\n- **\u914d\u989d\u7ba1\u7406**\uff1a\u8d85\u51fa\u914d\u989d\u65f6\u81ea\u52a8\u6807\u8bb0\u5e76\u5728\u91cd\u7f6e\u65f6\u6062\u590d\n\n## \u26a0\ufe0f \u5c40\u9650\u6027\n\n### 1. Android Termux \u7528\u6237\u6ce8\u610f\n\nClove \u4f9d\u8d56 `curl_cffi` \u6765\u8bf7\u6c42 claude.ai\uff0c\u4f46\u8fd9\u4e2a\u4f9d\u8d56\u65e0\u6cd5\u5728 Termux \u4e0a\u8fd0\u884c\u3002\n\n**\u89e3\u51b3\u65b9\u6848**\uff1a\n\n- \u4f7f\u7528\u4e0d\u542b curl_cffi \u7684\u7248\u672c\uff1a`pip install clove-proxy`\n  - \u2705 \u901a\u8fc7 OAuth \u8bbf\u95ee Claude API\uff08\u9700\u8981\u5728\u7ba1\u7406\u9875\u9762\u624b\u52a8\u5b8c\u6210\u8ba4\u8bc1\uff09\n  - \u274c \u65e0\u6cd5\u4f7f\u7528\u7f51\u9875\u53cd\u4ee3\u529f\u80fd\n  - \u274c \u65e0\u6cd5\u81ea\u52a8\u5b8c\u6210 OAuth \u8ba4\u8bc1\n- \u4f7f\u7528\u53cd\u5411\u4ee3\u7406/\u955c\u50cf\uff08\u5982 fuclaude\uff09\n  - \u2705 \u53ef\u4ee5\u4f7f\u7528\u5168\u90e8\u529f\u80fd\n  - \u274c \u9700\u8981\u989d\u5916\u7684\u670d\u52a1\u5668\uff08\u65e2\u7136\u6709\u642d\u5efa\u955c\u50cf\u7684\u670d\u52a1\u5668\uff0c\u4e3a\u4ec0\u4e48\u8981\u5728 Termux \u4e0a\u90e8\u7f72\u5462 www\uff09\n\n### 2. \u5de5\u5177\u8c03\u7528\u9650\u5236\n\n\u5982\u679c\u4f60\u4f7f\u7528\u7f51\u9875\u53cd\u4ee3\u6a21\u5f0f\uff0c\u907f\u514d\u63a5\u5165\u4f1a**\u5927\u91cf\u5e76\u884c\u6267\u884c\u5de5\u5177\u8c03\u7528**\u7684\u5e94\u7528\u3002\n\n- Clove \u9700\u8981\u4fdd\u6301\u4e0e Claude.ai \u7684\u8fde\u63a5\u7b49\u5f85\u5de5\u5177\u8c03\u7528\u7ed3\u679c\n- \u8fc7\u591a\u5e76\u884c\u8c03\u7528\u4f1a\u8017\u5c3d\u8fde\u63a5\u5bfc\u81f4\u5931\u8d25\n- OAuth \u6a21\u5f0f\u4e0d\u53d7\u6b64\u9650\u5236\n\n### 3. \u63d0\u793a\u7ed3\u6784\u9650\u5236\n\n\u5f53 Clove \u4f7f\u7528\u7f51\u9875\u53cd\u4ee3\u65f6\uff0cClaude.ai \u4f1a\u5728\u63d0\u793a\u4e2d\u6dfb\u52a0\u989d\u5916\u7684\u7cfb\u7edf\u63d0\u793a\u8bcd\u548c\u6587\u4ef6\u4e0a\u4f20\u7ed3\u6784\u3002\u5f53\u4f7f\u7528\u5bf9\u7ed3\u6784\u8981\u6c42\u9ad8\u7684\u63d0\u793a\u8bcd\uff08\u5982 RP \u9884\u8bbe\uff09\u65f6\uff1a\n\n- \u4f60\u53ef\u4ee5\u9884\u4f30\u8bf7\u6c42\u5c06\u901a\u8fc7\u4f55\u79cd\u65b9\u5f0f\u8fdb\u884c\u3002\u5728\u9ed8\u8ba4\u914d\u7f6e\u4e0b\uff1a\n  - \u4f7f\u7528 Free \u8d26\u6237\u65f6\uff0c\u6240\u6709\u8bf7\u6c42\u901a\u8fc7 Claude.ai \u7f51\u9875\u53cd\u4ee3\n  - \u4f7f\u7528 Pro \u8d26\u6237\u65f6\uff0cSonnet \u6a21\u578b\u901a\u8fc7 Claude API\uff0cOpus \u6a21\u578b\u901a\u8fc7 Claude.ai \u7f51\u9875\u53cd\u4ee3\n  - \u4f7f\u7528 Max \u8d26\u6237\u65f6\uff0c\u6240\u6709\u8bf7\u6c42\u901a\u8fc7 Claude API \u8fdb\u884c\n  - \u82e5\u5b58\u5728\u591a\u8d26\u6237\uff0cClove \u59cb\u7ec8\u4f18\u5148\u4f7f\u7528\u53ef\u8bbf\u95ee\u8be5\u6a21\u578b API \u7684\u8d26\u6237\n- \u8bf7\u9009\u62e9\u4e0e\u8bf7\u6c42\u65b9\u5f0f\u517c\u5bb9\u7684\u63d0\u793a\u8bcd\n\n## \ud83d\udd27 \u9ad8\u7ea7\u914d\u7f6e\n\n### \u73af\u5883\u53d8\u91cf\n\n\u867d\u7136\u5927\u90e8\u5206\u914d\u7f6e\u90fd\u80fd\u5728\u7ba1\u7406\u754c\u9762\u5b8c\u6210\uff0c\u4f46\u4f60\u4e5f\u53ef\u4ee5\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u8fdb\u884c\u8bbe\u7f6e\uff1a\n\n```bash\n# \u7aef\u53e3\u914d\u7f6e\nPORT=5201\n\n# \u7ba1\u7406\u5bc6\u94a5\uff08\u4e0d\u8bbe\u7f6e\u5219\u81ea\u52a8\u751f\u6210\uff09\nADMIN_API_KEYS==your-secret-key\n\n# Claude.ai Cookie\nCOOKIES=sessionKey=your-session-key\n```\n\n\u66f4\u591a\u914d\u7f6e\u8bf7\u89c1 `.env.example` \u6587\u4ef6\u3002\n\n### API \u4f7f\u7528\n\n\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u4f60\u53ef\u4ee5\u50cf\u4f7f\u7528\u6807\u51c6 Claude API \u4e00\u6837\u4f7f\u7528 Clove\uff1a\n\n```python\nimport anthropic\n\nclient = anthropic.Anthropic(\n    base_url=\"http://localhost:5201/v1\",\n    api_key=\"your-api-key\"  # \u5728\u7ba1\u7406\u754c\u9762\u521b\u5efa\n)\n\nresponse = client.messages.create(\n    model=\"claude-opus-4-20250514\",\n    messages=[{\"role\": \"user\", \"content\": \"Hello, Claude!\"}]\n)\n```\n\n## \ud83e\udd1d \u8d21\u732e\n\n\u6b22\u8fce\u8d21\u732e\u4ee3\u7801\uff01\u5982\u679c\u4f60\u6709\u597d\u7684\u60f3\u6cd5\u6216\u53d1\u73b0\u4e86\u95ee\u9898\uff1a\n\n1. Fork \u8fd9\u4e2a\u9879\u76ee\n2. \u521b\u5efa\u4f60\u7684\u529f\u80fd\u5206\u652f (`git checkout -b feature/AmazingFeature`)\n3. \u63d0\u4ea4\u4f60\u7684\u4fee\u6539 (`git commit -m 'Add some AmazingFeature'`)\n4. \u63a8\u9001\u5230\u5206\u652f (`git push origin feature/AmazingFeature`)\n5. \u5f00\u4e00\u4e2a Pull Request\n\n## \ud83d\udcc4 \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## \ud83d\ude4f \u81f4\u8c22\n\n- [Anthropic Claude](https://www.anthropic.com/claude) - ~~\u53ef\u7231\u7684\u5c0f\u514b~~ \u5f3a\u5927\u7684 AI \u52a9\u624b\n- [Clewd](https://github.com/teralomaniac/clewd/) - \u521d\u4ee3 Claude.ai \u53cd\u5411\u4ee3\u7406\n- [ClewdR](https://github.com/Xerxes-2/clewdr) - \u9ad8\u6027\u80fd Claude.ai \u53cd\u5411\u4ee3\u7406\n- [FastAPI](https://fastapi.tiangolo.com/) - \u73b0\u4ee3\u3001\u5feb\u901f\u7684 Web \u6846\u67b6\n- [Tailwind CSS](https://tailwindcss.com/) - CSS \u6846\u67b6\n- [Shadcn UI](https://ui.shadcn.com/) - \u73b0\u4ee3\u5316\u7684 UI \u7ec4\u4ef6\u5e93\n- [Vite](https://vitejs.dev/) - \u73b0\u4ee3\u5316\u7684\u524d\u7aef\u6784\u5efa\u5de5\u5177\n- [React](https://reactjs.org/) - JavaScript \u5e93\n\n## \u26a0\ufe0f \u514d\u8d23\u58f0\u660e\n\n\u672c\u9879\u76ee\u4ec5\u4f9b\u5b66\u4e60\u548c\u7814\u7a76\u4f7f\u7528\u3002\u4f7f\u7528\u672c\u9879\u76ee\u65f6\uff0c\u8bf7\u9075\u5b88\u76f8\u5173\u670d\u52a1\u7684\u4f7f\u7528\u6761\u6b3e\u3002\u4f5c\u8005\u4e0d\u5bf9\u4efb\u4f55\u6ee5\u7528\u6216\u8fdd\u53cd\u670d\u52a1\u6761\u6b3e\u7684\u884c\u4e3a\u8d1f\u8d23\u3002\n\n## \ud83d\udcee \u8054\u7cfb\u65b9\u5f0f\n\n\u5982\u6709\u95ee\u9898\u6216\u5efa\u8bae\uff0c\u6b22\u8fce\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8054\u7cfb\uff1a\n\n- \u63d0\u4ea4 [Issue](https://github.com/mirrorange/clove/issues)\n- \u53d1\u9001 Pull Request\n- \u53d1\u9001\u90ae\u4ef6\u81f3\uff1aorange@freesia.ink\n\n## \ud83c\udf38 \u5173\u4e8e Clove\n\n\u4e01\u9999\uff0c\u6843\u91d1\u5a18\u79d1\u84b2\u6843\u5c5e\u690d\u7269\uff0c\u662f\u4e00\u79cd\u5e38\u89c1\u7684\u9999\u6599\uff0c\u4e5f\u53ef\u7528\u4f5c\u4e2d\u836f\u3002\u4e01\u9999\uff08Clove\uff09\u4e0e\u4e01\u9999\u82b1\uff08Syringa\uff09\u662f\u4e24\u79cd\u4e0d\u540c\u7684\u690d\u7269\u54e6~\u5728\u672c\u9879\u76ee\u4e2d\uff0cClove \u66f4\u63a5\u8fd1 Claude \u548c love \u7684\u5408\u6210\u8bcd\u5462\uff01\n\n---\n\n<div align=\"center\">\nMade with \u2764\ufe0f by \ud83c\udf4a\n</div>\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Claude.ai reverse proxy",
    "version": "0.3.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/mirrorange/clove/issues",
        "Documentation": "https://github.com/mirrorange/clove#readme",
        "Homepage": "https://github.com/mirrorange/clove"
    },
    "split_keywords": [
        "ai",
        " claude",
        " fastapi",
        " proxy"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "861f5e879563469d1f1f6344d6bf5ba95b3b62d9f4432b4624c993fb4c107c57",
                "md5": "5687466ba22ccb5bc01011de570e1c1c",
                "sha256": "9dd6412196ebd04168fdb26e0ed05e193f92ce5a12049de42661673d18bca949"
            },
            "downloads": -1,
            "filename": "clove_proxy-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5687466ba22ccb5bc01011de570e1c1c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 261370,
            "upload_time": "2025-07-13T03:51:26",
            "upload_time_iso_8601": "2025-07-13T03:51:26.505604Z",
            "url": "https://files.pythonhosted.org/packages/86/1f/5e879563469d1f1f6344d6bf5ba95b3b62d9f4432b4624c993fb4c107c57/clove_proxy-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 03:51:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mirrorange",
    "github_project": "clove",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "httpx",
            "specs": [
                [
                    ">=",
                    "0.28.1"
                ]
            ]
        },
        {
            "name": "curl-cffi",
            "specs": [
                [
                    ">=",
                    "0.11.4"
                ]
            ]
        },
        {
            "name": "fastapi",
            "specs": [
                [
                    ">=",
                    "0.115.14"
                ]
            ]
        },
        {
            "name": "loguru",
            "specs": [
                [
                    ">=",
                    "0.7.3"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.11.7"
                ]
            ]
        },
        {
            "name": "pydantic-settings",
            "specs": [
                [
                    ">=",
                    "2.10.1"
                ]
            ]
        },
        {
            "name": "tiktoken",
            "specs": [
                [
                    ">=",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "uvicorn",
            "specs": [
                [
                    ">=",
                    "0.35.0"
                ]
            ]
        },
        {
            "name": "json5",
            "specs": [
                [
                    ">=",
                    "0.12.0"
                ]
            ]
        },
        {
            "name": "tenacity",
            "specs": [
                [
                    ">=",
                    "9.1.2"
                ]
            ]
        },
        {
            "name": "rnet",
            "specs": [
                [
                    ">=",
                    "2.3.9"
                ]
            ]
        }
    ],
    "lcname": "clove-proxy"
}
        
Elapsed time: 1.22785s