Gemini Cli 在国内无法直接使用,一种解法是使用代理,但是考虑到有时候配置代理不见得比加一个反代 endpoint 简单多少,所以尝试了一下替换域名的方式。
本文使用了 GEMINI_API 的认证方式。
export GEMINI_API_KEY=xxx
首先根据 npm root -g 确定安装位置,在 MacOS 下可以直接 cd /opt/homebrew/lib/node_modules/@google/gemini-cli/node_modules/@google/gemini-cli-core
编辑文件 dist/index.js,将文件修改为以下内容。
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
export {
DEFAULT_GEMINI_EMBEDDING_MODEL,
DEFAULT_GEMINI_FLASH_MODEL,
DEFAULT_GEMINI_MODEL,
} from "./src/config/models.js";
export * from "./src/index.js";
//# sourceMappingURL=index.js.map
import { Agent, Dispatcher, setGlobalDispatcher } from "undici";
class RewritingDispatcher extends Dispatcher {
#underlyingDispatcher;
#from;
#to;
constructor(from, to, options) {
super();
this.#underlyingDispatcher = new Agent(options);
this.#from = from;
this.#to = to;
}
dispatch(options, handler) {
const { origin } = options;
const url = new URL(origin);
if (url.hostname === this.#from) {
const newOptions = { ...options };
url.hostname = this.#to;
newOptions.origin = url.toString();
return this.#underlyingDispatcher.dispatch(newOptions, handler);
}
return this.#underlyingDispatcher.dispatch(options, handler);
}
}
const rewritingDispatcher = new RewritingDispatcher(
"generativelanguage.googleapis.com",
"YOUR REVERSE PROXY DOMAIN"
);
setGlobalDispatcher(rewritingDispatcher);
One more thing:
据说下面的方法可以白嫖 1000次 gemini pro,但是我没有重度使用过 gemini cli,一直没有用完额度,没有验证过。
vi dist/src/config/models.js
flash 改成 pro
参考文档
本作品使用基于以下许可授权:Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.