---
title: "Free Claude Code Giải Thích: Một Local Proxy Cho 50+ Nhà Cung Cấp AI"
description: "Free Claude Code định tuyến Claude Code, Codex, Pi và 8 agent khác qua một local proxy với 50+ provider thân thiện ToS và fallback tự động."
pubDate: "2026-08-27"
lang: "vi"
slug: "free-claude-code-explained"
url: "https://hoangyell.com/vi/free-claude-code-explained/"
author: "HoangYell"
translation_en: "https://hoangyell.com/free-claude-code-explained/"
categories: ["AI & Agents"]
tags: ["ai", "claude", "developer-tools", "claude-code", "ai-agents"]
heroImage: "https://raw.githubusercontent.com/HoangGeek/store/refs/heads/main/webp/free-claude-code-explained.webp"
---

Bạn muốn dùng Claude Code, Codex hay Pi - nhưng không muốn thêm subscription, không muốn reverse proxy mờ ám, và không muốn setup vỡ ngay khi một provider rate-limit.

Rồi **[free-claude-code](https://github.com/Alishahryar1/free-claude-code)** xuất hiện với 50k+ GitHub stars và lời hứa: *1.3 tỷ+ token miễn phí, chín coding agent, thân thiện ToS*. Nghe quá tốt. Cái gì đằng sau?

Câu trả lời đơn giản hơn bạn nghĩ: FCC không phải API miễn phí ma thuật. Nó là **local proxy + lớp admin** đứng giữa coding agent và các provider bạn đã có quyền truy cập - free tier, subscription, API key, hoặc model local. Một lần cài, một UI cấu hình, nhiều agent.

Repository: [Alishahryar1/free-claude-code](https://github.com/Alishahryar1/free-claude-code)

***

## TL;DR

![Image](https://raw.githubusercontent.com/HoangGeek/store/refs/heads/main/webp/free-claude-code-explained-gallery-01.webp)

- **Nó làm gì:** Chạy `fcc-server` trên máy bạn; agent gọi `localhost:8082` thay vì Anthropic/OpenAI trực tiếp.
- **Đau khi không có:** API key riêng mỗi agent, đổi model thủ công khi provider lỗi, proxy xám có thể bị ban tài khoản.
- **Thay đổi gì:** Một Admin UI cấu hình 50+ provider, fallback có thứ tự, routing theo tier (Opus/Sonnet/Haiku), launcher như `fcc-claude` / `fcc-codex`.
- **Ai nên dùng:** Dev xoay vòng free tier hoặc nhiều provider, muốn UX Claude Code mà không bị khóa vendor.
- **Ai nên bỏ qua:** Team đã có hợp đồng Anthropic trả phí duy nhất, không muốn vận hành infra Python local.

Trước FCC, mỗi coding agent là một đảo riêng: env var riêng, ngăn API key riêng, câu chuyện outage riêng.

```markdy
scene width=1280 height=720 duration=8
theme: light=doodle dark=nebula
layout auto

user Dev "Developer"
service Claude "Claude Code"
service Codex "Codex"
service Pi "Pi Agent"
database KeysA "Anthropic Key"
database KeysB "OpenAI Key"
database KeysC "Groq Key"
policy Outage "Provider Outage"
service Admin "Manual Switch"

beat chaos "Every agent owns its provider" {
  show $nodes stagger=60ms
  Dev -> Claude "ANTHROPIC_API_KEY"
  Dev -> Codex "OPENAI_KEY"
  Dev -> Pi "GROQ_KEY"
  Claude -> KeysA "direct"
  Codex -> KeysB "direct"
  Pi -> KeysC "direct"
  KeysA -> Outage "rate limit"
  KeysB -> Outage "quota hit"
  Admin -> Claude "edit .env"
  Admin -> Codex "restart"
  glow Outage color=#ef4444
  glow Admin color=#ef4444
}

player:
    playback:
      loop true
    controls:
      speed true
      speeds "0.25"
      fullscreen true
      gif true
      theme true
    interaction:
      zoom true
      pan true
      click_to_play true
      double_click_to_reset true
      keyboard false
    chrome:
      badge true
      progress none
```

FCC gom thành một điểm điều khiển: agent gọi local proxy; proxy chọn model, retry, và lần lượt thử danh sách provider bạn cấu hình.

```markdy
scene width=1280 height=720 duration=8
theme: light=doodle dark=nebula
layout auto

user Dev "Developer"
service Agents "Claude Codex Pi"
service FCC "fcc-server :8082"
service Admin "Admin UI"
database Catalog "50+ Providers"
database Fallback "Fallback Chain"
jwt Route "Model Route"
service RTK "RTK + Optimizations"

beat model "One proxy, many agents" {
  show $nodes stagger=60ms
  Dev -> Agents "fcc-claude fcc-codex"
  Agents -> FCC "localhost"
  Admin -> Catalog "NVIDIA NIM Groq OpenRouter"
  FCC -> Catalog "primary model"
  Catalog -> Fallback "on failure"
  Fallback -> Route "next provider"
  Agents <- Route "same turn"
  FCC -> RTK "fewer tokens"
  glow FCC color=#22c55e
  glow Catalog color=#22c55e
  glow Fallback color=#22c55e
}

player:
    playback:
      loop true
    controls:
      speed true
      speeds "0.25"
      fullscreen true
      gif true
      theme true
    interaction:
      zoom true
      pan true
      click_to_play true
      double_click_to_reset true
      keyboard false
    chrome:
      badge true
      progress none
```

Giữ cặp scene này: **không có FCC**, bạn là lớp tích hợp. **Có FCC**, proxy đảm nhận.

***

## Bản Đồ Cho Người Mới

![Image](https://raw.githubusercontent.com/HoangGeek/store/refs/heads/main/webp/free-claude-code-explained-gallery-02.webp)

Đọc bài theo hai scene trên:

1. **Lượt 1:** Hiểu vì sao API key riêng mỗi agent thành nợ vận hành.
2. **Lượt 2:** Nhớ `fcc-server` → Admin UI → `fcc-claude` (hoặc `fcc-codex`).
3. **Lượt 3:** Học từ vựng: `MODEL`, danh sách fallback, override tier, RTK.
4. **Lượt 4:** Chạy bài tập đầu tiên bên dưới trên máy bạn.

| Thuật ngữ | Trả lời câu hỏi |
|:---|:---|
| **`fcc-server`** | Process nào lắng nghe `localhost:8082`? |
| **Admin UI** | Dán API key và chọn model ở đâu? |
| **`MODEL`** | Provider/model mặc định xử lý request? |
| **Fallback Models** | Chạy gì khi provider chính thất bại? |
| **`fcc-claude`** | Claude Code tới FCC thay vì Anthropic thế nào? |
| **RTK** | FCC giảm output terminal ồn ào trước khi gửi model? |

### Bài Tập Thực Hành Đầu Tiên

Cài FCC, start server, dán một free provider key (NVIDIA NIM là mặc định README), validate, apply, rồi chạy:

```bash
fcc-claude
```

Trong Claude Code, mở `/model` và xác nhận model FCC xuất hiện. Nếu có - scene "with" đã thật; phần còn lại chỉ là chi tiết cấu hình.

**Mở rộng:** Thêm provider thứ hai vào **Fallback Models**, tạm làm hỏng key chính. Xem cùng một agent turn tiếp tục trên backup mà không restart thủ công.

***

## Phần 1: Nền Tảng - mental model

![Image](https://raw.githubusercontent.com/HoangGeek/store/refs/heads/main/webp/free-claude-code-explained-gallery-03.webp)

Hãy coi coding agent là **thiết bị điện** và model provider là **công ty điện lực**. Claude Code cần "điện" kiểu Anthropic. Codex cần kiểu OpenAI. Groq, Gemini, Ollama local mỗi bên nói một phương ngữ hơi khác.

Không có adapter, bạn mua ổ cắm riêng cho mỗi thiết bị. Với FCC, bạn lắp **một ổ cắm thông minh**: thiết bị cắm vào `localhost:8082`; FCC dịch request, chọn nhà cung cấp, và chuyển mạch khi một nhà ngắt.

Đó là điểm điều khiển trung tâm trong scene "with": **`fcc-server` không phải model - nó là router**.

```markdy
scene width=1280 height=720 duration=8
theme: light=doodle dark=nebula
layout auto

client Agent "Coding Agent"
service Plug "localhost 8082"
service FCC "fcc-server"
cloud Cloud "NIM Groq OpenRouter"
database Local "Ollama LM Studio"

beat adapter "One socket, many circuits" {
  show $nodes stagger=60ms
  Agent -> Plug "Anthropic-shaped"
  Plug -> FCC "translate"
  FCC -> Cloud "cloud keys"
  FCC -> Local "local models"
  glow FCC color=#22c55e
  glow Plug color=#22c55e
}

player:
    playback:
      loop true
    controls:
      speed true
      speeds "0.25"
      fullscreen true
      gif true
      theme true
    interaction:
      zoom true
      pan true
      click_to_play true
      double_click_to_reset true
      keyboard false
    chrome:
      badge true
      progress none
```

Điểm quan trọng sau con số star: FCC không tạo token miễn phí từ không khí. Nó gom **free tier hợp lệ và key bạn cung cấp**. Headline "1.3 tỷ+ token miễn phí" là tổng hạn mức tháng được ghi trong catalog - mỗi provider có giới hạn, điều khoản, và tình trạng riêng. Giá trị FCC là **điều phối**, không phải thuật giả kim.

Dự án cũng nói rõ: *open-source độc lập, không liên kết Anthropic*. Claude và Claude Code là nhãn hiệu của Anthropic. FCC **định tuyến tới** endpoint tương thích; không thay sản phẩm hay hỗ trợ của Anthropic.

***

## Phần 2: Cuộc Điều Tra - workflow thực tế chạy thế nào?

![Image](https://raw.githubusercontent.com/HoangGeek/store/refs/heads/main/webp/free-claude-code-explained-gallery-04.webp)

Đây là happy path từ zero tới code, map với mũi tên trong scene.

### Bước 1: Cài hoặc cập nhật

Đọc installer trước khi pipe. Rồi chọn OS.

macOS/Linux:

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

Windows PowerShell:

```powershell
& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.ps1")))
```

Chạy lại lệnh đó để update. Khi được hỏi, chọn ít nhất một coding agent và tùy chọn **RTK** - bộ lọc cắt noise terminal lặp để ít token hơn tới model.

Chín launcher sau khi cài:

| Lệnh | Agent |
|:---|:---|
| `fcc-claude` | Claude Code |
| `fcc-codex` | Codex |
| `fcc-pi` | Pi |
| `fcc-opencode` | OpenCode |
| `fcc-cline` | Cline |
| `fcc-hermes` | Hermes |
| `fcc-dsh` | DeepSeek Harness |
| `fcc-grok` | Grok Build |
| `fcc-muse` | Muse Code |

### Bước 2: Start `fcc-server`

- **macOS/Windows:** Mở **Free Claude Code** từ Applications hoặc Start menu.
- **Linux:** Chạy `fcc-server` và giữ terminal mở.

Server in URL Admin UI. Icon tray/menu-bar trên desktop OS có restart và quit.

### Bước 3: Cấu hình provider trong Admin UI

Ví dụ NVIDIA NIM (mặc định README):

1. Tạo key tại [build.nvidia.com/settings/api-keys](https://build.nvidia.com/settings/api-keys).
2. Mở Admin UI → dán `NVIDIA_NIM_API_KEY`.
3. Giữ `MODEL` ở `nvidia_nim/nvidia/nemotron-3-super-120b-a12b` hoặc tìm trong dropdown.
4. **Validate** → **Apply**.

Tùy chọn: bật **Proxy Authentication** để chỉ client có bearer token mới gọi được proxy.

**ChatGPT không phải API key.** Mở **Providers → Connected accounts**, đăng nhập flow ChatGPT chính thức (device code trên máy headless), rồi restart agent đang chạy. Client kiểu OpenAI dùng `openai/<model-id>`.

### Bước 4: Launch agent qua FCC

```bash
fcc-claude    # Claude Code
fcc-codex     # Codex
fcc-pi        # Pi
fcc-opencode  # OpenCode
fcc-cline     # Cline
fcc-hermes    # Hermes
fcc-dsh       # DeepSeek Harness
fcc-grok      # Grok Build
fcc-muse      # Muse Code
```

Mỗi launcher set env var agent cần (`ANTHROPIC_BASE_URL`, OpenAI-compatible base URL, …) trỏ về FCC thay vì cloud vendor.

### Bước 5: Tích hợp IDE (tùy chọn)

Với **Claude Code trong VS Code**, trỏ `ANTHROPIC_BASE_URL` tới `http://localhost:8082` và `ANTHROPIC_AUTH_TOKEN` khớp Admin UI. Bật `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` để `/model` liệt kê catalog FCC.

Với **Codex App**, thêm provider `fcc` trong `~/.codex/config.toml` với `base_url = "http://127.0.0.1:8082/v1"` và auth qua `fcc-codex --print-proxy-auth-token`.

### Mỗi request diễn ra thế nào?

1. Agent gửi request kiểu Anthropic hoặc OpenAI tới FCC.
2. FCC resolve `MODEL` (hoặc override tier - xem Phần 3).
3. FCC gọi adapter provider (NVIDIA NIM, OpenRouter, Groq, Ollama local, …).
4. Khi thất bại sau retry, FCC đi **Fallback Models** theo thứ tự - cùng turn, không restart agent.
5. RTK tùy chọn và năm optimization built-in cắt output terminal và metadata trước lần gọi provider tiếp theo.

README claim tới **90% ít token output terminal** khi bật RTK - đáng kể khi agent dump build log vào context.

```markdy
scene width=1280 height=720 duration=10
theme: light=doodle dark=nebula
layout TB

client Agent "Coding Agent"
service FCC "fcc-server"
service Pick "Model Resolver"
service P1 "Primary Provider"
service P2 "Fallback Provider"
database RTK "RTK Filter"
user Dev "Developer"

beat flow "One request, automatic failover" {
  show $nodes stagger=55ms
  Agent -> FCC "chat completion"
  FCC -> RTK "strip noise"
  RTK -> Pick "resolve MODEL"
  Pick -> P1 "try primary"
  P1 -> FCC "429 or timeout"
  Pick -> P2 "next in list"
  P2 -> Agent "response"
  Dev -> FCC "Admin UI config"
  glow FCC color=#3b82f6
  glow P2 color=#22c55e
}

player:
    playback:
      loop true
    controls:
      speed true
      speeds "0.25"
      fullscreen true
      gif true
      theme true
    interaction:
      zoom true
      pan true
      click_to_play true
      double_click_to_reset true
      keyboard false
    chrome:
      badge true
      progress none
```

***

## Phần 3: Chẩn Đoán - thuật ngữ dễ gây lú

![Image](https://raw.githubusercontent.com/HoangGeek/store/refs/heads/main/webp/free-claude-code-explained-gallery-05.webp)

### Slug `provider-id/model-id`

Model trong Admin UI dùng slug hai phần: `open_router/openrouter/free`, `groq/llama-3.3-70b-versatile`, `ollama/llama3.1`. Prefix chọn adapter; suffix là model ID chính xác của provider. Nếu provider không list model, gõ slug thủ công.

### Routing theo tier (Fable, Opus, Sonnet, Haiku)

Claude Code gắn nhãn tier nội bộ. FCC cho map mỗi tier sang backend khác:

- `MODEL` - mặc định cho mọi thứ.
- `MODEL_OPUS`, `MODEL_SONNET`, `MODEL_HAIKU`, `MODEL_FABLE` - override theo tier; **None** kế thừa `MODEL`.

Chiến lược ví dụ: task tier Opus trên NIM free lớn, tier Haiku trên tag `lmstudio/` nhanh, `MODEL` mặc định trên OpenRouter free.

```markdy
scene width=1280 height=720 duration=8
theme: light=doodle dark=nebula
layout TB

client CC "Claude Code"
service FCC "fcc-server"
service Opus "MODEL_OPUS"
service Sonnet "MODEL_SONNET"
service Haiku "MODEL_HAIKU"
service Def "MODEL default"

beat tiers "Route by Claude Code tier" {
  show $nodes stagger=60ms
  CC -> FCC "request + tier"
  FCC -> Opus "heavy"
  FCC -> Sonnet "balanced"
  FCC -> Haiku "cheap fast"
  FCC -> Def "unset tier"
  glow FCC color=#3b82f6
}

player:
    playback:
      loop true
    controls:
      speed true
      speeds "0.25"
      fullscreen true
      gif true
      theme true
    interaction:
      zoom true
      pan true
      click_to_play true
      double_click_to_reset true
      keyboard false
    chrome:
      badge true
      progress none
```

### Điều khiển reasoning

**Admin UI → Model Config → Reasoning** có thể ép effort off/low/high hoặc pass-through từ client. Provider bỏ qua cờ reasoning thì giữ hành vi native - FCC không bịa chain-of-thought.

### Tích hợp messaging (Discord / Telegram)

FCC không chỉ terminal. Cấu hình **Admin UI → Messaging** để chạy agent từ chat, với `/stats`, `/stop`, `/clear`. Voice note tùy chọn qua Whisper local hoặc NVIDIA NIM - gần pitch omnichannel của OpenClaw, nhưng phạm vi **session coding-agent** trong thư mục được phép.

### "Thân thiện ToS" - thực chất là gì

FCC marketing tuân thủ: dùng API và flow subscription chính thức (vd. kết nối ChatGPT trong Admin UI), gỡ tích hợp khi provider cấm. Đó **không** đảm bảo tài khoản an toàn tuyệt đối - điều khoản provider đổi. Coi free tier là **best-effort**, đọc giới hạn từng provider, tránh chia sẻ key cho automation lạm dụng.

### FCC vs. proxy Claude không chính thức

| Cách tiếp cận | Rủi ro | Bạn nhận được |
|:---|:---|:---|
| Relay "free Claude API" ngẫu nhiên | Cao - thường vi phạm ToS, key lộ | Dễ vỡ, roulette ban tài khoản |
| Anthropic API trực tiếp | Thấp - chính thức | Đầy đủ, trả theo token |
| **FCC** | Trung bình - phụ thuộc provider **bạn** cấu hình | Đa agent, đa provider, kiểm soát local |

***

## Phần 4: Cách Triển Khai - tradeoff và khi nào dùng

![Image](https://raw.githubusercontent.com/HoangGeek/store/refs/heads/main/webp/free-claude-code-explained-gallery-06.webp)

### Khi FCC phát huy

- Bạn đã xoay giữa **free tier** (NIM, OpenRouter free, Groq, Gemini flash) và muốn một mặt cấu hình.
- Chạy **nhiều agent** (Claude Code + Codex + Pi) và không muốn nhân đôi key trong ba file env.
- Outage provider hay gặp ở khu vực bạn - **fallback có thứ tự** cứu buổi refactor dở dang.
- Muốn **model local hoặc hybrid** (Ollama, LM Studio, llama.cpp) trong cùng picker với cloud.
- Thử nghiệm từ **điện thoại hoặc chat** qua Discord/Telegram mà không dựng automation quy mô OpenClaw.

### Khi nên bỏ qua hoặc hoãn

- Team chuẩn hóa **một hợp đồng Anthropic enterprise** - thêm Python proxy là overhead thuần ops.
- Cần **SLA vendor, audit trail, ticket hỗ trợ** - FCC là infra hobby MIT, không phải managed gateway.
- Không chạy được **service local persistent** (laptop corp khóa, chỉ CI ephemeral).
- Kỳ vọng **fidelity model frontier** mỗi session - route free có thể lùi so với Opus mới nhất.

### So với OpenClaw

[OpenClaw](/vi/openclaw-explained/) là **operator cá nhân chủ động** qua messaging, cron, và OS node. FCC là **model router cho coding agent**. Hai lớp khác nhau: OpenClaw quyết *khi nào* hành động; FCC quyết *model nào trả lời* khi Claude Code đã có prompt. Có thể chạy cả hai - OpenClaw kích hoạt task, FCC hỗ trợ session code - nhưng không thay nhau.

```markdy
scene width=1280 height=720 duration=8
theme: light=doodle dark=nebula
layout TB

decision Need "Need AI coding"
service Direct "Direct API"
service FCC "FCC proxy"
service OpenClaw "OpenClaw"
service Simple "One vendor"
service Multi "Many providers"
service Ops "Local service"
service Auto "Proactive agent"

beat compare "Pick the right layer" {
  show $nodes stagger=60ms
  Need -> Direct "paid contract"
  Direct -> Simple "lowest ops"
  Need -> FCC "free tiers + agents"
  FCC -> Multi "catalog + fallback"
  FCC -> Ops "fcc-server"
  Need -> OpenClaw "24/7 operator"
  OpenClaw -> Auto "cron + chat"
  glow FCC color=#22c55e
  glow Direct color=#3b82f6
  glow OpenClaw color=#a855f7
}

player:
    playback:
      loop true
    controls:
      speed true
      speeds "0.25"
      fullscreen true
      gif true
      theme true
    interaction:
      zoom true
      pan true
      click_to_play true
      double_click_to_reset true
      keyboard false
    chrome:
      badge true
      progress none
```

### Setup tối thiểu theo hướng production

1. Chạy `fcc-server` trên máy luôn bật (home server hoặc dev box).
2. Bật **Proxy Authentication** nếu port reachable trên LAN.
3. Cấu hình **tối thiểu hai provider** - chính + fallback.
4. Ghim version: chạy lại install script để update; kiểm `fcc-server --version` trước upgrade.
5. Giữ onboarding Claude Code ổn: set `"hasCompletedOnboarding": true` trong `~/.claude.json` nếu vẫn bị hỏi login sau khi cấu hình FCC.

***

## Final Take

![Image](https://raw.githubusercontent.com/HoangGeek/store/main/webp/ai-free-claude-code-explained-04.webp)

**Free Claude Code là universal adapter cho coding agent** - không phải bữa trưa miễn phí, mà là control plane local khiến free tier, subscription, và model local trông như một catalog cho Claude Code, Codex và bạn bè.

Một câu nhớ: *trỏ mọi agent vào `localhost:8082`, để FCC ôm chaos provider.*

**Làm hôm nay:** cài FCC, cấu hình một free provider, chạy `fcc-claude`, và thêm fallback model trước buổi refactor dài tiếp theo.
