From de8e132a26bc9c7973b7935c81684643f88497e4 Mon Sep 17 00:00:00 2001 From: Z-M-Huang <25124355+Z-M-Huang@users.noreply.github.com> Date: Sat, 2 May 2026 01:31:44 +0000 Subject: [PATCH 1/2] chore(fork): rebrand to Z-M-Huang/zhironghuang namespace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backend localization for the soft-fork strategy. All edits stay confined to a small file set so future `git merge upstream/dev` runs only conflict in expected places. Image/registry: - docker-compose.yml: default image is now zhironghuang/cli-proxy-api:latest - docker-build.sh: local build tag is now zhironghuang/cli-proxy-api:local - Dockerfile: COPY static/management.html into the image so a freshly- pulled container serves the UI on first request, before the auto- updater's first 3-hour tick. Sets MANAGEMENT_STATIC_PATH at the same spot to point at the baked location. Frontend self-updater retargeting: - internal/config/config.go: DefaultPanelGitHubRepository now points at Z-M-Huang/Cli-Proxy-API-Management-Center. Without this, our default silently leaks fresh installs back to upstream's UI. - config.example.yaml: panel-github-repository hardcodes the same fork URL — example-derived configs would otherwise override the in-binary default and auto-update from upstream. - internal/managementasset/updater.go: defaultManagementReleaseURL now points at the fork's releases/latest. The fork-operated fallback page upstream relied on (https://cpamc.router-for.me/) is removed entirely — defaultManagementFallbackURL constant, ensureFallbackManagementHTML function, and both call sites are gone. New runtime semantics: if the GitHub fetch fails, leave any existing local asset in place; if no local asset, /management.html 404s until the next tick succeeds. The Dockerfile baking step guarantees fresh containers always have a usable local asset. Workflows / GitHub-side metadata: - .github/workflows/docker-image.yml: deleted. We push from local with buildx; we deliberately don't set DOCKERHUB_USERNAME/DOCKERHUB_TOKEN as GitHub secrets, so the workflow would otherwise fail on every tag push. - .github/workflows/release.yaml: deleted. Same tag-trigger reason; we don't ship binaries from the fork, only docker images. - .github/FUNDING.yml: deleted. Don't carry upstream's funding pointers. READMEs: fork-notice block at the top of README.md / _CN.md / _JA.md. Phases per /home/ubuntu/.claude/plans/we-are-in-a-nested-emerson.md. Codex review gated this rebrand diff. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/FUNDING.yml | 1 - .github/workflows/docker-image.yml | 147 ---------------------------- .github/workflows/release.yaml | 42 -------- Dockerfile | 8 ++ README.md | 2 + README_CN.md | 2 + README_JA.md | 2 + config.example.yaml | 2 +- docker-build.sh | 2 +- docker-compose.yml | 2 +- internal/config/config.go | 2 +- internal/managementasset/updater.go | 55 ++++------- 12 files changed, 36 insertions(+), 231 deletions(-) delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/workflows/docker-image.yml delete mode 100644 .github/workflows/release.yaml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 5cb02483dd..0000000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [router-for-me] diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index 443462dfa6..0000000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,147 +0,0 @@ -name: docker-image - -on: - push: - tags: - - v* - -env: - APP_NAME: CLIProxyAPI - DOCKERHUB_REPO: eceasy/cli-proxy-api - -jobs: - docker_amd64: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Refresh models catalog - run: | - git fetch --depth 1 https://github.com/router-for-me/models.git main - git show FETCH_HEAD:models.json > internal/registry/models/models.json - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Generate Build Metadata - run: | - echo "VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV - echo COMMIT=`git rev-parse --short HEAD` >> $GITHUB_ENV - echo BUILD_DATE=`date -u +%Y-%m-%dT%H:%M:%SZ` >> $GITHUB_ENV - - name: Build and push (amd64) - uses: docker/build-push-action@v6 - with: - context: . - platforms: linux/amd64 - push: true - build-args: | - VERSION=${{ env.VERSION }} - COMMIT=${{ env.COMMIT }} - BUILD_DATE=${{ env.BUILD_DATE }} - tags: | - ${{ env.DOCKERHUB_REPO }}:latest-amd64 - ${{ env.DOCKERHUB_REPO }}:${{ env.VERSION }}-amd64 - - docker_arm64: - runs-on: ubuntu-24.04-arm - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Refresh models catalog - run: | - git fetch --depth 1 https://github.com/router-for-me/models.git main - git show FETCH_HEAD:models.json > internal/registry/models/models.json - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Generate Build Metadata - run: | - echo "VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV - echo COMMIT=`git rev-parse --short HEAD` >> $GITHUB_ENV - echo BUILD_DATE=`date -u +%Y-%m-%dT%H:%M:%SZ` >> $GITHUB_ENV - - name: Build and push (arm64) - uses: docker/build-push-action@v6 - with: - context: . - platforms: linux/arm64 - push: true - build-args: | - VERSION=${{ env.VERSION }} - COMMIT=${{ env.COMMIT }} - BUILD_DATE=${{ env.BUILD_DATE }} - tags: | - ${{ env.DOCKERHUB_REPO }}:latest-arm64 - ${{ env.DOCKERHUB_REPO }}:${{ env.VERSION }}-arm64 - - docker_manifest: - runs-on: ubuntu-latest - needs: - - docker_amd64 - - docker_arm64 - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Generate Build Metadata - run: | - echo "VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV - echo COMMIT=`git rev-parse --short HEAD` >> $GITHUB_ENV - echo BUILD_DATE=`date -u +%Y-%m-%dT%H:%M:%SZ` >> $GITHUB_ENV - - name: Create and push multi-arch manifests - run: | - docker buildx imagetools create \ - --tag "${DOCKERHUB_REPO}:latest" \ - "${DOCKERHUB_REPO}:latest-amd64" \ - "${DOCKERHUB_REPO}:latest-arm64" - docker buildx imagetools create \ - --tag "${DOCKERHUB_REPO}:${VERSION}" \ - "${DOCKERHUB_REPO}:${VERSION}-amd64" \ - "${DOCKERHUB_REPO}:${VERSION}-arm64" - - name: Cleanup temporary tags - continue-on-error: true - env: - DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} - run: | - set -euo pipefail - namespace="${DOCKERHUB_REPO%%/*}" - repo_name="${DOCKERHUB_REPO#*/}" - - token="$( - curl -fsSL \ - -H 'Content-Type: application/json' \ - -d "{\"username\":\"${DOCKERHUB_USERNAME}\",\"password\":\"${DOCKERHUB_TOKEN}\"}" \ - 'https://hub.docker.com/v2/users/login/' \ - | python3 -c 'import json,sys; print(json.load(sys.stdin)["token"])' - )" - - delete_tag() { - local tag="$1" - local url="https://hub.docker.com/v2/repositories/${namespace}/${repo_name}/tags/${tag}/" - local http_code - http_code="$(curl -sS -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: JWT ${token}" "${url}" || true)" - if [ "${http_code}" = "204" ] || [ "${http_code}" = "404" ]; then - echo "Docker Hub tag removed (or missing): ${DOCKERHUB_REPO}:${tag} (HTTP ${http_code})" - return 0 - fi - echo "Docker Hub tag delete failed: ${DOCKERHUB_REPO}:${tag} (HTTP ${http_code})" - return 0 - } - - delete_tag "latest-amd64" - delete_tag "latest-arm64" - delete_tag "${VERSION}-amd64" - delete_tag "${VERSION}-arm64" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index 4043e4a5dd..0000000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,42 +0,0 @@ -name: goreleaser - -on: - push: - # run only against tags - tags: - - '*' - -permissions: - contents: write - -jobs: - goreleaser: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Refresh models catalog - run: | - git fetch --depth 1 https://github.com/router-for-me/models.git main - git show FETCH_HEAD:models.json > internal/registry/models/models.json - - run: git fetch --force --tags - - uses: actions/setup-go@v4 - with: - go-version: '>=1.26.0' - cache: true - - name: Generate Build Metadata - run: | - echo "VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV - echo COMMIT=`git rev-parse --short HEAD` >> $GITHUB_ENV - echo BUILD_DATE=`date -u +%Y-%m-%dT%H:%M:%SZ` >> $GITHUB_ENV - - uses: goreleaser/goreleaser-action@v4 - with: - distribution: goreleaser - version: latest - args: release --clean --skip=validate - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - VERSION: ${{ env.VERSION }} - COMMIT: ${{ env.COMMIT }} - BUILD_DATE: ${{ env.BUILD_DATE }} diff --git a/Dockerfile b/Dockerfile index 3e10c4f9f8..ce061c6206 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,14 @@ COPY --from=builder ./app/CLIProxyAPI /CLIProxyAPI/CLIProxyAPI COPY config.example.yaml /CLIProxyAPI/config.example.yaml +# Bake the management UI bundle so a freshly-pulled image serves the right +# UI on first request, before the auto-updater's first 3-hour tick. The build +# context is expected to carry a fresh static/management.html (see the +# README's release flow). +COPY static/management.html /CLIProxyAPI/static/management.html + +ENV MANAGEMENT_STATIC_PATH=/CLIProxyAPI/static + WORKDIR /CLIProxyAPI EXPOSE 8317 diff --git a/README.md b/README.md index 8858e941a7..ed3c997d01 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ English | [中文](README_CN.md) | [日本語](README_JA.md) +> **Fork notice.** This is [Z-M-Huang's](https://github.com/Z-M-Huang) fork of [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI). It carries extra features (currently: **Prompt Rules** — content-level inject/strip on outgoing requests) and republishes the docker image at `zhironghuang/cli-proxy-api`. Upstream improvements are merged in periodically. For the original project, follow the upstream link. + A proxy server that provides OpenAI/Gemini/Claude/Codex compatible API interfaces for CLI. It now also supports OpenAI Codex (GPT models) and Claude Code via OAuth. diff --git a/README_CN.md b/README_CN.md index 02d6ed3af5..c57f1e0e41 100644 --- a/README_CN.md +++ b/README_CN.md @@ -2,6 +2,8 @@ [English](README.md) | 中文 | [日本語](README_JA.md) +> **分叉说明。** 本仓库是 [Z-M-Huang](https://github.com/Z-M-Huang) 维护的 [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) 分叉,附带额外功能(当前:**提示规则** — 出站请求的内容级注入/剥离),并以 `zhironghuang/cli-proxy-api` 重新发布 Docker 镜像。会定期合并上游改进。原始项目请访问上方链接。 + 一个为 CLI 提供 OpenAI/Gemini/Claude/Codex 兼容 API 接口的代理服务器。 现已支持通过 OAuth 登录接入 OpenAI Codex(GPT 系列)和 Claude Code。 diff --git a/README_JA.md b/README_JA.md index 41e96ff065..e4d2755acf 100644 --- a/README_JA.md +++ b/README_JA.md @@ -2,6 +2,8 @@ [English](README.md) | [中文](README_CN.md) | 日本語 +> **フォークについて。** 本リポジトリは [Z-M-Huang](https://github.com/Z-M-Huang) による [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) のフォークで、追加機能(現在は **Prompt Rules** — 送信リクエストへのコンテンツレベルの注入/除去)を含み、Docker イメージは `zhironghuang/cli-proxy-api` で再公開しています。上流の改善は定期的にマージしています。元のプロジェクトは上記リンクをご参照ください。 + CLI向けのOpenAI/Gemini/Claude/Codex互換APIインターフェースを提供するプロキシサーバーです。 OAuth経由でOpenAI Codex(GPTモデル)およびClaude Codeもサポートしています。 diff --git a/config.example.yaml b/config.example.yaml index 172e961f62..60eea9512e 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -30,7 +30,7 @@ remote-management: # disable-auto-update-panel: false # GitHub repository for the management control panel. Accepts a repository URL or releases API URL. - panel-github-repository: "https://github.com/router-for-me/Cli-Proxy-API-Management-Center" + panel-github-repository: "https://github.com/Z-M-Huang/Cli-Proxy-API-Management-Center" # Authentication directory (supports ~ for home directory) auth-dir: "~/.cli-proxy-api" diff --git a/docker-build.sh b/docker-build.sh index ebe7d92384..320dab9228 100644 --- a/docker-build.sh +++ b/docker-build.sh @@ -42,7 +42,7 @@ case "$choice" in echo "----------------------------------------" # Build and start the services with a local-only image tag - export CLI_PROXY_IMAGE="cli-proxy-api:local" + export CLI_PROXY_IMAGE="zhironghuang/cli-proxy-api:local" echo "Building the Docker image..." docker compose build \ diff --git a/docker-compose.yml b/docker-compose.yml index ad2190c23a..5fb1290473 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: cli-proxy-api: - image: ${CLI_PROXY_IMAGE:-eceasy/cli-proxy-api:latest} + image: ${CLI_PROXY_IMAGE:-zhironghuang/cli-proxy-api:latest} pull_policy: always build: context: . diff --git a/internal/config/config.go b/internal/config/config.go index 3afdabcd35..c099793b47 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -21,7 +21,7 @@ import ( ) const ( - DefaultPanelGitHubRepository = "https://github.com/router-for-me/Cli-Proxy-API-Management-Center" + DefaultPanelGitHubRepository = "https://github.com/Z-M-Huang/Cli-Proxy-API-Management-Center" DefaultPprofAddr = "127.0.0.1:8316" ) diff --git a/internal/managementasset/updater.go b/internal/managementasset/updater.go index ae2bc81956..2df8e966a1 100644 --- a/internal/managementasset/updater.go +++ b/internal/managementasset/updater.go @@ -25,13 +25,20 @@ import ( ) const ( - defaultManagementReleaseURL = "https://api.github.com/repos/router-for-me/Cli-Proxy-API-Management-Center/releases/latest" - defaultManagementFallbackURL = "https://cpamc.router-for.me/" - managementAssetName = "management.html" - httpUserAgent = "CLIProxyAPI-management-updater" - managementSyncMinInterval = 30 * time.Second - updateCheckInterval = 3 * time.Hour - maxAssetDownloadSize = 50 << 20 // 10 MB safety limit for management asset downloads + // defaultManagementReleaseURL points at the fork's frontend release feed. + // The auto-updater pulls management.html from "latest" here every + // updateCheckInterval. The fork-controlled fallback URL upstream used + // (https://cpamc.router-for.me/) is intentionally absent — if the GitHub + // release fetch fails the updater leaves whatever local asset already + // exists in place; if no local asset exists, /management.html returns 404 + // until the next successful fetch. The Dockerfile bakes the bundle so + // fresh containers always have a usable local asset. + defaultManagementReleaseURL = "https://api.github.com/repos/Z-M-Huang/Cli-Proxy-API-Management-Center/releases/latest" + managementAssetName = "management.html" + httpUserAgent = "CLIProxyAPI-management-updater" + managementSyncMinInterval = 30 * time.Second + updateCheckInterval = 3 * time.Hour + maxAssetDownloadSize = 50 << 20 // 10 MB safety limit for management asset downloads ) // ManagementFileName exposes the control panel asset filename. @@ -234,11 +241,11 @@ func EnsureLatestManagementHTML(ctx context.Context, staticDir string, proxyURL asset, remoteHash, err := fetchLatestAsset(ctx, client, releaseURL) if err != nil { + // No fork-operated fallback URL — if the GitHub fetch fails we + // leave any existing local asset in place. localFileMissing here + // means /management.html will 404 until the next tick succeeds. if localFileMissing { - log.WithError(err).Warn("failed to fetch latest management release information, trying fallback page") - if ensureFallbackManagementHTML(ctx, client, localPath) { - return nil, nil - } + log.WithError(err).Warn("failed to fetch latest management release information; no local asset to serve") return nil, nil } log.WithError(err).Warn("failed to fetch latest management release information") @@ -252,13 +259,6 @@ func EnsureLatestManagementHTML(ctx context.Context, staticDir string, proxyURL data, downloadedHash, err := downloadAsset(ctx, client, asset.BrowserDownloadURL) if err != nil { - if localFileMissing { - log.WithError(err).Warn("failed to download management asset, trying fallback page") - if ensureFallbackManagementHTML(ctx, client, localPath) { - return nil, nil - } - return nil, nil - } log.WithError(err).Warn("failed to download management asset") return nil, nil } @@ -281,25 +281,6 @@ func EnsureLatestManagementHTML(ctx context.Context, staticDir string, proxyURL return err == nil } -func ensureFallbackManagementHTML(ctx context.Context, client *http.Client, localPath string) bool { - data, downloadedHash, err := downloadAsset(ctx, client, defaultManagementFallbackURL) - if err != nil { - log.WithError(err).Warn("failed to download fallback management control panel page") - return false - } - - log.Warnf("management asset downloaded from fallback URL without digest verification (hash=%s) — "+ - "enable verified GitHub updates by keeping disable-auto-update-panel set to false", downloadedHash) - - if err = atomicWriteFile(localPath, data); err != nil { - log.WithError(err).Warn("failed to persist fallback management control panel page") - return false - } - - log.Infof("management asset updated from fallback page successfully (hash=%s)", downloadedHash) - return true -} - func resolveReleaseURL(repo string) string { repo = strings.TrimSpace(repo) if repo == "" { From fd2d48d03723a55cacab4a06156f9e24acff3b20 Mon Sep 17 00:00:00 2001 From: Z-M-Huang <25124355+Z-M-Huang@users.noreply.github.com> Date: Sat, 2 May 2026 01:47:20 +0000 Subject: [PATCH 2/2] fix(fork): address Codex rebrand-review nits - docker-build.ps1: namespace the local image tag to zhironghuang/cli-proxy-api:local so the PowerShell source-build path matches docker-build.sh. - README / README_CN / README_JA: fork-notice now also calls out that revived logging support is planned for v0.2.0 (the original feat/logging was deferred during the soft-fork bootstrap because upstream removed the surrounding plugin/usage surface). Codex rebrand-review verdict: 1 BLOCKER addressed in the frontend release workflow, 2 MINORs (this commit + the docker-build.ps1 nit). Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 2 +- README_CN.md | 2 +- README_JA.md | 2 +- docker-build.ps1 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ed3c997d01..e38ca92c53 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ English | [中文](README_CN.md) | [日本語](README_JA.md) -> **Fork notice.** This is [Z-M-Huang's](https://github.com/Z-M-Huang) fork of [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI). It carries extra features (currently: **Prompt Rules** — content-level inject/strip on outgoing requests) and republishes the docker image at `zhironghuang/cli-proxy-api`. Upstream improvements are merged in periodically. For the original project, follow the upstream link. +> **Fork notice.** This is [Z-M-Huang's](https://github.com/Z-M-Huang) fork of [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI). It carries extra features (currently: **Prompt Rules** — content-level inject/strip on outgoing requests; revived logging support is planned for v0.2.0) and republishes the docker image at `zhironghuang/cli-proxy-api`. Upstream improvements are merged in periodically. For the original project, follow the upstream link. A proxy server that provides OpenAI/Gemini/Claude/Codex compatible API interfaces for CLI. diff --git a/README_CN.md b/README_CN.md index c57f1e0e41..ae4431fd7b 100644 --- a/README_CN.md +++ b/README_CN.md @@ -2,7 +2,7 @@ [English](README.md) | 中文 | [日本語](README_JA.md) -> **分叉说明。** 本仓库是 [Z-M-Huang](https://github.com/Z-M-Huang) 维护的 [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) 分叉,附带额外功能(当前:**提示规则** — 出站请求的内容级注入/剥离),并以 `zhironghuang/cli-proxy-api` 重新发布 Docker 镜像。会定期合并上游改进。原始项目请访问上方链接。 +> **分叉说明。** 本仓库是 [Z-M-Huang](https://github.com/Z-M-Huang) 维护的 [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) 分叉,附带额外功能(当前:**提示规则** — 出站请求的内容级注入/剥离;恢复版日志支持计划在 v0.2.0 上线),并以 `zhironghuang/cli-proxy-api` 重新发布 Docker 镜像。会定期合并上游改进。原始项目请访问上方链接。 一个为 CLI 提供 OpenAI/Gemini/Claude/Codex 兼容 API 接口的代理服务器。 diff --git a/README_JA.md b/README_JA.md index e4d2755acf..324cf38e0b 100644 --- a/README_JA.md +++ b/README_JA.md @@ -2,7 +2,7 @@ [English](README.md) | [中文](README_CN.md) | 日本語 -> **フォークについて。** 本リポジトリは [Z-M-Huang](https://github.com/Z-M-Huang) による [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) のフォークで、追加機能(現在は **Prompt Rules** — 送信リクエストへのコンテンツレベルの注入/除去)を含み、Docker イメージは `zhironghuang/cli-proxy-api` で再公開しています。上流の改善は定期的にマージしています。元のプロジェクトは上記リンクをご参照ください。 +> **フォークについて。** 本リポジトリは [Z-M-Huang](https://github.com/Z-M-Huang) による [router-for-me/CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) のフォークで、追加機能(現在は **Prompt Rules** — 送信リクエストへのコンテンツレベルの注入/除去。再構築されたロギングサポートは v0.2.0 で予定)を含み、Docker イメージは `zhironghuang/cli-proxy-api` で再公開しています。上流の改善は定期的にマージしています。元のプロジェクトは上記リンクをご参照ください。 CLI向けのOpenAI/Gemini/Claude/Codex互換APIインターフェースを提供するプロキシサーバーです。 diff --git a/docker-build.ps1 b/docker-build.ps1 index d42a0d046a..403fd6c784 100644 --- a/docker-build.ps1 +++ b/docker-build.ps1 @@ -35,7 +35,7 @@ switch ($choice) { Write-Host "----------------------------------------" # Build and start the services with a local-only image tag - $env:CLI_PROXY_IMAGE = "cli-proxy-api:local" + $env:CLI_PROXY_IMAGE = "zhironghuang/cli-proxy-api:local" Write-Host "Building the Docker image..." docker compose build --build-arg VERSION=$VERSION --build-arg COMMIT=$COMMIT --build-arg BUILD_DATE=$BUILD_DATE