Skip to main content

Install local middleware proxies into Claude Code

Project description

cc-guard

Install local middleware proxies into Claude Code.

Not to be confused with agent-guard — that's a runtime security engine for AI agents. This is a config installer.

What it does

Point Claude Code at any local anthropic-compatible proxy (flowlens sidecar, litellm, mitmproxy, anthropic-proxy, …) by modifying ~/.claude/settings.json, and back it out cleanly when you're done. Optionally, spawn and supervise the proxy subprocess for you.

# A. Bring your own proxy — cc-guard just patches settings.json
flow run -c ~/.flowlens/sidecar.yaml &
cc-guard install http://127.0.0.1:9999
# ...
cc-guard uninstall

# B. Let cc-guard generate the sidecar config AND spawn the process
cc-guard install http://127.0.0.1:9999 --sidecar
# or against a remote flowlens hub for centralized audit:
cc-guard install http://127.0.0.1:9999 \
  --hub https://hub.example.com --hub-token $TOKEN

Your ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN are passed through untouched in both modes — cc-guard never reads, stores, or rewrites credentials.

Why not just edit ~/.claude/settings.json by hand

Several things need to happen together for the redirect to actually stick:

  • Back up the original ANTHROPIC_BASE_URL so uninstall can restore it (otherwise you lose whatever was there before).
  • Clean conflicting export ANTHROPIC_BASE_URL=... lines in your shell rc file, since shell env vars override settings.json.
  • Atomic writes so a Ctrl-C mid-edit doesn't corrupt your settings.
  • Idempotent install/uninstall so running it twice doesn't double-backup or crash.

cc-guard does all of this, and provides doctor and status commands for checking things after the fact.

Design principles

  1. Proxy-agnostic — any anthropic-compatible local proxy works; nothing is hard-coded to one implementation.
  2. Never touches credentialsANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY pass through unchanged. The proxy forwards them to the real upstream.
  3. Clean uninstall — every change is backed up before it's made, and the optional managed sidecar is SIGTERM'd cleanly on uninstall.
  4. Idempotent — repeat install/uninstall safely.
  5. Plain installer by default — sidecar spawning is strictly opt-in via --sidecar / --hub / --sidecar-config. No background processes unless you asked.

Install

The PyPI package is cc-guardian (the short cc-guard name was too close to an unrelated ccguard project, so PyPI forced a rename). The CLI command is still cc-guard.

uv tool install cc-guardian
# or, to also get managed-sidecar support (pulls flowlens + psutil on Windows):
uv tool install "cc-guardian[sidecar]"
# or
pipx install cc-guardian
# or
pip install --user cc-guardian

Two commands are installed: cc-guard (full name) and ccg (short alias).

Platforms: Linux, macOS, Windows. The plain installer is fully cross-platform; the managed sidecar uses start_new_session on POSIX and DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP on Windows. Shell rc cleanup is POSIX-only (no equivalent concept in cmd.exe / PowerShell).

Commands

Command Purpose
cc-guard install URL Point Claude Code at URL (plain mode)
cc-guard install URL --sidecar + spawn a local flowlens sidecar
cc-guard install URL --hub HUB --hub-token TOK + attach to a remote hub
cc-guard uninstall Restore previous settings, stop managed sidecar
cc-guard status Show current install state + sidecar liveness
cc-guard doctor Run diagnostic checks
cc-guard (no args) Interactive wizard

See cc-guard <command> --help for all options, or read docs/execution-logic.md for the wire flow.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cc_guardian-0.0.3.tar.gz (212.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cc_guardian-0.0.3-py3-none-any.whl (31.8 kB view details)

Uploaded Python 3

File details

Details for the file cc_guardian-0.0.3.tar.gz.

File metadata

  • Download URL: cc_guardian-0.0.3.tar.gz
  • Upload date:
  • Size: 212.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for cc_guardian-0.0.3.tar.gz
Algorithm Hash digest
SHA256 69c1ac2722f50ba675fccf4f24d2a19df574a7d9066c2b8f9376466fd9dbfafa
MD5 6200acf9d7a6c7228ea012c31c736b34
BLAKE2b-256 159d6844d45a1e4b05a2e943e1515b28f06b50466fd860c149dee79d6a0f298b

See more details on using hashes here.

File details

Details for the file cc_guardian-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: cc_guardian-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 31.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for cc_guardian-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 848f036619e6243afe9fdb324626d4d2c24692c2d61396553bf2aeed92f9a356
MD5 19c9dfc781794a6cf95135305fd5655c
BLAKE2b-256 83c96c684cef1e51ab866fe49e5976ea64596eba5b64abf8695e6e2780d6361a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page