Production-style container wrapper around Alishahryar1/free-claude-code, with pinned upstream builds, reproducible local startup, and clean host-side Claude CLI integration.
The upstream project is excellent, but teams often need a more predictable local runtime story:
- isolate dependencies from host Python and package state
- pin upstream source ref for reproducible builds
- keep startup, verify, and shutdown as simple scripts
- make rollback and troubleshooting obvious
- Upstream repository: https://github.com/Alishahryar1/free-claude-code
- Wrapper build pin (default):
9a2c5fbeb90c79cd0139a4044e05fee7d1ba056a - This repo wraps upstream runtime behavior and does not modify upstream code in place.
- builds a local Docker image from a pinned upstream commit
- runs
fcc-serverathttp://127.0.0.1:18082 - supports provider routing via
.env.container(OpenRouter, NIM, Ollama, etc.) - provides health and auth verification with one command
- Reproducibility: image build is pinned to a known upstream ref
- Isolation: host Node/Claude workflow stays separate from Python runtime
- Operational clarity: explicit start, stop, and verify scripts
- Safer publishing: wrapper can evolve independently from upstream internals
- Docker Engine (with daemon running)
- Bash shell
git clone https://github.com/<your-org-or-user>/fcc-container-wrapper.git
cd fcc-container-wrapper- Create runtime env file:
cp .env.container.example .env.container- Edit provider settings in
.env.container:
- set
OPENROUTER_API_KEYor other provider credential - choose model in
MODEL - keep
ANTHROPIC_AUTH_TOKENfor local proxy auth
./start.sh./verify.shExpected healthy response:
{"status":"ok","provider":"open_router","model":"open_router/..."}./stop.shRun Claude CLI on host and point it at this local proxy:
export ANTHROPIC_BASE_URL=http://127.0.0.1:18082
export ANTHROPIC_AUTH_TOKEN=freecc
claudeOverride upstream source and ref at build time:
UPSTREAM_REPO=https://github.com/Alishahryar1/free-claude-code.git \
UPSTREAM_REF=<commit-or-tag> \
./start.sh- SemVer tags for wrapper:
v0.1.0,v0.2.0, ... - release notes include upstream ref, changes, and migration notes
- no secrets in repo; use
.env.container.exampleonly
fcc-container-wrapper/
|- Dockerfile
|- docker-compose.yml
|- start.sh
|- stop.sh
|- verify.sh
|- .env.container.example
|- docs/
| |- ARCHITECTURE.md
| |- PROVENANCE.md
| |- RELEASE.md
|- README.md
|- CHANGELOG.md
|- SECURITY.md
|- CONTRIBUTING.md