Skip to content

Releases: gusnips/cc-proxy

v0.1.52

Choose a tag to compare

@gusnips gusnips released this 02 Oct 05:41
2c53768
chore: bump to 0.1.52 for release (#22)

v0.1.51

Choose a tag to compare

@gusnips gusnips released this 02 Oct 02:35
df452ba
  • On Windows, cc-proxy now keeps its config under %APPDATA%\cc-proxy and
    its state under %LOCALAPPDATA%\cc-proxy, as the docs say. It had been
    using ~/.config there. A config folder already at ~/.config/cc-proxy
    stays in use until %APPDATA%\cc-proxy exists, so existing logins keep
    working. On macOS the config folder is always ~/.config/cc-proxy, even
    when XDG_CONFIG_HOME is set.
  • cc-proxy serve waits up to 30 seconds for the proxy to answer, up from
    15, so a busy machine doesn't kill a start that would have worked. A
    timeout now says what happened and what to try.
  • cc-proxy models no longer says "0 cursor model aliases". It shows that
    cursor:<model> takes any model Cursor offers.
  • New provider: GitHub Copilot. Run cc-proxy copilot auth login, approve the
    code on GitHub, then start Claude Code with cc-proxy claude --model copilot/gpt-5.5. cc-proxy models lists the models your account can use,
    and every one starts with copilot/. cc-proxy marks a turn the agent
    continues after a tool result as agent, so Copilot bills a premium
    request only when you start a turn.
  • A Copilot context overflow ("prompt token count of … exceeds the limit")
    now reaches Claude Code as "prompt is too long", so it compacts.
  • cc-proxy setup walks you through a first run. You pick a provider, sign
    in (or paste an API key), pick the main model and the fast model, and
    choose whether to add the shell hook. At the end it tells you what to run.
    For GLM and OpenCode Go it checks the key first: a key the provider
    refuses isn't saved, and a provider that can't be reached doesn't stop
    you.
  • The monitor has a Providers overlay on p. For each provider it shows
    whether cc-proxy has a sign-in or an API key, and for Codex, Kimi and
    OpenCode Go how much of the plan is used. It looks again once a minute.
  • cc-proxy codex auth login now opens the sign-in page in your browser.
    cc-proxy glm auth login no longer shows the key as you paste it.

v0.1.50

Choose a tag to compare

@gusnips gusnips released this 02 Oct 01:37
903da49
  • Commands look better in a terminal. serve, stop, restart, reload
    and status print a small card with the cc-proxy face, which shows whether
    the proxy runs, sleeps or needs a look. While a command waits, the face
    looks around until it's done. Errors print in red with their cause.
    Piped output, NO_COLOR=1 and TERM=dumb get the same words as plain
    text.
  • cc-proxy status also shows how long the proxy has run and whether plain
    claude goes through it.
  • The plain text of the lifecycle commands changed: the first line names
    cc-proxy and the details follow on their own lines (cc-proxy started,
    then the address and pid), instead of proxy started (pid …).
  • cc-proxy usage draws a bar for each window in a terminal. It turns
    yellow at 70% used and red at 90%.
  • The monitor's header shows the face too. It talks while requests stream,
    looks unsure for 10 seconds after a failed request, and blinks now and
    then so you can tell the dashboard is live. Beside it are four minutes of
    output tokens and the live tokens per second. A request that just
    finished glows for three seconds, every provider has its own color, and
    each empty panel says what shows up there.

v0.1.49

Choose a tag to compare

@gusnips gusnips released this 02 Oct 01:07
eda86c4
  • Kimi now signs in at auth.kimi.ai and calls api.kimi.ai, where Kimi
    moved. Both hosts share one sign-in, so an existing login keeps working
    with no new cc-proxy kimi auth login. kimi.oauthHost and
    kimi.baseUrl still override them.
  • cc-proxy shell install makes plain claude go through cc-proxy. It adds
    one line to ~/.zshrc, ~/.bashrc or ~/.bash_profile, or a function
    file for fish. After that, cc-proxy off and cc-proxy on switch every
    terminal at once, and claude --resume <id> keeps working. The line sets
    no environment variables, so other programs never see the proxy.
    cc-proxy shell uninstall removes it.
  • cc-proxy claude starts Claude Code on the proxy. It starts the proxy
    first if it isn't running, then passes every argument to claude, so
    --resume, --worktree, -p and a pasted resume command work as usual.
    The proxy's address goes in a --settings flag for that session, so no
    settings file changes. Choose the model it starts on with
    cc-proxy config set claude.model <id>, and the background model with
    claude.fastModel.
  • The serve banner and the monitor's setup panel now point to
    cc-proxy claude. Their variable lists use ANTHROPIC_DEFAULT_HAIKU_MODEL,
    which replaced ANTHROPIC_SMALL_FAST_MODEL in Claude Code, and add
    CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1.
  • cc-proxy usage shows how much of your Codex, Kimi and OpenCode Go plans
    you have used, and when each limit resets. Name one provider to see only
    that one: cc-proxy usage kimi. Add --json for scripts.
  • cc-proxy opencode usage moved to cc-proxy usage opencode. The old
    command is gone. With --json, OpenCode Go's reply now sits under an
    opencode key.
  • cc-proxy models no longer lists five Codex models that ChatGPT
    accounts can't use: gpt-5.2, gpt-5.3-codex, gpt-5.3-codex-spark, gpt-5.4
    and gpt-5.4-mini. The backend answers each with a 400. On the OpenAI
    routes they now fail at once with the list of models that work.
  • GLM and OpenCode Go's Anthropic models (MiniMax, Qwen) now send Claude
    Code only whole stream events. When an upstream read ended halfway through
    an event and an error came next, the error was stuck onto the half event,
    so Claude Code could read neither, and text from the same read was lost.
  • OpenCode Go's GPT, Grok and Muse Spark models now pass on what failed when
    the upstream fails mid-answer. A rate limit used to reach Claude Code as a
    generic "stream is invalid" error, without the upstream's message, and the
    text that came just before it was dropped.
  • Cursor now tells a spent quota from a short rate limit. Both arrive as a
    429, so Claude Code kept retrying a spent quota, which a few seconds of
    waiting can't fix. A spent quota now comes back with x-should-retry: false,
    which stops the retries, whether Cursor reports it as an HTTP error or at
    the end of its answer.
  • A Cursor 429 now passes on Cursor's reason and its own retry-after.
    Before, Claude Code got "Cursor upstream error" and a 5-second wait that
    Cursor never sent.
  • A finished answer no longer fails when an upstream read ends halfway
    through what comes after the end of the answer, such as data: [DONE] or
    OpenCode Go's closing metadata. This affected Kimi, GLM and OpenCode Go.
    Claude Code got an error instead of the answer it had already been sent.

v0.1.48

Choose a tag to compare

@gusnips gusnips released this 01 Oct 20:14

What's Changed

  • fix(providers): port providerkit's failure-handling lessons by @gusnips in #3
  • fix(glm): stream replies, and fail a body that breaks off instead of returning it empty by @gusnips in #4
  • fix(cursor): send tool results back to Cursor and fail streams that stop early by @gusnips in #5
  • refactor(kimi): stream through the shared chat translator by @gusnips in #6

Full Changelog: v0.1.47...v0.1.48

v0.1.47

Choose a tag to compare

@gusnips gusnips released this 30 Sep 17:20
  • Codex streams that drop mid-response now recover more safely. HTTP streams
    retry a partial tool call only if no tool call has reached Claude Code yet.
    A WebSocket stream reconnects only while it has sent thinking and nothing
    else. Recovery stops after 3 retries or 60 seconds from the first failure,
    whichever comes first. A request that Claude Code cancels is never retried.
  • A Codex quota snapshot now returns a 429 only when the stream closes before
    the response starts. Snapshots covered by credits, and snapshots on streams
    that already started, no longer end the request.
  • gpt-6-astra-ultrafast requests Codex's ultrafast service tier. On other
    models, -ultrafast falls back to priority. Stacked suffixes such as
    -fast-ultrafast are rejected.
  • autoReviewEffort / CCP_AUTO_REVIEW_EFFORT sets the reasoning effort for
    Codex auto-review requests only. Normal requests keep their own effort.
  • Grok hosted web search sends allowed_domains or blocked_domains (up to
    five) and an approximate user_location as Grok's native search filters.

Install or upgrade with cc-proxy update, Homebrew (brew upgrade cc-proxy), or the archives below. Each archive has a matching .sha256 file.

v0.1.46

Choose a tag to compare

@gusnips gusnips released this 30 Sep 01:10

Full Changelog: v0.1.45...v0.1.46

v0.1.44

Choose a tag to compare

@gusnips gusnips released this 30 Sep 00:57

Full Changelog: v0.1.43...v0.1.44

v0.1.43

Choose a tag to compare

@gusnips gusnips released this 30 Sep 00:19

Full Changelog: v0.1.42...v0.1.43