命令参考
hoshimi 的每一条命令:作用、参数与选项及其默认值、输出格式、--json 的字段和示例,内容取自各命令的 --help 与源码。
本页按用途列出全部命令。共同约定(配置从哪里读取、--json、退出码、日志)见命令行概览,环境变量见环境变量。
每条命令都接受下面两个选项,表格中不再重复:
| 选项 | 作用 |
|---|---|
--debug | 打印调试日志 |
--help | 显示帮助并退出 |
参数写作 <name> 的是必填,[name] 是可选。
服务器
serve
启动服务器:兼容 OpenAI 与 Anthropic 的 API,加上 Web UI。
hoshimi serve [OPTIONS]| 选项 | 默认值 | 作用 |
|---|---|---|
--host TEXT | 配置中的 server.host(127.0.0.1) | 监听地址 |
--port INTEGER | 配置中的 server.port(10600) | 第一个尝试的端口,范围 0–65535;0 由系统挑选任意空闲端口 |
--strict-port / --no-strict-port | 配置中的 server.strict_port(关闭) | 端口被占用时直接失败,而不是尝试下一个端口 |
--open / --no-open | --open | 就绪后在浏览器中打开 Web UI |
--access-token TEXT | 配置中的 server.access_token | Web UI 与管理接口的工具访问密钥 |
--model-api-key TEXT | 配置中的 server.model_api_key | 外部 /v1/ 模型请求的独立 API 密钥 |
--default-model TEXT | 配置中的 server.default_model | 请求省略 model 时使用的模型 |
--refresh / --no-refresh | --refresh | 定时续期凭据(关闭则需要手动更换令牌) |
--checkin / --no-checkin | --checkin | 每日定时签到领取免费额度(关闭则需要手动领取) |
--ui / --no-ui | --ui | 在 API 旁边提供 Web UI;--no-ui 只提供 API |
这些选项都只作用于本次启动,不会写入 config.json。--access-token、--model-api-key、--default-model 给空字符串时不起作用,沿用配置中的值。
--refresh 与 --checkin 总是覆盖配置
serve 总是用这两个开关的值设置凭据续期和每日签到,而它们默认开启。因此即使 config.json 里写了 server.auto_refresh: false 或 server.auto_checkin: false(或在 设置 › 自动化 中关闭过),用 hoshimi serve 启动后它们仍然是开启的。要在启动时保持关闭,加上 --no-refresh 或 --no-checkin。
启动过程:
- 读取配置,叠加上面的选项,按配置构建渠道。
- 地址不是本机回环地址(
127.*、localhost、::1)时,打印警告。没有工具访问密钥时拒绝启动(退出码 4);没有模型 API 密钥时警告外部模型接口不需要密钥即可调用。同时必须配置了security.allow_cidrs,否则也拒绝启动(退出码 4)。见安全。 - 绑定端口。端口被占用时依次尝试下一个,直到 65535,再从 1024 绕回;换了端口会警告
Port 10600 is unavailable. Using port 10601.。--strict-port下只尝试一个端口。找不到可用端口时以退出码 3 结束。 - 把地址写入数据目录的
server.json,在标准输出打印一行SERVER_READY url=<地址>,并记录Hoshimi running on <地址>。监听0.0.0.0或::时,打印的地址用127.0.0.1。 - 启用了
--open时,稍后在浏览器中打开这个地址。
按 Ctrl+C 停止;退出时删除 server.json。没有构建好的 Web UI(源码安装而未构建)时,日志警告一句并只提供 API。
hoshimi serve # 默认:127.0.0.1:10600,打开浏览器
hoshimi serve --no-open --port 11000 --strict-port # 固定端口,不打开浏览器
hoshimi serve --port 0 # 任意空闲端口,看 SERVER_READY 这一行
hoshimi serve --no-ui # 只提供 API
hoshimi serve --default-model kilo-auto/free # 请求不指定模型时用这个检查与查看
check
检查配置并报告会提供哪些渠道和账户,不启动服务器。
hoshimi check [OPTIONS]| 选项 | 作用 |
|---|---|
--json | 打印 JSON |
检查的内容与 Web UI 保存设置时相同:网络策略和代理地址、端口范围、各项上限、Playground 设置,以及安全规则(例如监听非本机地址必须同时配置 security.allow_cidrs 和 server.access_token;security.allow_origins 需要 server.access_token)。有问题时以退出码 2 结束并说明原因。
$ hoshimi check
ok: 2 provider(s), 0 account(s) — kilo:0 (keyless), opencode:0 (keyless)
config: /home/you/.local/share/hoshimi/config.json每个渠道写作 <id>:<账户数>,不需要账户的渠道在没有账户时标为 (keyless)。一个渠道都没有启用时打印一行错误,退出码为 2。
--json 的字段:
| 字段 | 内容 |
|---|---|
config_path | 配置文件路径 |
providers | {渠道 id: 账户数} |
accounts | 账户总数 |
keyless | 不需要账户的渠道 id 列表 |
models | 模型数量 |
使用 --json 时,即使没有启用任何渠道,退出码也是 0。
models
列出可用模型,即 GET /v1/models 返回的同一份列表。
hoshimi models [OPTIONS]| 选项 | 作用 |
|---|---|
--provider TEXT | 只显示这个渠道(渠道 id,如 kilo)的模型 |
--json | 打印 JSON:[{"id": "<模型 id>", "provider": "<渠道 id>"}, …] |
表格有 Model 和 Provider 两列。多个渠道提供同一个模型 id 时只列出一次,归在排在前面的渠道下。
hoshimi models
hoshimi models --provider opencode
hoshimi models --json | jq -r '.[].id'providers
列出已配置的渠道,以及各自的账户数和模型数。
hoshimi providers [OPTIONS]| 选项 | 作用 |
|---|---|
--json | 打印 JSON |
表格列为 Id、Name、Accounts、Models;被关闭的渠道在表格下方以 disabled: … 列出。账户数不包括匿名渠道内置的匿名身份。
--json 的结构:
{
"providers": [
{"id": "opencode", "display_name": "OpenCode Zen", "accounts": [], "keyless": true, "models": 9},
{"id": "kilo", "display_name": "Kilo AI", "accounts": [], "keyless": true, "models": 17}
],
"disabled": []
}accounts 是账户 id 的列表,disabled 是被关闭的渠道 id 列表。模型数量取决于上游当时的目录。
stations
列出 agg 账户可以作为 preset 使用的站点。
hoshimi stations [OPTIONS]| 选项 | 作用 |
|---|---|
--json | 打印 JSON |
表格列为 Id、Name、Base URL、Key env,表格下面提示用法:
Use one in config.json: "providers" → "agg" → "accounts" → {"preset": "<id>", "api_key": "..."}
The key env var is the name the upstream reads its key from; Hoshimi reads config.json only.Key env 只是上游工具惯用的环境变量名,方便你知道去哪里找密钥;Hoshimi 不读取这些变量,密钥要写在 config.json 的账户里。--json 输出 {"stations": [...]},每项有 id、display_name、base_url、key_env,以及 catalog_keyless(不带密钥也能获取模型列表)。用法和全部预设见 agg 聚合。
version
显示 Hoshimi、Python 以及主要组件(fastapi、uvicorn、pydantic、typer、httpx、rich)的版本。
hoshimi version [OPTIONS]| 选项 | 作用 |
|---|---|
--json | 打印 JSON:{"hoshimi": "…", "python": "…", "components": {"fastapi": "…", …}} |
没有安装的组件在表格中显示 not installed,在 JSON 中为 null。
env
列出 Hoshimi 读取的环境变量,以及当前设置了哪些。
hoshimi env [OPTIONS]| 选项 | 作用 |
|---|---|
--json | 打印 JSON:{"known": {名称: 说明}, "set": {名称: 值}} |
第一张表 Environment variables 列出已知变量和说明;当前环境中设置了任何以 HOSHIMI_ 开头的变量时,第二张表 Set now 列出它们的值,名字含 TOKEN 或 KEY 的显示为 ***。各变量的含义见环境变量。
登录
login
登录一个站点(通过浏览器授权),站点返回凭据后,账户写入 config.json。
hoshimi login [OPTIONS] [PROVIDER]| 参数 / 选项 | 默认值 | 作用 |
|---|---|---|
[PROVIDER] | — | 要登录的站点;省略时列出支持交互登录的站点 |
--open / --no-open | --open | 在浏览器中打开站点的登录页 |
--manual | 关闭 | 提示输入授权码或回调 URL(输入内容不回显) |
支持交互登录的站点:anthropic、buddy、cline、codearts、codex、eac、gemini、github-copilot、kilo、kimi-coding、lobsterai、loomy、meta、minimax、openai、openrouter、qoder、qodercn、raccoon、radius、trae、workbuddy、xai、zcode。
流程:
- 命令向站点请求登录链接,打印
Authorize at <链接>;设备码类站点还会打印Authorization code: <代码> — <链接>,在授权页输入这个代码。 - 启用
--open时自动在浏览器中打开链接;打不开时提示手动访问。 - 每 2 秒询问一次结果。成功时打印
Signed into <站点> as <账户 id>.,账户已写入配置;失败时以退出码 1 结束。 - 10 分钟内站点没有答复则超时(退出码 1)。
用同一个站点身份再次登录,会替换原有账户,而不是再加一个。站点名不在列表中时退出码为 2。
hoshimi login # 列出支持登录的站点
hoshimi login cline # 打开浏览器完成登录
hoshimi login codex --no-open # 只打印链接,在别处打开
hoshimi login gemini --manual # 浏览器在另一台机器上:完成后把回调 URL 粘贴回来--manual 用于浏览器和 Hoshimi 不在同一台机器的情况:许多站点把授权结果回调到本机的回环端口,另一台机器上的浏览器到不了这个端口;这时把浏览器最终跳转到的回调 URL(或页面上的授权码)粘贴到提示中即可。各站点的登录方式和回调端口见免费站点。
运行中的服务器不会读取命令行登录写入的账户,重启后生效;在 Web UI 的 渠道 页登录则立即生效。
配置
config 下的命令读写数据目录里的 config.json。键用点号分隔,例如 server.port、security.allow_cidrs、providers.kilo.enabled。全部键见配置。
config path
打印配置文件的路径。文件还不存在时也会打印它将被创建的位置。
hoshimi config path$ hoshimi config path
/home/you/.local/share/hoshimi/config.jsonconfig show
显示配置:配置文件存在时显示文件内容,不存在时显示默认值。凭据显示为 ***。
hoshimi config show [OPTIONS]| 选项 | 作用 |
|---|---|
--json | 打印纯 JSON(不带颜色,也不在最后一行打印文件路径) |
不带 --json 时,以带颜色的 JSON 显示,最后一行是配置文件路径。
config get
打印一项设置,格式为 JSON。凭据显示为 ***。
hoshimi config get <KEY>| 参数 | 作用 |
|---|---|
<KEY> | 点号分隔的键,如 server.port |
键不存在时报错 Unknown setting: <KEY>,退出码为 4。也可以取一整段:
$ hoshimi config get server.port
10600
$ hoshimi config get security
{
"allow_cidrs": [],
"allow_hosts": [],
"allow_origins": []
}配置文件不存在时,可以读取的是默认值中有的键(network、server、security 下的各项)。
config set
修改一项设置并保存。
hoshimi config set <KEY> <VALUE>| 参数 | 作用 |
|---|---|
<KEY> | 点号分隔的键,如 server.port 或 security.allow_cidrs;中间不存在的层级会自动创建 |
<VALUE> | 新值。能按 JSON 解析的就按 JSON 解析(数字、true/false、列表、对象),否则当作字符串;null(或 none)清除这一项 |
hoshimi config set server.port 10600
hoshimi config set server.strict_port true
hoshimi config set server.default_model kilo-auto/free
hoshimi config set security.allow_cidrs '["192.168.1.0/24"]'
hoshimi config set security.allow_cidrs 10.0.0.0/8,192.168.0.0/16 # 安全列表也接受逗号分隔
hoshimi config set providers.kilo.enabled false
hoshimi config set server.model_api_key null # 清除保存前,整份配置会按与 check 相同的规则检查,不通过时不写入并以退出码 2 报告原因,例如监听非本机地址但没有配置允许的网段和工具访问密钥。成功时打印 <KEY> = <新值>(凭据显示为 ***,清除时显示 (cleared))。
需要注意:
- 文件会以 Hoshimi 自己的格式重写。Hoshimi 不认识的键不会被保存;渠道的
accounts和options中的内容原样保留。 - 类型不对的值,有的会报错(例如
playground.max_steps不是整数、server.access_token不是字符串,退出码 2),有的会被忽略、保持原值(例如给server.port一个字符串),而命令仍然打印新值;改完后可以用config get确认。 - 修改在服务器重启后生效。在 Web UI 的 设置 页修改则立即生效(监听地址和端口除外)。
- 写在命令行里的密钥会留在 shell 历史中;介意的话改用 Web UI 设置。