# gproxy

> gproxy is a Rust-based multi-channel LLM proxy that exposes OpenAI / Claude / Gemini-style APIs through a unified gateway, with a built-in admin console, user/key management, and request/usage auditin

- **URL**: https://www.freshcrate.ai/projects/gproxy
- **Author**: LeenHawk
- **Category**: Infrastructure
- **Latest version**: `v1.0.22` (2026-05-27)
- **License**: AGPL-3.0
- **Source**: https://github.com/LeenHawk/gproxy
- **Homepage**: https://gproxy.leenhawk.com
- **Language**: Rust
- **GitHub**: 104 stars, 16 forks
- **Registry**: github
- **Tags**: `claude`, `gemini`, `gpt`, `llm-proxy`, `rust`

## Description

gproxy is a Rust-based multi-channel LLM proxy that exposes OpenAI / Claude / Gemini-style APIs through a unified gateway, with a built-in admin console, user/key management, and request/usage auditing.

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v1.0.22` | 2026-05-27 | High | ## v1.0.22  > Vercel and Kiro join the built-in channel set, while Antigravity, Vertex, ClaudeCode, image streaming, and the provider console get a broad compatibility pass.  ### English  #### Added  - **Vercel AI Gateway channel.** Added a `vercel` channel for OpenAI Chat Completions, Responses, Models, Embeddings, and Anthropic Messages / Count Tokens, plus console support for Vercel gateway source aliases via `providerOptions.gateway.only`. Vercel's Claude-shaped requests also support `enable |
| `v1.0.21` | 2026-05-10 | High | ## v1.0.21  > Protocol packaging is split out, provider/admin behavior is tightened, and several channel compatibility fixes land together.  ### English  #### Added  - **Standalone `gproxy-protocol` repository integration.** The protocol crate is now wired as a standalone repository/submodule and the CI/release workflows fetch it explicitly. Workspace and admin API docs were updated to match the new layout. - **Update-channel configuration.** Added storage/API support for configuring the update |
| `v1.0.20` | 2026-04-24 | High | ## v1.0.20  ### ChatGPT 渠道重构  - **system_hints 透传 + model 后缀工具别名**：OpenAI 兼容请求体可通过三种方式触发 chatgpt.com 内置工具 —— 原始 id `{"system_hints":["picture_v2","search"]}`、`extra_body.tools_hint` 友好别名、以及 `model: "gpt-5@image"` 的尾缀语法;后缀表覆盖 image / search / study / agent / canvas / connectors / company / deep-research / quiz - **硬编码工具映射迁移到 rewrite_rules**：删除 Rust 侧 `TOOL_SUFFIXES`、`@<tool>`/`:<tool>` 解析器、`tools_hint` 友好别名、以及 `resolve_model` 里的 `gpt-5`/`gpt-5-thinking`/`gpt-5-pro`/`gpt-5-instant` 重映射 —— 这些能力现在完全 |
| `v1.0.19` | 2026-04-22 | High | ## v1.0.19  ### 新渠道：ChatGPT Web  - 全新接入 ChatGPT Web 渠道：PoW、prepare_p、sentinel、SSE v1 解码与 OpenAI chunk 转换 - 对话默认走 temporary chat（可通过渠道设置关闭） - 图像生成 + `/v1/images/edits`（三步上传 + asset pointer） - 本地 model list / model get / count_tokens，支持动态模型列表与别名映射（用于 picker UI 名称） - 转发 `thinking_effort` 至 `/f/conversation` - 支持 `cookie_store` 与 spoof client 刷新 - Console 前端集成：图像生成、`temporary_chat` 本地化、粘贴原始 token 自动包装为 `{access_token}` - 信任调用方传入的 model slug；未知模型回退默认值 - 用 `StreamReshaper` hook 替代旧实现，并将 reshape 迁入 `no |
| `v1.0.18` | 2026-04-21 | High | ## v1.0.18  > Streaming usage 端到端打通(`stream_options.include_usage` 自动注入 + 所有跨协议流式路径都观察上游 usage),mimalloc 接管全局分配器,缓存流水线重排为 magic → rules → flatten 并用 sanitize 统一清理空块/空消息 + 自动把 cache_control 回迁到最近可缓存块,`context-1m-2025-08-07` beta 在 anthropic / claudecode 渠道默认剥离,一次性迁移扫掉指向已废弃 realtime 变体的 routing 规则,控制台新增「恢复默认路由」按钮。  ### English  #### Added  - **Upstream streaming usage tracking.** The engine now observes and records upstream usage on streaming requests across every cross-protocol path, not just the |
| `v1.0.17` | 2026-04-17 | High | ## v1.0.17  > The suffix-variant rewrite pipeline is repaired end-to-end: the engine was passing `&[]` as the rewrite rule slice, the handler was letting alias resolution replace the user-sent model name (so `model_pattern` never matched), and `body.model = "provider/variant"` from OpenAI-style clients rode the `provider/` prefix straight into the filter. All three are fixed — a request to `claudecode/claude-opus-4-7-thinking-adaptive-effort-max` now actually reaches Anthropic with `thinking.dis |
| `v1.0.16` | 2026-04-17 | High | ## v1.0.16  > Console polish on the provider config tab: the Upstream Protocol Template row is folded away behind a show/hide toggle, and the hint copy is rewritten to warn against changing built-in channels' routing tables without a reason. Plus a tiny cleanup in the credential-update store path.  ### English  #### Changed  - **Upstream Protocol Template collapsed by default.** On the provider config tab, the template chips row now sits behind a show/hide toggle and starts collapsed on load / o |
| `v1.0.15` | 2026-04-16 | High | ## v1.0.15  > Fixes a regression in the unscoped proxy path where the `providerX/` prefix was stripped from the response's `model` field — clients that routed via `POST /v1/...` with `"model": "providerX/claude-opus-4-7"` saw `"model": "claude-opus-4-7"` come back. Also rewrites the Quick-Start guide to cover three startup forms (env var / `--config` flag / default discovery) and point at the suffix-preset alias recipe for forced-thinking variants.  ### English  #### Added  - **Quick-Start guide |
| `v1.0.14` | 2026-04-16 | High | ## v1.0.14  > Console rewrite-rule pipeline is repaired end-to-end: the `Set` / `Remove` action tags are now emitted in the snake_case form the backend actually accepts, manually drafted rules no longer disappear on Save (stale-closure race), suffix variants auto-attach a `model`-rename rewrite so the upstream receives the real model id instead of the alias, and the Claude thinking presets now explicitly set `display: "summarized"` so the chain-of-thought stays visible in responses. Claude Opus |
| `v1.0.13` | 2026-04-16 | High | ## v1.0.13  > `gproxy-protocol` is updated for Claude Opus 4.7: the Claude wire types now include the new model / output fields (`claude-opus-4-7`, `output_config.task_budget`, `effort="xhigh"`), and Claude-targeting transforms stop generating deprecated budgeted `thinking: { type: "enabled" }` requests when the target model is Opus 4.7.  ### English  #### Added  - **Claude Opus 4.7 protocol fields in `gproxy-protocol`.** Claude request types now recognize `claude-opus-4-7`, support `output_conf |

## Citation

- HTML: https://www.freshcrate.ai/projects/gproxy
- Markdown: https://www.freshcrate.ai/projects/gproxy.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/gproxy/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
