提供商与模型
当你登录、切换模型,或想了解 Ink 支持哪些提供商时,读这一篇。CLI 参数见 cli.md。
登录:/login
REPL 中的 /login 把凭据存入 ~/.ink/auth.json(权限 0600)。已存储的
key 优先于环境变量。
/login → Z.AI · Anthropic · OpenAI · OpenAI (ChatGPT plan) ·
DeepSeek · Moonshot AI · Moonshot AI CN
/login zai → straight to the key prompt; any family name works
/logout → remove a stored credential (environment variables stay)
每一行显示对应提供商的状态(signed in — stored key、env: ZAI_API_KEY、
not signed in)。ChatGPT 套餐所在的行会在 REPL 中走设备码 OAuth 流程:
Ink 打印验证 URL 和验证码,在后台轮询,Ctrl+C 可以取消而不会强制退出。
家族
Z.ai GLM Coding Plan
官方途径是 zai 家族:
export ZAI_API_KEY=<your z.ai api key>
export INK_MODEL=glm-5.3 # or glm-5.2, glm-4.7, ... per your plan
或者 /login → Z.AI。不带前缀的 glm-* id 会无条件路由到 zai;没有凭据
时 Ink 会打印登录指引(/login zai),绝不静默回退。ZAI_BASE_URL 可覆盖
端点(例如国内镜像 https://open.bigmodel.cn/api/coding/paas/v4)。思考
档位:glm-5.2 = off/high/max;glm-5.3 = low/high/max(无法关闭)。在 zai 家族
出现之前的 anthropic 兼容配置(将 ANTHROPIC_BASE_URL 指向 z.ai)在显式
强制时仍然可用(ink -m anthropic/glm-5.3),且仅支持二元的思考开关。
Anthropic
export ANTHROPIC_API_KEY=sk-ant-...
或者 /login anthropic。ANTHROPIC_AUTH_TOKEN 发送 Bearer 风格的认证;
已存储的 /login anthropic key 会以 x-api-key 风格将其覆盖——在兼容
端点上,优先使用环境变量组合(见下一节)。
任意 Anthropic 兼容服务
export ANTHROPIC_AUTH_TOKEN=<token> # or ANTHROPIC_API_KEY
export ANTHROPIC_BASE_URL=<your endpoint>
export INK_MODEL=<id the endpoint serves>
OpenAI
API key:export OPENAI_API_KEY=...,或者 /login openai。ChatGPT 套餐:
ink login(CLI)或 /login → OpenAI (ChatGPT plan)——设备码 OAuth。
ink logout 只删除 ChatGPT 套餐的凭据。任何 OpenAI 兼容服务(OpenRouter、
MiniMax 等)都可以通过 OPENAI_BASE_URL 配合该端点提供的模型 id 来使用。
DeepSeek
export DEEPSEEK_API_KEY=...
ink -m deepseek/deepseek-v4-pro # or deepseek/deepseek-flash
或者 /login deepseek。DEEPSEEK_BASE_URL 覆盖端点;已存储的 key 优先于
环境变量。
Moonshot / Kimi
export MOONSHOT_API_KEY=...
ink -m moonshotai/kimi-k3 # overseas: api.moonshot.ai/v1
ink -m moonshotai-cn/kimi-k3 # China: api.moonshot.cn/v1
或者 /login moonshotai / /login moonshotai-cn(按家族分别存储 key)。
MOONSHOT_BASE_URL / MOONSHOT_CN_BASE_URL 覆盖端点。思考档位:k2.6 在
off/on 之间切换;k2.7-code 和 k3 始终会思考(k3 接受 reasoning_effort 的
low/high/max;启动档位 medium 映射为 high)。
模型解析与 /model
- 没有任何凭据时,Ink 会如实说明(
no model available — run /login to connect one),而不是假装可用;不可用的模型绝不会被写入会话文件。 - 只配置了一个提供商时,新会话以该家族的推荐模型启动,并给出一行说明;
/model可以更改;/settings defaultModel <id>固定启动默认值。优先 级:-m>INK_MODEL> 设置中的defaultModel> 会话保存值 > 单提供商推荐值 > 内置默认值。 /model [id]从下一轮起生效;Ctrl+L 打开选择器。切换模型或思考档位会 打印一行暗色状态行;连续切换会合并显示。- 思考档位:
/think [level]或 Shift+Tab 循环切换;--thinking/INK_THINKING设置启动档位;所选档位会持久化到设置中,作为下一个会话 的默认值。档位遵循各模型的目录条目——有些模型无法关闭思考(gpt-5 base、 o3、gpt-6),较新的模型提供xhigh/max。
模型目录(pi.dev)
模型元数据——上下文窗口、费用费率、思考档位阶梯、视觉能力、家族模型
列表——来自 pi.dev 的公开目录服务。磁盘缓存
(~/.ink/models-catalog.json)让它可安全离线使用:启动时 Ink 同步加载
缓存(随包内置的静态表是冻结的最终兜底),缓存超过 4 小时未更新时会以
非阻塞方式刷新;打开 /model 会重新检查同一时间窗口。没有周期性轮询。
抓取成功时,目录总是优先于内置表,因此新模型和价格变动无需发布新版 Ink
即可生效。
INK_CATALOG_BASE_URL=https://mirror.example # redirect the catalog source
INK_CATALOG_PATH=/path/to/models-catalog.json # relocate the cache