Skip to content

Bug: Windows binary v0.2.10 ships without any auth plugins (oauth_claude missing) #75

Description

@ClintonSarkar

Bug: Windows binary v0.2.10 ships without any auth plugins

Summary

ccproxy.exe v0.2.10 (Windows x86_64 build, GitHub release asset) contains zero auth provider plugins. ccproxy auth providers returns "No OAuth providers found" out of the box, and ccproxy auth login claude fails with:

[ERROR] No auth providers installed in this CCProxy release
  This usually means the claude plugin is missing from the binary.

This is reproducible on a fresh install. Confirmed on the v0.2.10 release asset ccproxy-v0.2.10-x86_64-pc-windows-msvc.zip downloaded directly from this repo's GitHub release.

Root cause

The wheel's pyproject.toml declares the plugin entry points correctly under [project.entry-points."ccproxy.plugins"]:

  • oauth_claudeccproxy.plugins.oauth_claude.plugin:factory
  • oauth_codexccproxy.plugins.oauth_codex.plugin:factory
  • claude_apiccproxy.plugins.claude_api.plugin:factory
  • claude_sdkccproxy.plugins.claude_sdk.plugin:factory

…and the wheel bundles the corresponding ccproxy/plugins/<name>/ source dirs. So when installed via pipx install ccproxy-api, all four entry points are discoverable.

However, the Windows binary appears to have been built with nuitka/pyinstaller and the plugins-claude extra was not installed before the freeze:

plugins-claude = ["claude-agent-sdk>=0.1.4", "qrcode>=8.2", "keyring>=25.7.0"]
plugins-codex  = ["qrcode>=8.2", "pyjwt>=2.10.1"]

The factory modules in ccproxy/plugins/oauth_claude/plugin.py and friends import these extras at module load time. When the deps are missing, the entry point fails to load — silently — and ccproxy auth providers returns the empty list.

Evidence

From a fresh install on Windows 11, ccproxy v0.2.10:

$ ccproxy.exe plugins list
warning   plugins_directories_missing  paths=['C:\\Users\\barsh\\.config\\ccproxy\\plugins']
           No plugins found.

$ ccproxy.exe auth providers
Available OAuth Providers
warning   plugins_directories_missing  paths=['C:\\Users\\barsh\\.config\\ccproxy\\plugins']
   warning   No OAuth providers found

$ ccproxy.exe auth login claude
[ERROR] No auth providers installed in this CCProxy release
  This usually means the claude plugin is missing from the binary.
  Check: https://github.com/ClintonSarkar/ccproxy-api/releases

Note: the plugins_directories_missing warning is a red herring. The plugin discovery from ~/.config/ccproxy/plugins/ is filesystem-based for external plugins; the oauth_claude / claude_api / claude_sdk plugins are bundled and discovered through Python entry points, which is what fails.

The wheel (ccproxy_api-0.2.10-py3-none-any.whl) from the same release DOES include the plugin source dirs and entry points. Installing it via pipx install ccproxy_api-0.2.10-py3-none-any.whl[plugins-claude] works correctly.

Expected behavior

A fresh ccproxy.exe install should be able to run ccproxy auth login claude and complete the OAuth flow, with no extra setup beyond ccproxy config init.

Suggested fix

The Windows build pipeline needs to install the optional extras before freezing the binary. Two options:

  1. Quickest fix — in whatever step runs pip install . (or uv pip install .) before the binary bundler, change it to install the extras you want bundled. The most useful one is plugins-claude:

    pip install ".[plugins-claude,plugins-codex]"
    

    (Or pip install .[all] if you want everything.)

  2. Cleaner fix — make the binary build explicit about which extras it bundles, and emit a clear error at startup if a required plugin's deps are missing, instead of silently returning "No OAuth providers found".

Environment

  • ccproxy v0.2.10 (ccproxy-v0.2.10-x86_64-pc-windows-msvc.zip)
  • Windows 11 24H2 (build 26200)
  • Reproducible 100% on a fresh install
  • Also affects the upstream fork ClintonSarkar/ccproxy-api since it mirrors these release assets

Related

  • ccproxy plugins list returns "No plugins found" even with a populated ~/.config/ccproxy/plugins/ — same root cause: bundled entry points fail to import.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions