这次分享一个直接用 API 免费(什么?API 要花钱?)用 CC 的食用方式~


先说用法
git clone https://github.com/chachako/freecc.git
cd freecc
curl -LsSf https://astral.sh/uv/install.sh | sh # 如果已经装了 uv 就忽略
uv venv
uv sync
cp .env.example .env
code .env # 或者其他编辑器
有两种 BIG_MODEL_
和 SMALL_MODEL_
分别是 CC 用来正式请求的 sonnet
和用来辅助请求的 haiku
填你自己的 API_KEY
和 API_BASE
(SMALL_MODEL
记得用便宜快速的,比如 deepseek-v3,不然小心账单爆炸)
如果你用的是基于 OpenAI API 格式的 API Key,保持 BIG_MODEL_PROVIDER
为 “openai”
运行 claude & Enjoy
uv run uvicorn server:app --host 127.0.0.1 --port 8082 --reload
# 运行 claude & Enjoy
export ANTHROPIC_BASE_URL=http://localhost:8082 && claude
注意!!!
确保你的 API 支持 Function Call,不然 CC 就只是一个聊天客户端了,很多第三方 API 并不支持工具函数调用,这一点需要清楚
不过也不是没有解决办法,可以通过 prompt 让 Gemini 以特定的格式输出调用,类似于 RooCode 的 System Prompt 让 AI 输出固定 XML 标签格式的方式。不过这块的调试比较麻烦。
完全用 Gemini 代理 Claude Code 的请求后明显能感觉到架构之类的工作做的更好了,唯一缺点就是 Gemini 在调用工具方面很差劲…
不过,在 CLAUDE.md
里面简单加几句指令后情况有所缓解:
# CLAUDE.md
## 严格遵循的指令
你必须在每次对话前**仔细**阅读你的内部规则,这很重要,否则整个工作流程都无法继续。
请在每次对话开始之前,调用 TodoRead 检查是否存在未完成的任务。当一个任务完成后,必须在回答结束前调用 TodoWrite 更新任务状态。
仔细理解用户的意图,如果它满足你内部规则中的 Tool 条件,强烈要求你调用合适的 Tool。
看了一下 CC 的原始请求,发现 prompt 里面做了大量的 example 举例,由于模型之间存在差异,我怀疑 Gemini 这种超长上下文窗口的模型会不会因此反而更容易理解错重点和产生幻觉?
不确定如果单独为 Gemini 定制一套 System Prompt 会不会有奇效…
另外 CC 是真的成本杀手
(等一个支持 Function Call 的 AI Studio 2api 😍
),每次输入框输入字都会调用小模型 haiku
先让 AI 检查输入,后台似乎也会发送辅助请求
