Releases: starbaser/ccproxy
v1.3.0-rc1- WE ❤ ABIDING TERMS OF SERVICE OBLIGATIONS
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 TTLDual 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
ccproxydatabase 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 messageadd_beta_headers- adds same headers as Crush CLIforward_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 uninstallConfiguration (in ccproxy.yaml):
ccproxy:
statusline:
format: "⸢$status⸥"
symbol: ""
on: "ccproxy: ON"
off: "ccproxy: OFF"Bug Fixes and Misc. Changes
- Enhanced CLI and Status Output
2c0c611fix(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 d8d0fc3docs(hooks): add comprehensive docstrings for hook functions45f5536docs: update README with new features and editable dev setup035e941feat(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--mitmflag- PostgreSQL database - Required only for MITM traffic storage
v1.2.0 - The Escape Plan
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
