渠道
渠道页:查看每个提供商的状态,登录站点或添加 API 密钥,管理账号的续期、过期、余额与签到,查看额度,并为单个渠道设置网络线路。
渠道 页管理模型从哪里来。一个渠道就是一个提供商:免费站点(如 Cline、TRAE、Qoder)、云服务(如 Azure、Bedrock、Vertex)、本地服务(如 Ollama、LM Studio),或者 agg 聚合账号。每个渠道下可以有多个账号,网关在账号之间轮换。各提供商的区别和选择方法见渠道概念。
页面左侧是渠道列表,右侧是所选渠道的详情;窗口较窄时只显示其中之一,详情页左上角的返回按钮回到列表。所选渠道记在地址中(如 #/channels/cline),刷新后仍然打开它。
渠道列表
列表包含已经设置的渠道,以及可以直接登录或填写密钥、只是还没设置的站点。每一行显示:
- 状态圆点和名称;不是 就绪 时右侧有状态标记。
- 账号数量(N 个账号);匿名渠道显示 无需账户,还没设置的显示 未设置。
- 今天用过时,显示今天的 Token 量(今日 N Token)。
- 站点报告了额度时,下方有一条额度条:剩余 10% 及以下为红色,25% 及以下为琥珀色。
| 状态 | 含义 |
|---|---|
| 就绪 | 正常服务 |
| 需要处理 | 仍在服务,但有需要人处理的事:某个账号需要重新登录、令牌已过期、账户被暂停轮换,或者被限流过、额度只剩 10% 及以下 |
| 已关闭 | 渠道被你关闭了 |
| 未设置 | 没有可用的账号,也不是匿名渠道 |
列表上方:
- 搜索供应商:按渠道 id 或名称搜索。
- 筛选:全部、使用中(就绪和需要处理)、需要处理、未设置、已关闭,每项带数量。
- 右侧是每日签到的状态(已完成 · 时间 或 今日尚未签到,悬停可看上次的结果)、全部签到 按钮和 续期所有账户 图标按钮,见下文的签到与余额和凭据续期。
保存某个渠道(开启它、添加第一个账号)后,它在服务器返回的顺序中可能会变,但列表中的行保持原位,不会从鼠标下跳走;刷新页面后才按新顺序排列。
渠道详情
点一行打开它的详情。顶部是名称、渠道 id 和 已启用 开关,下面是一排操作:
| 操作 | 作用 |
|---|---|
| 登录 | 支持浏览器登录的站点的主操作,见登录站点 |
| 添加账号 | 使用 API 密钥等凭据的渠道的主操作,见添加账号 |
| 立即续期 | 有账号时出现,对这个渠道运行一轮凭据续期 |
| ⋮ 菜单 | 立即续期、立即签到(有账号时);两种方式都支持时,不是主操作的 添加账号 也在这里;查看用量 打开用量页 |
渠道需要处理时,操作下方出现一条提示,逐条列出原因,例如 2 个需重新登录、1 个已过期、1 个暂停轮换、限流 ×3、额度表头无法解析 ×1、额度仅剩 8%。
开启与关闭
已启用 开关写入 config.json 的 providers.<id>.enabled,立即生效。关闭后该渠道不再参与服务,它的模型也从目录中消失;账号仍保留在配置中,重新开启即可恢复。给关闭的渠道添加账号会自动重新开启它。
登录站点
免费站点通过浏览器发放凭据,不需要手动粘贴密钥。点 登录,对话框按三步显示进度:获取链接、在浏览器中完成、已登录。
获取链接
网关向站点请求登录链接,显示 正在获取登录链接…。
在浏览器中完成
链接一到,浏览器就在新标签页中打开站点的登录页(提示 已在浏览器打开站点登录页,请在那里完成。)。对话框中同时显示这个链接和复制按钮,标签页没有自动打开时可以手动打开。
- 使用设备码的站点会显示 验证码 及复制按钮:在授权页面输入它。
- 通过本机回调完成登录的站点(如 Codex、Gemini、TRAE、CodeArts、LobsterAI)会显示 授权码或回调地址 输入框。浏览器和 Hoshimi 不在同一台机器上时,回调到不了服务器:登录完成后把浏览器地址栏中最终的回调地址整个复制下来,粘贴到这里,点 提交授权码。Anthropic 也接受
code#state形式。 - 对话框底部显示 此次登录将于 某时 失效。
已登录
站点返回后,账号写入 config.json 并立即加入账号池,提示 已登录为 账号 id。。点 完成 关闭对话框。
关闭对话框(无论怎样关闭)都会取消尚未完成的登录,之后迟到的回调不会再保存账号。失败时对话框显示原因,点 重试 重新开始。用同一个站点身份再次登录会替换原来的账号,不会叠加出第二个。
Cline 有两种登录方式,在 Cline 渠道详情的 网络 部分选择 Cline 登录方式:设备码(SDK)(默认)或 浏览器(扩展)。修改只影响之后的登录,已有账号保持登录时所用的身份。
同样的登录也可以在命令行完成,适合没有图形界面的服务器:
hoshimi login # 列出支持登录的站点
hoshimi login qoder # 打开登录页并等待完成
hoshimi login codex --no-open --manual # 只打印链接,手动粘贴回调地址每个站点的登录方式、能用的模型和注意事项见免费站点;EAC 的登录见 EAC。
添加账号
使用 API 密钥或其他凭据的渠道点 添加账号。表单因提供商而异,由服务器按该提供商实际接受的字段生成:
- 提供商支持多种鉴权方式时,先在 鉴权方式 中选择一种,例如 Bedrock 的 API 密钥、AWS 访问密钥、AWS 配置档案、AWS 默认凭据,Vertex 的 API 密钥、Google 默认凭据、Google 服务账号文件,EAC 的 内置 EAC 中继(GitHub 登录)、自定义 EAC Worker 中继、EAC Bearer 直连中继。
- 常见字段有 API 密钥、API 地址(可选)(留空使用默认地址)、模型 ID(以空格或逗号分隔,也接受 JSON 数组)、通信协议,以及云服务特有的字段,如 Azure 资源名称、部署映射(JSON)、Cloudflare 账号 ID、AWS 区域(默认 us-east-1)。
- 本地服务(Ollama、LM Studio、llama.cpp)使用 本地服务(密钥可选);网关只在添加账号之后才会连接本地服务。
- 账号 ID(可选):留空则由网关自动命名。同一渠道中已有同名账号时会被拒绝。
点 保存账号。网关先让提供商检查这份凭据,通过后把它追加到 config.json 中该渠道的账号列表(不会替换已有账号),并立即加入运行中的账号池,提示 账号 账号 id 已添加。。密钥保存在 config.json 中,之后不会再回传给浏览器。
agg 聚合渠道的表单不同:在 站点 中从可搜索的列表里选一个站点,或选 自定义地址… 并在 Base URL 中填写该站点的 OpenAI 兼容根地址,再填 API key。站点列表可以用 hoshimi stations 查看,见聚合账号。
账号
账户 部分列出这个渠道的每个账号:
- 账号 id。
- 一行状态说明:令牌何时过期(如“3小时后过期”“2天前已过期”,悬停可看确切时间)、余额(数量和单位,或站点返回的说明)、暂停轮换的原因及恢复时间(如“被限流,10分钟后恢复”)。账号出错时另起一行显示最近的错误。
- 右侧是今天的 Token 量和最近一次使用的时间。
- 状态标记和 ⋮ 菜单。
| 状态 | 含义 |
|---|---|
| 就绪 | 可以使用 |
| 需要登录 | 站点拒绝了刷新令牌,必须重新登录 |
| 已过期 | 令牌已过期 |
| 暂停中 | 因 被限流 或 被策略阻止 暂时退出轮换,到时自动恢复 |
| 出错 | 最近的续期失败了,下一轮会再试 |
暂停轮换的时长按站点给出的重置时间计算,站点没有说明时默认一小时。暂停只记在内存中,重启后清除。轮换和重试的完整规则见模型能力与推理强度。
账号的 ⋮ 菜单:
- 立即续期:账号有刷新令牌时出现,对这个渠道运行一轮续期。
- 删除:确认 删除这个账号? 后,凭据从
config.json和运行中的账号池中移除。重新登录即可恢复。
config.json 就是凭据库
账号的密钥和令牌都明文保存在数据目录的 config.json 中(尽量设置为仅所有者可读)。不要分享填好的配置文件。用 hoshimi config path 查看它的位置,见数据目录与路径。
凭据续期
设置 › 自动化 › 凭据续期 打开时(默认打开),网关在启动 30 秒后开始,每 30 分钟检查一遍所有带刷新令牌的账号:令牌将在一小时内过期,或者没有记录过期时间的,就续期。续期得到的新令牌写回 config.json 中对应的账号。
- 站点拒绝刷新令牌(401/403,或明确说明令牌无效)时,账号标为 需要登录,不再重试,需要重新登录。
- 其他失败(网络问题、站点错误)标为 出错,下一轮再试。
- 立即续期 和 续期所有账户 立即运行一轮,使用与定时任务相同的规则:只续期快要过期的账号。
定时续期打开时,渠道页每 30 秒刷新一次,续期的结果会自动显示出来。
签到与余额
一些站点每天发放免费额度,需要“签到”领取。设置 › 自动化 › 每日签到 打开时(默认打开),网关在启动 30 秒后签到一次,之后每 24 小时检查一次;当天(按站点统一使用的北京时间 UTC+8 计算)已经签过就跳过。签到逐个账号依次进行,不会同时向多个站点发请求,以免触发风控。不支持签到的站点自动跳过。
- 列表上方的 全部签到 立即为所有渠道的所有账号签到;渠道详情 ⋮ 菜单中的 立即签到 只签这个渠道。站点通常对第二次签到回答“已领取”,重复点击没有坏处。
- 列表上方的状态只反映定时签到:已完成 · 时间 表示今天的定时签到已经领到,今日尚未签到 表示还没有。
- 渠道详情的 最近签到 列出这个渠道最近 5 次签到的结果:已领取 或 失败、账号、站点的说明、领到的额度(+N)和时间。全部签到记录保留 365 天,可以通过
GET /api/v1/credits/checkins读取。
余额在打开渠道页时向各站点查询一次(GET /api/v1/credits),显示在每个账号的状态行中。没有余额接口的站点不显示。
今日
今日 部分显示这个渠道今天(服务器本地时间)的 token、调用次数、缓存命中 和 失败 次数。
额度
很多站点在每个响应中通过限流响应头报告剩余额度。网关从正常的响应中读取它,不会额外发请求;有读数时详情页出现 额度 部分:
| 项目 | 说明 |
|---|---|
| 额度条 | 剩余百分比;10% 及以下为红色,25% 及以下为琥珀色 |
| 剩余 | 剩余量 / 上限 |
| 来源 | 读数来自哪个响应头 |
| 更新于 | 最近一次读数的时间;超过五分钟时副标题提示 最近一次读数已超过五分钟。 |
| 已见响应 | 读取过的响应数 |
| 被限流 | 429 的次数 |
| 凭据被拒 | 401/403 的次数 |
| 服务器错误 | 5xx 的次数 |
网关按下面的顺序取第一对能解析的“剩余/上限”响应头:
| 剩余 | 上限 |
|---|---|
x-ratelimit-remaining-requests | x-ratelimit-limit-requests |
x-ratelimit-remaining | x-ratelimit-limit |
ratelimit-remaining-requests | ratelimit-limit-requests |
ratelimit-remaining | ratelimit-limit |
x-ratelimit-remaining-requests-day | x-ratelimit-limit-requests-day |
x-ratelimit-remaining-day | x-ratelimit-limit-day |
格式不对的响应头计为“额度表头无法解析”。额度读数只保存在内存中,界面只显示响应头的名称,不显示其原始值。
网络
每个渠道可以有自己的网络线路,覆盖 设置 › 网络 中的全局设置。在 请求出口 中选择:
| 选项 | 作用 |
|---|---|
| 继承全局配置 | 默认,使用 设置 › 网络 的设置 |
| 自动(环境代理) | 读取 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 和 NO_PROXY 环境变量;此时还可以打开 无环境代理时使用 Windows 系统代理 |
| 直连 | 不使用任何代理 |
| 指定代理 | 在 代理地址 中填写 HTTP(S) 或 SOCKS5 地址后点 保存;清空 回到继承 |
这条线路覆盖网关为这个渠道发出的所有请求:模型目录、推理、登录、令牌刷新、余额查询和签到。代理地址保存后只显示 已配置代理,保存可替换。,不会再显示出来。指定的代理连不上时不会退回直连。
这一部分下方还会列出这个渠道最近失败的网络操作:操作(如 模型目录、推理请求、令牌刷新、签到)、失败类型(如 连接超时、代理连接失败、地区限制、需要浏览器授权)、HTTP 状态码和时间;悬停可以看到目标主机和所用的线路。成功的操作不列出。
网络设置的完整说明见网络与代理。