# Free Claude Code: a local proxy on 11 agents, pinned to Python 3.14.7

> Free Claude Code is an independent local proxy that puts many model providers behind the coding agents you already use, with one launcher per agent and an Admin UI for keys and models. The parts worth reading before you install are the exact Python pin of 3.14.7, an installer piped from the main branch, and a fallback list that can send one turn to two different providers.

**Alishahryar1/free-claude-code** — GitHub describes it as Use Claude Code, Codex and Pi for free from your terminal, app, IDE, or phone like OpenClaw (voice supported). The repository metadata lists Python as its primary language. The metadata lists the MIT license. This article stays within the project description and details documented in the GitHub repository README.

- Repository: https://github.com/Alishahryar1/free-claude-code
- Stars: 56,276 · Forks: 9,001
- Language: Python
- License: NOASSERTION
- Published: 2026-08-13 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/alishahryar1-free-claude-code

## requires-python is pinned to ==3.14.7, not to a floor

Most Python projects write a floor, something like >=3.10, and leave patch releases free. This one writes an equality. pyproject.toml sets requires-python = "==3.14.7", so an interpreter one patch older or one patch newer is refused, and so is 3.15. That is the hardest constraint in the project and it sits in the metadata rather than the prose, which is why it is easy to meet as an install error with no obvious cause. The consequences are concrete: a container base image pinned to 3.13 will not take the dependency, a system Python on 3.14.6 or 3.14.8 will not either, and a platform that ships 3.15 makes the proxy uninstallable until the pin moves. The repository commits a uv.lock, so a uv-based install has resolved versions waiting, but the interpreter itself is still yours to provide.

## The installer is piped from main, so the script moves under you

The install is one line on macOS and Linux:

```bash
curl -fsSL "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.sh" | sh
```

and Windows gets the PowerShell equivalent, which fetches the script with irm and runs it through a created scriptblock. Note what the URL points at: the main branch, not a tag. The bytes you execute are whatever main holds at the moment you run the command, so two people installing on different days get different installers, and a rerun six months later is an upgrade whether or not you meant one. The README anticipates the objection and links install.sh and install.ps1 so you can read them before running, which is the behaviour to copy. The installer also asks which coding agents to install and whether to add RTK, so the set of tools on your machine is a choice made at install time.

## Eleven launchers, and a second binary for setup work

Each agent gets its own console script, and pyproject.toml names them: fcc-claude, fcc-codex, fcc-pi, fcc-opencode, fcc-cline, fcc-hermes, fcc-dsh, fcc-grok, fcc-muse and fcc-aider, alongside fcc-server, fcc-doctor and an internal update check. The pattern is deliberate. Use fcc-opencode for coding and sessions, and plain opencode for upgrades, service management, ACP and MCP setup, so the proxy is in the path for work and out of it for administration. The same split applies to the other agents, and it is the detail most likely to confuse a new user, because the unprefixed command still exists and still works, it just does not see the proxy. One integration is currently missing: RTK, the optional output filter, is temporarily unavailable for OpenCode 2 while continuing to work with the others, and upgrading from OpenCode 1 means uninstalling opencode-ai first and rerunning the installer.

## A fallback list can put one turn on two providers

This is the behaviour to understand before you configure anything. Under Model Config you can add an ordered Fallback Models list, it applies to every connected client, and the README states plainly that a failed request may reach and consume usage from more than one provider before succeeding. So a turn that starts on your preferred provider can end up being retried elsewhere, and the second provider receives the prompt. The upside is the same feature seen from the other side: after retries are exhausted the proxy moves to your next configured model without making you restart the turn, and the README says this works across every client, which is the difference between an outage costing you a paragraph of work and costing you the session. The cost is a data governance decision, not a technical one: a fallback across vendors means prompts cross a vendor boundary, and quota for both is spent.

## The 56 provider count is not a property of this repository

Read the headline numbers with their qualifiers. The project advertises 56 ToS-friendly providers and 1.3B+ free tokens every month, mixing free, paid, subscription and local models behind one searchable UI, and then states that free-tier availability and limits are controlled by each provider and may change, and that FCC follows provider terms and removes integrations if they stop being allowed. That last clause is the important one: an integration can be withdrawn by this project on someone else's policy change, on the same version you already run. The token reduction figure has the same shape, up to 90% fewer terminal-output tokens, and it needs the optional RTK filter installed plus five local optimisations for quota probes, command-prefix detection, titles, suggestions and filepaths, none of which call a provider. Plan capacity around the provider, not around the proxy.

## Keys live in the Admin UI, and proxy authentication is a setting

The configuration flow for NVIDIA NIM shows the shape of every provider: create a key at build.nvidia.com/settings/api-keys, open the Admin UI URL printed in the server log, paste the key into NVIDIA_NIM_API_KEY, leave MODEL on its default of nvidia_nim/nvidia/nemotron-3-super-120b-a12b or pick another from the dropdown, then click Apply. OpenAI and ChatGPT subscription access take a different route, through Providers and OAuth providers. Protecting the proxy itself is described as something you turn on: the README says to enable Proxy Authentication in Admin to guard the local proxy with a bearer token. Read that as opt-in, and remember what sits behind it. The process holds your provider keys, so anything that can reach the listening port can spend your quota until you enable the token. On Windows and macOS the Admin surface is a tray or menu-bar icon; on Linux you run fcc-server and keep its terminal open.

## The dependency list is the shape of the product

Read the dependency block and you know what this is: a FastAPI application served by uvicorn, with two HTTP client lines, httpx[socks] and httpx2[socks], the OpenAI SDK, tiktoken, loguru, aiohttp, markdown-it-py, tomlkit, json5, jsonschema, simplejson, anyio and python-dotenv. Then the surfaces appear as dependencies rather than plugins: discord.py and python-telegram-bot for chat, google-auth[requests] for OAuth, nvidia-riva-client for speech, grpcio and grpcio-tools, pyperclip, and sqlalchemy. Two details carry operational weight. github-copilot-sdk is pinned to an exact version, 1.0.14, so that access path breaks when that vendor moves rather than when you do, and pystray and Pillow are marked for win32 and darwin only, which means your Linux install is a genuinely different dependency set from your laptop's.

## The version is derived from tags, and three releases landed in a day

The package declares dynamic = ["version"] and builds with hatchling and hatch-vcs, so the version is read from the repository's tags rather than typed into a file. The release record shows what that produces: v6.5.9, v6.5.10 and v6.5.11 all published on 2026-09-30. Patch numbers arriving several times a day means upgrade behaviour is something you observe rather than schedule, and a version you record in a runbook can be superseded before the page is written. The build backend is hatchling with hatchling.build, the lock file is uv.lock, and the repository carries conftest.py, tests/, e2e/ and smoke/ with a tests workflow in .github/, while the README badges point at uv, ruff, ty and loguru. Contributors need that toolchain, and a fork should expect the same churn in the dependency pins.

## Conclusion

Adopt Free Claude Code when you want one model catalog across several agents and you accept that the provider list, the free quotas and the launcher names all move without a major version. Do not adopt it on a Python other than 3.14.7, because that pin is exact, and do not enable Fallback Models on prompts you cannot send to a second vendor, since a failed request may consume usage from more than one provider before it succeeds. Verify first that the licence is what you expect: the package declares AGPL-3.0-only with LICENSE as its licence file, while the repository's own licence field reads NOASSERTION.

## FAQ

### How do I install free claude code?

On macOS and Linux the installer is a shell script piped into sh, and Windows uses the PowerShell equivalent. When prompted you choose at least one coding agent and optionally RTK, and the README links install.sh and install.ps1 so you can read them first. The package metadata pins requires-python to exactly 3.14.7, so check your interpreter before you start.

### How do I set up free claude code?

Start the server with fcc-server on Linux or from the desktop app on Windows and macOS, and the Admin UI opens. Configure a provider in Admin, select a model from the MODEL dropdown or enter <provider-id>/<exact-provider-model-id> by hand when the provider cannot list models, click Apply, and add an ordered Fallback Models list only if you want retries to cross providers.

### How do I use free claude code?

Every supported agent has its own launcher, including fcc-claude, fcc-codex, fcc-pi, fcc-opencode, fcc-cline, fcc-hermes, fcc-dsh, fcc-grok, fcc-muse and fcc-aider, and you can pick a model from Claude Code's native /model picker. With OpenCode, fcc-opencode is for coding and sessions while plain opencode handles upgrades, service management, ACP and MCP setup.

### How do I get a free claude code api key?

Keys come from the provider rather than from this project. The NVIDIA NIM steps send you to build.nvidia.com/settings/api-keys to create a key, then to paste it into NVIDIA_NIM_API_KEY in the Admin UI and click Apply, while OpenAI or ChatGPT subscription access is configured through Providers and OAuth providers instead.

### Is it possible to use the Claude code for free?

The project advertises 56 ToS-friendly providers and 1.3B+ free tokens every month, combining free, paid, subscription and local models, and states that free-tier availability and limits are controlled by each provider and may change. It also says it follows provider terms and removes integrations if they stop being allowed.

## Sources

- [Official README](https://github.com/Alishahryar1/free-claude-code#readme)
- [Project repository](https://github.com/Alishahryar1/free-claude-code)
- [Release notes](https://github.com/Alishahryar1/free-claude-code/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/alishahryar1-free-claude-code
