Skip to content

Releases: starbaser/ccproxy

v1.3.0-rc1- WE ❤ ABIDING TERMS OF SERVICE OBLIGATIONS

06 Jan 23:07

Choose a tag to compare

I will not elaborate any further on the title, for more information please check my various social media platforms.

ccproxy v1.3.0-rc1

This is a release candidate (RC1) and should be considered pre-release software.

Crush CLI-style Login Flow

Implemented Crush CLI style login flow with refresh. See release notes starting here for more info.

Configuration (in ccproxy.yaml):

ccproxy:
  oauth_ttl: 28800 # 8 hours (default)
  oauth_refresh_buffer: 0.1 # Refresh at 90% of TTL

Dual MITM

The new MITM (Man-In-The-Middle) architecture provides complete visibility into LLM API traffic for debugging, cost analysis, and compliance auditing. A reverse proxy (port 4000) intercepts client requests while a forward proxy (port 8081) captures outbound LLM API calls, with all data stored in PostgreSQL via Prisma. Rather than using LiteLLM's database features, which are more geared towards financial metrics and auditing, the ccproxy database is an alternative to a observability platform like LangFuse. Traffic is automatically classified by type (llm/mcp/web/other).

Usage:

See compose.yaml for a simple postgres docker container.

# Start proxy with MITM enabled
ccproxy start --mitm --detach

# Requires DATABASE_URL environment variable
export DATABASE_URL="postgresql://user:pass@localhost:5432/ccproxy"

Configuration (in ccproxy.yaml):

ccproxy:
  mitm:
    enabled: true
    port: 8081
    max_body_size: 0 # 0 = unlimited
    capture_bodies: true
    excluded_hosts: []
    llm_hosts:
      - "api.anthropic.com"
      - "api.openai.com"
      - "generativelanguage.googleapis.com"

New Hooks

  • inject_claude_code_identity - prepends Crush CLI's system message
  • add_beta_headers - adds same headers as Crush CLI
  • forward_oauth - enhanced token forwarding with provider detection

ccstatusline integration (TBD)

Lightly tested, still unstable. May be removed in full release.

Real-time proxy status display integration with ccstatusline for Claude Code's status bar. Provides at-a-glance visibility of proxy state directly in your terminal prompt using Starship-style format strings.

Usage

ccproxy statusline install
ccproxy statusline status
ccproxy statusline uninstall

Configuration (in ccproxy.yaml):

ccproxy:
  statusline:
    format: "⸢$status⸥"
    symbol: ""
    on: "ccproxy: ON"
    off: "ccproxy: OFF"

Bug Fixes and Misc. Changes

  • Enhanced CLI and Status Output
  • 2c0c611 fix(handler): skip custom routing for LiteLLM health checks - Prevents infinite loops with litellm-internal-health-check tag
  • feat(mitm): add debug gate for request body logging - Request bodies (which may contain OAuth tokens) are now only logged when config.debug = True
  • d8d0fc3 docs(hooks): add comprehensive docstrings for hook functions
  • 45f5536 docs: update README with new features and editable dev setup
  • 035e941 feat(test): add E2E integration test for Claude Code CLI - Tests real Claude Code CLI through ccproxy

📦 Added Dependencies

  • mitmproxy>=10.0.0 - Required only when using --mitm flag
  • PostgreSQL database - Required only for MITM traffic storage

v1.2.0 - The Escape Plan

06 Dec 03:34

Choose a tag to compare

This release is a step in a new direction I hope to take this project: Jailbreaking Claude Code. I see ccproxy as the bedrock for creating a near replica of the Claude Code harness, an escape hatch for bringing its capabilities to any command-line tool/harness. Currently, experimenting with a forked version of https://github.com/charmbracelet/crush/ is showing much promise. If you would like to learn more, please join my new discord.


Features

Keyless API Access

Multi-provider OAuth support via oat_sources configuration. When enabled, the proxy automatically forwards the correct OAuth token based on routing, eliminating the need to manage API keys manually. Includes custom User-Agent support per token source.

Improved Hooks

Added hooks that accept parameters. This is compatible with inline hooks and is backwards compatible. See the ccproxy.yaml example file for reference.

LangFuse Integration

First-class LangFuse observability support. Claude Code sessions are automatically extracted and grouped as LangFuse sessions, with HTTP headers captured as trace metadata (sensitive values redacted). See .env.example for setting up your LangFuse credentials.

CLI Improvements

The ccproxy status command output has been improved to display hooks and model deployments. The handler file (ccproxy.py) is now auto-generated on startup, with detection to preserve custom handler files.

Bug Fixes

  • Use bundled litellm from venv instead of PATH (fixes "No module named 'backoff'" error)

Documentation

  • Add installation and troubleshooting guides
  • Fix installation commands and prioritize PyPI
  • Document auto-generated handler workflow

Chores

  • Update Opus model references to claude-opus-4-5-20251101
  • Update ccproxy.yaml template to current format (oat_sources, capture_headers)
  • Comprehensive test coverage improvements