1. 从终端里跑通 gemini-cli 这件事gemini-cli 是 Google 官方开源的命令行 AI 工具能让你直接在终端里对话、读代码、改文件、跑命令适合习惯用 shell 干活的开发者。它和编辑器里的插件不一样本质是一个跑在本地的 CLI 客户端通过 API Key 调用远端模型所以只要 Key 和网络通道配好就能在任意项目目录里唤起它。我平时写脚本、查日志、批量改配置都懒得切窗口gemini-cli 这种「终端里直接问」的形态很顺手。但真正上手时卡人的往往不是命令本身而是三件事Node 版本不够、API Key 不知道填哪、请求发不出去。这篇就按「从零安装到首次调用」的完整链路走一遍把 settings.json 配置骨架、TaoToken 统一 Key 接入、以及一条 curl 验证命令都给你目标是让你本地稳定跑通。适合谁看会用终端、装过 Node、想给命令行加一个 AI 助手的开发者。不需要你懂模型原理跟着敲命令就行。2. 装之前先把 TaoToken 的 Key 和通道准备好gemini-cli 默认走 Google 的接口但很多人的网络环境直连不稳定而且不同模型要配不同 Key管理起来很碎。我的做法是用 TaoToken 做统一入口一个 Key、一个 API 地址把模型调用收敛到一处gemini-cli 里只填这一套就行。TaoToken 的定位是统一的模型 API 通道官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 。你需要先去控制台建一个 API Key路径是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。建好之后复制那串 Key后面配置里要用。这里说清楚一点TaoToken 是合规的 API 聚合通道不是让你绕开什么它解决的是「多个模型多个 Key 太乱」的问题。你把它当成一个统一的网关就行gemini-cli 只管往这个网关发请求。如果你后面想长期在终端里做编码、跑 Agent 任务可以顺带看下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它更适合高频调用场景。只是想先跑通用按量的 Key 就够了。3. 安装 gemini-cli 并写 settings.json 配置骨架3.1 确认 Node 版本gemini-cli 要求 Node 20 以上先查一下node -v如果低于 20去 Node 官网装 LTS 版本或者用 nvm 切换nvm install 20 nvm use 20版本不够是最常见的第一个坑命令能装但一跑就报错基本都是这里。3.2 安装 gemini-cli两种方式选一个npm install -g google/gemini-cli或者不装全局直接用 npx 跑npx google/gemini-cli全局装的好处是随时gemini就能唤起npx 的好处是不污染全局环境。我一般全局装省得每次敲一长串。3.3 写配置骨架gemini-cli 的配置可以放在用户目录下的.gemini/settings.json也可以放项目里的.gemini/settings.json。项目级配置优先级更高适合不同项目用不同模型。下面是一个可复制的骨架{ apiKey: 你的_TaoToken_Key, baseUrl: https://taotoken.net/api, model: gemini-2.5-pro, temperature: 0.7, maxOutputTokens: 8192 }字段说明用表格对照一下字段作用建议值apiKey调用凭证控制台复制的 TaoToken KeybaseUrlAPI 基址https://taotoken.net/apimodel默认模型按需选如 gemini-2.5-protemperature随机性写代码建议 0.2–0.7maxOutputTokens单次最大输出8192 起步注意baseUrl 结尾不要多加斜杠写成https://taotoken.net/api就行多一个/有些客户端会拼出双斜杠导致 404。如果你更习惯用环境变量也可以不写进 settings.json改成在 shell 里导出export GEMINI_API_KEY你的_TaoToken_Key export GEMINI_API_BASEhttps://taotoken.net/api环境变量的好处是换 Key 不用改文件坏处是每个新终端都要重新导出建议写进.bashrc或.zshrc。4. 验证请求先 curl 再进 CLI配置写完别急着开 CLI先用一条 curl 确认通道是通的。这一步能把「Key 错」「地址错」「网络不通」三类问题提前暴露出来。curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer 你的_TaoToken_Key \ -H Content-Type: application/json \ -d { model: gemini-2.5-pro, messages: [{role: user, content: 只回复两个字通了}] }正常返回会是一段 JSON里面choices[0].message.content就是模型回复。如果返回 401是 Key 不对返回 404多半是 baseUrl 或路径拼错一直卡住没响应检查网络出口是否正常。curl 通了之后进项目目录直接跑cd 你的项目目录 gemini第一次启动会让你选登录方式选 API Key 模式把 TaoToken 的 Key 填进去。之后就能在终端里直接对话了比如让它读某个文件、解释一段报错、生成一个脚本。实测下来把 baseUrl 指向 TaoToken 之后模型切换只需要改 settings.json 里的model字段Key 不用动这点比每个模型配一套 Key 省心很多。5. 本篇常见报错排查5.1 Node 版本报错报错里出现engine或requires Node 20就是版本不够。用node -v确认低于 20 就升级。别用系统自带的旧 Node容易和包管理器冲突。5.2 401 UnauthorizedKey 错了或者没带上。检查三处settings.json 里的apiKey、环境变量GEMINI_API_KEY、以及 curl 命令里的 Bearer 后面那串。注意别把 Key 前后的空格复制进去。5.3 404 或路径拼接错误多半是 baseUrl 写成了https://taotoken.net/api/带尾斜杠或者写成了https://taotoken.net少了/api。统一写成https://taotoken.net/api。5.4 请求超时或连接被重置先确认 curl 能不能通。curl 也不通的话是网络出口问题不是 gemini-cli 的问题。curl 通但 CLI 不通检查 CLI 是否读到了正确的配置文件——项目级.gemini/settings.json会覆盖用户级的别在项目里留了个旧配置。5.5 模型名不存在model字段填了通道不支持的模型名会报错。去模型列表页确认可用模型或者先用一个确定存在的名字跑通再换。模型对话页在 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 可以对照着选。5.6 配置改了不生效gemini-cli 启动时读配置改完要重启 CLI。另外确认你改的是当前生效的那份配置用户级和项目级别搞混。6. 把 Key 和通道固定下来后面就顺了跑通之后建议把配置固化项目级的.gemini/settings.json提交到仓库时记得把 Key 换成占位符真实 Key 走环境变量注入避免泄露。团队协作时统一 baseUrl 指向 TaoToken每个人用自己的 Key模型切换只改一个字段。需要长期在终端里做编码和 Agent 任务的可以看下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。只是想验证模型效果、临时问几句的直接用模型对话页就行https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 遇到参数问题可以对着查。最后提醒一句curl 验证这一步别跳过它能帮你把问题定位在「通道」还是「客户端」省掉大量瞎试的时间。
阅读完成 · 觉得有帮助?