# mirasim-relay 把 Mirasim 桌面版内置的「本地中继」单独拆出来,让 Linux 也能用自己账号的额度。 Mirasim 官方只发 macOS / Android 包,但它的 `SHA256SUMS` 里其实还有没在下载页挂出来的 `mirasim-server-linux-x64-0.0.146.tar.gz`。这个脚本就是从那份官方 Linux 构建里把中继部分 (登录 → 设备签名 → 转发)重新实现出来的,行为跟桌面版一致。 中继本身说的是 **Anthropic 的协议**,所以任何兼容 Anthropic API 的 agent 直接指过来就能用。 ## 快速开始 ```sh ./mirasim-relay login # 邮箱验证码 / GitHub / Google / 直接粘 token ./mirasim-relay status # 看账号、有效期、剩余额度 ./mirasim-relay serve # 起本地中继,默认 127.0.0.1:8787 ``` 另开一个终端: ```fish set -gx ANTHROPIC_BASE_URL http://127.0.0.1:8787 set -gx ANTHROPIC_AUTH_TOKEN mirasim-relay-managed-credential claude ``` bash / zsh 用 `./mirasim-relay env --bash`,它会按当前 shell 输出对应语法。 `ANTHROPIC_AUTH_TOKEN` 的值是什么都无所谓——每个请求都会被换成真正的中继凭据, 但大多数 agent 不设这个变量就不发请求,所以得给一个占位值。 ## 命令 | 命令 | 说明 | | --- | --- | | `login [--method email\|github\|google\|token] [--email ...]` | 登录并保存凭据 | | `serve [--port 8787] [--host 127.0.0.1] [--agent claude] [-v]` | 起本地中继,`-v` 打印每条请求 | | `status` | 账号信息 + 用 1 token 的探测请求读额度 | | `env [--port 8787] [--bash]` | 输出环境变量 | | `logout` | 清除登录态(设备密钥保留) | `--agent` 会作为 `x-mirasim-agent` 上报,取值跟桌面版一致:`claude` / `codex` / `pi-gui`。 ## 它到底做了什么 ``` agent ──► 127.0.0.1:8787 ──► https://mirasim-relay.mirofish.ai ──► Anthropic (本脚本) ``` 每个请求经过时: 1. **换凭据** —— 删掉 agent 自己的 `authorization` / `x-api-key`,换成你的账号凭据。 2. **续期** —— access token 距过期不足 15 分钟就用 refresh token 走 `/auth/refresh` 换新的。 3. **设备签名** —— 首次运行生成一对 Ed25519 密钥,向 `/v1/device/session` 换一张短期 ticket;拿到后每个请求都按 `mrs-sig-v1` 签名(`x-mirasim-device/ts/nonce/sig`)。 中继若不支持(404/501)就退回裸 token,跟桌面版的降级路径一样。 4. **收敛 header** —— 丢掉 hop-by-hop 头;`anthropic-beta` 只保留中继真正认的 `context-1m-2025-08-07`,其余丢弃。 响应是流式透传的,SSE 不会被缓冲。 ## 配置 凭据存在 `~/.config/mirasim-proxy/config.json`(`0600`),里面有账号 token、refresh token 和设备私钥。换目录用 `MIRASIM_PROXY_HOME`。 其它可覆盖项:`MIRASIM_RELAY_BASE_URL`、`MIRASIM_LOGIN_URL`、`MIRASIM_APP_VERSION`、 `MIRASIM_NODE`(指定 Node 运行时)。 ## Node 系统没装 Node 也能跑:`vendor/node` 是官方 Linux 包里那个 v22.23.1,启动器按 `$MIRASIM_NODE` → PATH 上的 `node` → `vendor/node` 的顺序找。 装了自己的 Node(>= 20)的话可以把 `vendor/` 删掉。 ## 测试 ```sh ./vendor/node test.mjs ``` 13 个离线用例,覆盖签名规范串、deviceId 推导、header 改写、配置文件权限。 不需要登录,也不会碰真实凭据。 ## 注意 Mirasim 赠送额度的说法是 “Claude Code Max / Codex Pro usage **inside Mirasim**”。 把中继拆出来给别的 agent 用,大概率不符合他们的服务条款,最坏情况是封号。 自行判断。