npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

magicrew-auth

v0.3.70

Published

超级麦吉 / MagiCrew for magpie and OpenCode — one package, two providers: letsmagic.cn (国内) and magicrew.ai (international). Password or web-JWT sign-in, the account's own live model list, points balance, newcomer rewards, invite codes.

Readme

超级麦吉 Magicrew for magpie

一个包,两个供应商:国内的 GLM / DeepSeek / Qwen / Kimi,国际再加 Claude / GPT / Gemini —— 原样走它的 OpenAI 兼容网关。

超级麦吉(letsmagic.cn,官网英文名 Super Magic)和 MagiCrew(magicrew.ai)是同一产品的两套云。这个插件把它们各接成一个独立供应商 —— 在 magpie 的供应商列表、用量概览、模型目录里各占一行,不聚合、不互相覆盖登录态。

显示名按「中文 + English」,英文照抄官网:插件卡片是 超级麦吉 Magicrew (写在 package.json 的 magpie.name,name 只做 ASCII 依赖键 —— 见下), 两个供应商分别是 超级麦吉 Super Magic 与 麦吉 MagiCrew(Super Magic 是两个词; MagiCrew 官网没有中文名,「麦吉」取自官网正文里对自家产品的简称)。

⚠ 装过 0.3.69 的话要重装一次:那一版的包名带中文,magpie plugin update 会报 unrecognised dependency format。magpie plugin rm github:MYCF711/magpie-magicrew-auth 再 plugin add 同一个地址即可(登录态不丢)。

国内   超级麦吉 Super Magic   www.letsmagic.cn     GLM / DeepSeek / Qwen / Kimi / MiniMax / MiMo / 豆包
国际   麦吉 MagiCrew          www.magicrew.ai      上面全部,再加 Claude / GPT / Gemini
协议   OpenAI Chat Completions —— 原生,不是翻译出来的
计费   积分(预充值,不是月度配额)
凭证   登录一次 30 天全自动:api_key 两小时自续,refresh_token 自滚

模型清单是 2026-10-27 从两站 GET /api/v1/flows/models 拉下来核对的。清单会随订阅档位和平台上下架变 —— 所以插件里没有一张写死的模型清单,账户能选什么就显示什么。

改代码 / 发版本之前:先看 AGENTS.md —— 按「你在哪一步」给阅读顺序, 外加本仓库那些会静默出错的坑(症状 → 判据 → 出处)。交付与发版逐条走 CHECKLIST.md 的两张表。发布是七步,git push 只是第 4 步。


功能

  • 两个供应商分得开 —— 国内、国际各一行,图标、名字、模型、积分、登录态全部独立
  • 登录全程不开浏览器 —— 国际站有邮箱验证码和手机号验证码两条纯 HTTP 路;国内站有手机号验证码。另外两条(浏览器登录 / 手填登录态)谁都能用
  • 已有的账号加进来,只填两次就完事 —— 填邮箱(或手机号)→ 填验证码。那张「拖动滑块使图片角度为正」的旋转图根本不会出现:服务端对已注册的账号直接放行,插件用的就是这条通道
  • 本机浏览器登过就直接认 —— 你平时那个 Edge / Chrome / Brave 里登过 magicrew,点「浏览器登录」时插件读它的 localStorage 接上:不开窗口、不用重登
  • 模型跟着账号走 —— 每次登录后按 /api/v1/flows/models 实时拉,账户当前能选什么就展示什么,生图和 embedding 不会混进来
  • 积分算得准 —— 余额读的是 /api/v1/quota/points/total;空号就显示空,不会被优先派活
  • 积分耗尽自动换号 —— 上游用 HTTP 400 报「可用积分已不足」时,插件把它改写为语义正确的 402 Payment Required,magpie 会 rest 这个账号并继续问同 provider 的下一个账号 / 路由组的下一个成员
  • 登录一次管 30 天 —— 网页 JWT 顶 30 天,mgw_ api_key 每 2 小时自续,refresh_token 每次续期时自滚
  • 新手奖励 8 项全自动 —— 国内站 8 项 500 积分全部拿得到;第 8 项(完成第一次 AI 工作)由插件替你发一条消息,花掉约 2 积分
  • 默认开启自动签到 —— 安装后自动把本 provider 的插件签到设为开(pluginCheckins 缺省时补 true;你手动关掉的不会被改回)
  • 自动更新 —— 复用 magpie 的插件更新机制:发现自己的新版本后调 magpie plugin update,并在成功后写「已自动更新」记录;网络源(git / npm)更新由 magpie 热加载,更新完直接生效,不需要重启 magpie
  • 邀请码自动滚 —— 第一次注册带作者的码;之后每注册成功一个新号,就把它自己的码记成下一次要用的(自动模式跟的是「最后一个注册的新号」,不是「最后一个登录的号」)
  • 邀请码挂谁:一个开关 —— 供应商编辑器 →「插件选项」→ 「邀请码挂到首选账号」:关(默认)= 自动(跟随最后注册成功的新号的码);开 = 首选(挂 magpie 账号页「首选」那个账号自己的码)。拨完立刻生效,不用重启 magpie。⚠ 只能二选一:magpie 的插件选项只存布尔值,列账号让人挑做不到(见「邀请码」一节);但点登录时登录框会写明这次挂在哪个账号名下(账号名打码)
  • 邀请额度看得见 —— 额度窗口多一行「邀请额度 20 人 · 4,000 / 10,000 分」(封顶时显示「已封顶」)。上限只认积分封顶(国际 10,000 / 国内 60,000)——人数不是上限(实测 54 人仍在结算)
  • 满了自动换上级 —— 上面那个开关开着时,首选账号的邀请积分封顶了,插件自动把上级换成「真实邮箱 + 没封顶 + 剩余额度最多」的账号,继续吃邀请,不用手工切

登录

国际站四条路,国内站三条。 带「验证码」的那几条是纯 HTTP、全程不开浏览器。

| # | 方式 | 你要做什么 | 国际站 | 国内站 | |---|---|---|---|---| | ① | 邮箱验证码 | 填邮箱 → 填 6 位验证码 | 第 1 条 | —(国内站登录页没有邮箱入口) | | ② | 手机号验证码 | 填手机号 → 填 6 位验证码 | 第 2 条 | 第 1 条 | | ③ | 浏览器登录 | 点一下,在弹出的官方页面里用任何方式登 | 第 3 条 | 第 2 条 | | ④ | 登录态(JWT + 组织码) | 从 DevTools 粘两个字段 | 第 4 条 | 第 3 条 |

国际站把邮箱排第一,因为那边邮箱注册的账号更多。

0.3.64 起没有「邀请码」那条登录方式了 —— 邀请码挂谁改成供应商编辑器里的一个开关,见下面「邀请码」一节。

为什么国内站没有邮箱那条? 因为国内站的官方登录页压根没有邮箱入口(只有微信 / 苹果 / 密码 / 手机 / 私有部署),也就没有邮箱注册的账号;而且同一个发信请求在国内站的服务端会回「服务异常,请联系管理员」。摆出来只会让你填完邮箱撞一个看不懂的错。

邮箱/手机验证码两条路是同一套逻辑(插件里就是同一份代码,只是问的字段和调的两个端点不同),不会出现「手机那条修好了、邮箱那条没跟上」。

关于那张旋转验证图

官方登录页上只有一处需要「看图」:一张圆形照片被随机旋转过,要你拖滑块把它转正。它只在一种情况下出现:这个手机号 / 邮箱在平台上还从没注册过。

| 你要加的号 | 会出现旋转图吗 | 你需要做什么 | |---|---|---| | 平台上已有的账号(哪怕第一次加进 magpie) | 不会 —— 服务端直接放行 | 填号码/邮箱 + 填验证码 | | 平台上从没注册过的新号(首次注册) | 会 | 配了识图模型就全自动;没配就自己转一下 |

原理:POST /captcha/generate 对已注册的账号直接回一个 business_token,连图都不给(实测:已注册邮箱 → 免图;换一个没注册过的邮箱 → 给 token + image)。插件用的就是这条通道,所以绝大多数情况下识图模型根本用不上。

真碰上要过图时(新号注册),插件这么办:

  1. 配了识图模型(magpie 设置 → 识图模型)→ 用它判断「主体自己的上方向指向钟面几点」,换算成拖动角度,自动过掉
  2. 没配 → 回退到浏览器,打开官方登录页,你自己把图片转正,剩下的插件接住

为什么不瞎猜角度:服务端容差 ±10°,瞎猜命中率只有约 5.6%(20/360),平均要试十几次,而它有「验证提交过于频繁」和「验证次数已超限」两道风控 —— 等不到猜中,先被限流。

为什么不问模型「转了多少度」:实测直接问角度 6 次错 5 次,问「指向钟面几点」3 轮中 2。而且同一张图要问两遍比分歧 —— 有一次两个判官给出 1.7 和 7.5 钟点(相差 174°),那是有人把方向看反了,只能换图重来。

手机号与邮箱的协议差异(给改代码的人)

| | 手机号 | 邮箱 | |---|---|---| | 取图 | POST /captcha/generate {account_type:"mobile", mobile, state_code} | 同端点 {account_type:"email", email}(无 state_code) | | 过验证 | POST /captcha/verify {token, angle, account_type, mobile, state_code} | 同端点,换成 email | | 发验证码 | POST /v4/user/send-sms {type:"account_login", phone, state_code} | POST /v4/user/send-email {email, type:"account_login"} | | 换登录态 | POST /v4/user/login,type:"phone_captcha",验证码字段叫 code | POST /v4/user/login-email,验证码字段叫 captcha |

两个 type 都是 "account_login"(填错会回「服务异常,请联系管理员」—— 后端内部炸了,从报错完全看不出是它)。邮箱那条必须走 login-email:往 /v4/user/login 发任何 type 都回「phone 字段是必须的」。

浏览器登录

点第三条第 ③ 个方式时,它先看你平时用的那个浏览器:

① 那边已经登录过 magicrew → 插件直接读它的 localStorage 接上,不开窗口、不用再登一次。 凭据就明文躺在 Local Storage/leveldb 里(Edge / Chrome / Chromium / Brave / 360 / QQ / 搜狗 都行)。

② 没登录过,或者这个账号已经加过 → 插件自己拉起一个窗口:

  1. 浏览器窗口弹出,停在官方登录页
  2. 用你平时的方式登进去(手机号 / 密码 / Google / 邮箱验证码 / 飞书 / 钉钉都行)
  3. 登录完成那一刻它自己就接上了 —— 不用回来点任何按钮,不用开 DevTools

原理:插件不是调用系统浏览器,而是自己起一个 Chromium 内核的浏览器(独立 profile + --remote-debugging-port=0),所以登录成功后能用 CDP 在页面上下文里把它自己的 localStorage 读走,拿到 JWT 和组织码,签完密钥就关窗。

用哪个浏览器? 按「谁更干净」排,不是按名气:

① Chrome / Chromium   自己装的,无企业策略、无强制登录     ← 首选
② 国产 Chromium 系    360 / QQ / 搜狗 / 2345 / 猎豹 / UC / 夸克
③ Edge                垫底(策略最多、最容易被拦住调试端口)

前一个起不来(策略禁用调试端口、启动就退出)会自动换下一个,第一个真正打开调试通道的才算数。窗口标题/提示里会写明这次用的是哪个。

每次登录都是一个新的 profile,用完就删。 这是必须的:共用一个 profile 的话,添加第二个账号时窗口一打开,页面里已经躺着上一个账号的凭据 —— 插件会以为登录完成、立刻关窗,而 magpie 拿到的还是旧账号。

为什么零浏览器那两条要自己写协议? magicrew 没有 OAuth 回调通道 —— 登录类型只有十几种、全是「拿凭据换 token」,没有设备码、没有插件授权、没有一次性 ticket。凭据只可能落在三个地方:用户中心的 HTTP 接口(插件走的就是这条)、你自己浏览器的 localStorage、或者插件自己起的那个窗口。

登录态(JWT + 组织码)

不想走上面任何一条的话,手填两个字段:

DevTools → Application → Local Storage → https://www.magicrew.ai
  MAGIC:user:authorization     → JSON,取 value   = JWT
  MAGIC:user:organizationCode  → JSON,取 value   = 组织码(12 位小写字母数字)

组织码不能从 JWT 推。JWT 里只有 cus.tenant_id(18 位数字),组织码是另一套短串。缺了它 /api/v1/* 回 2182 用户所在组织不存在,给错了回 3035 登录失败。


模型

国内的 GLM、DeepSeek、Qwen、Kimi、MiniMax、MiMo、豆包;国际站再加 Claude、GPT、Gemini 三家。

登录后按账号实时拉 /api/v1/flows/models,账户能选什么就显示什么 —— 下表只列各家最新和热门的那几款:

| 发行商 | 最新 / 热门 | 上下文 | 国内 | 国际 | |---|---|---|---|---| | GLM(智谱) | glm-5.3 · glm-5.3-flash | 1M · 256K | ✓ | ✓ | | DeepSeek | deepseek-v4.1-flash | 1M | ✓ | ✓ | | DeepSeek | deepseek-v4-pro | 128K | — | ✓ | | Qwen(阿里) | qwen3.8-max · qwen3.7-plus | 1M | ✓ | ✓ | | Kimi(月之暗面) | kimi-k3.1-pro | 1M | ✓ | ✓ | | MiniMax | minimax-m3 · minimax-m3.1-flash | 1M | ✓ | ✓ | | MiMo(小米) | mimo-v2.6-pro · mimo-v2.6-flash | 1M | ✓ | ✓ | | 豆包 Seed(字节) | doubao-seed-2.0-pro · doubao-seed-2.0-code | 256K | ✓ | ✓ | | Claude(Anthropic) | claude-haiku-5.5 | 1M | — | ✓ | | GPT(OpenAI) | gpt-6-luna · gpt-5.4-mini | 1.05M · 400K | — | ✓ | | Gemini(Google) | gemini-3.7-flash | 1M | — | ✓ |

全量(含生图、向量、各家历史版本)不进 README —— 装好以后模型选择器里看到的才是账号真实的全部。

用的是 /api/v1/flows/models(网页模型选择器里眼睛能点到的那些),不是 /v1/models —— 后者混着 VIP 锁定、生图、embedding,塞进来用户会选到根本调不动的模型。

上下文按三档取:magpie GUI 里手选 > 模型库(~/.cache/magpie/models.json)> 兜底 1M。这两个接口都不返回 context_length;早先一律填 256K,把 deepseek-v4.1-flash 真实 1M 的窗口砍成四分之一,agent 反而更早拒绝 —— 根因与取舍见 docs/internals.md 第十六节。

推理模型会吃 max_tokens:glm-5.3-flash 给 64 个 token 时 reasoning_content 就吃满、content 是空串。插件把低于 512 的 max_tokens 抬到 512。

两站不是简单叠加:国际站多出 Claude / GPT / Gemini 三家,另有豆包 Seed 1.8 / 2.0-mini / seed-code、Kimi K2.6 / K2.7-code / K3、GLM 5.2、Qwen3.7-max 这些国内没有的档位。


新手奖励

8 项,合计 500 积分,全自动 —— 登录后和每天签到各跑一次,幂等。

| 项 | 分数 | 插件怎么拿 | |---|---|---| | 完成第一次 AI 工作 | 100 | 替你在话题里发一条消息(花掉约 2 积分)—— 服务端只认这个 | | 了解工作台 | 50 | PUT 即到账 | | 了解如何使用 AI PPT | 50 | PUT 即到账 | | AI 录音 | 50 | PUT 即到账 | | 雇佣数字员工 | 50 | PUT 即到账 | | 添加 / 管理技能 | 50 | PUT 即到账 | | 微应用 | 50 | PUT 即到账 | | Magiclaw | 50 | PUT 即到账 |

第 8 项是唯一 PUT 不掉的:PUT /onboarding/tasks/first_ai_work/completion 服务端回 9303「该新人引导任务不支持手动完成」—— 它认死产品内真的跑完过一次对话。所以插件替它发一条消息(走话题的 socket 协议,不开浏览器),这也是邀请奖励的触发条件 —— 被邀请人发过一条消息,邀请人才拿到那笔分。

这道「发消息」有闸门:每个账号一辈子一次(isAutoChatSettled),发出去就落永久标记。所以重复登录、换天签到、重启 magpie 都不会再发第二条、不会再白烧积分。

失败方向是「宁可晚一轮」:查不到判据(比如话题接口抖了一下)时这次不发、不落标记、不计数 —— 消息发出去是花钱且不可撤的。真失败才计数,3 次之后放弃,免得一个永远失败的号每次签到撞一遍。

国际站 /api/v1/onboarding/tasks 恒返回空列表 —— 那是「这个账号没被登记进引导计划」,不是「已经领完了」。 但邀请奖励的判据是一样的:官方文案写「被邀请人完成首个任务或对话后,即可获得积分奖励」,所以国际站这条就等于发过一条消息。插件用「有没有话题」判断(不是有没有项目 —— 项目打开工作台就会自动建),没话题就补一条。


邀请码

挂到谁名下,由一个开关决定:供应商编辑器 →「插件选项」→ 「邀请码挂到首选账号」。

| 开关 | 模式 | 新号注册挂到谁 | |---|---|---| | 关(默认) | 自动 | 最后一个注册成功的新号自己的码 —— 每注册一个号,下一个号就挂它,一路滚下去 | | 开 | 首选 | magpie 账号页「首选」那个账号自己的码;它封顶了就自动换一个真实邮箱号 |

拨完立刻生效,不用重启 magpie、不用重新登录。

⚠ 为什么不能像下拉框那样「把账号列出来让你选」:magpie 的插件选项只存布尔值 —— settings.PluginOptions 是 map[string]map[string]bool,设置接口 POST /api/settings/plugin-option 的入参也只有 {provider, key, on}。插件的 auth.options 只能声明一排 Off/On 开关, 装不下「从 N 个账号里挑一个」。想按账号选,只能等 magpie 本体给 options 加枚举类型; 现在能选的两种模式就是上面这两行。

但「挂到谁名下」是看得见的:点登录时,登录框下面那一行会写明这次挂在哪个账号, 比如(真实输出,账号名一律打码):

本次邀请上级:189****051(最后注册的新号)。
本次邀请上级:my****@foxmail.com(最后一次登录 / 签到的号)。
本次邀请上级:作者的码(还没有可用的自有账号)。
本次邀请上级:181****632(magpie 账号页的「首选」)。
本次邀请上级:177****0000(首选已满,自动换的)。

这一行是每次点登录现算的(放在 authorize() 的 instructions 里,不是登录方式的名字 —— 名字会被 magpie 在插件加载时缓存住,见 AGENTS 坑 31),所以拨开关、换首选、刚注册完新号, 都会立刻反映出来。

自动模式的具体规则(开关关着时):

① 有「最后注册成功的新号」记录 → 用它的码(那个号被删了才往下走)
② 没有 / 已失效              → 用滚动码(最后一次登录 / 签到刷到的那个)
③ 也没有                     → 用作者的码

「最后一个注册的新号」只在注册成功那一刻写(验证码登录那条路以「服务端有没有 跳过旋转验证」为准;浏览器 / JWT 那条以「magpie 里第一次见这个 org」为准)。 普通重登、每天签到只会更新滚动码,覆盖不了这个记录 —— 否则重登一下旧号,后面注册的新号就挂到旧号名下了。

两个固定位置:

~/.cache/magpie/magicrew-invite-registered-<站点 id>.json   {"code":"…","org":"…","at":"…"}   ← 注册成功才写
~/.cache/magpie/magicrew-invite-<站点 id>.json              {"code":"…","at":"…"}             ← 滚动码,只做兜底

⚠ 注册本身不发分。被邀请人完成首个任务 / 对话之后,双方才各拿一笔 (国际 200 / 200,国内 1,000 / 1,000),而且是按天批次结算 —— 奖励记录里的 scheduled_at 是日期(2026-10-30 00:00:00),不是发放时刻, 当天注册的号通常要等当天稍晚或次日那一批。所以「今天注册、今天没到账」是正常的, 别据此判断有没有送分。

③ 不是每次都能成。/api/v1/invitations/info 只认带 device_id 的 JWT —— 同一个账号同一时刻签的两把,差别就在这一个字段:桌面客户端 438 字符(device_id = 64 位 hex)能拿到码,网页版 350 字符(device_id 空)回 2155 用户不存在。 密码登录走 API、带 device 指纹,滚得动;浏览器登录和验证码登录拿到的是网页那把,滚不动 —— 那就保留旧值,不报错、不挡登录。

奖励口径(上游前端常量,2026-10-27):

| | 每次注册 | 每次订阅 | 邀请注册封顶 | 总额封顶 | |---|---|---|---|---| | 国内 | 1,000 | 3,000 | 60,000 | 300,000 | | 国际 | 200 | 500 | 10,000 | 30,000 |


安装

在 magpie 的 插件 → 发现 搜 magicrew,点安装(npm 上的包名是 magicrew-auth)。

装完选站点,然后挑一条登录路:

  • 最省事(推荐) → 点**「浏览器登录」**:它先看你本机浏览器有没有登过,没有就自己拉一个窗口起来,你在里面用任何方式登(连验证码都不用填)
  • 国际站全自动登录 → 点**「邮箱验证码」**(排第一):填邮箱 → 填验证码。已有账号的话,中间那张旋转图不会出现
  • 国内站全自动登录 → 点**「手机号验证码」**(排第一):同理

命令行

# npm(推荐:magpie 按 version 检测更新,有新版本会提示)
magpie plugin add magicrew-auth

# 从仓库源码(拿最新提交,不走 npm;更新按 commit,要手动 update)
magpie plugin add github:MYCF711/magpie-magicrew-auth

两条路的卡片标题不一样:npm 装 → 卡片标题就是包名 magicrew-auth;git 装 → 取 package.json 的 name,也就是 Magicrew。功能一样,只是标题。 从旧包名 magpie-magicrew-auth 过来的,先 magpie plugin rm magpie-magicrew-auth 再装。

装完确认:

magpie plugin list
# magicrew-auth  on
#   magicrew (超级麦吉, 27 models)  signed in as ...
#   magicrew-intl (MagiCrew, 49 models)  signed in as ...

两个供应商各一行 —— 这就是「不聚合」的样子。


常见问题

两个站要装两次吗? 不用。一个包导出两个插件,装一次两个供应商都在,各自登录。

邮箱验证码能注册新号吗? 能 —— 但只有国际站有这条方法。这条链和手机号那条一样带 auto_register,第一次用的邮箱会自动建号,而且注册请求里带着邀请码。新号注册那一次会要求过旋转图(服务端的规定)—— 配了识图模型就全自动,没配就自己转一下。

新号登录成功后如果 Magic 侧还没有组织(auth/status 回 3102 用户尚未创建账号),插件会自动建第一个组织:POST /v4/user/organizations({name:"个人组织", industry_type:"其他", register_code:<邀请码>, logo:{}}),再用 Organization-Code 绑定一次。邀请码就是这一步消费的 —— 没有这一步,界面会停在「登录成功但拿不到组织码」。

为什么国内站没有「邮箱验证码」? 因为国内站的官方登录页就没有邮箱入口(只有微信 / 苹果 / 密码 / 手机 / 私有部署),也就没有邮箱注册的账号;而且同一个发信请求在国内站服务端回「服务异常,请联系管理员」。所以国内站只给三条路:手机号验证码 / 浏览器登录 / 手填登录态。

旋转验证图能不能不出现? 加已有的账号时它本来就不出现(服务端直接放行)。只有注册全新账号才需要过它。

看图那一步为什么有点慢? 因为识图模型是推理模型的话,它的「思考」也算 token —— 实测这个模型的思考链能写到三千多字。插件已经做了两件事:让它跑最低思考档(reasoning_effort: low,实测耗时 −59%、token −57%),以及两个判官并行问(耗时等于较慢的那一次)。想更快,就在 magpie 设置里换一个非推理的视觉模型 —— 那是唯一能真正「不思考」的办法,参数关不掉。

我在自己浏览器里登了 magicrew,插件能自动认出来吗? 能。点「浏览器登录」时插件先去本机 Edge / Chrome / Chromium / Brave / 360 / QQ / 搜狗 等浏览器的 localStorage 里找这个站点的登录态,找到就直接接上,不弹窗口。读不到、或者这个账号已经加过,才会开窗口让你登新的。

点了「浏览器登录」,网页上明明登好并跳到 agent 界面了,magpie 里却一直转圈等? 0.3.12 及更早会这样:插件拉起浏览器的判断依赖一个写死的文件名 msedge.exe,而有些机器上微软落盘的名字是 Microsoft Edge.exe(带空格、带大写;落盘名随安装方式和版本变),于是每次都判定「本机没装浏览器」,永远走「让你去 Console 粘一行」的降级路径 —— 而你不知道有这一步。0.3.15 起:两种落盘名都认、把 360 / QQ / 搜狗 等国产 Chromium 也纳入候选、并且逐个试启动(第一个真能开调试通道的才用)。判据在 ~/.cache/magpie/magicrew-login-<站点>.log,出问题先看它最后一行。

添加第二个账号时,网页闪一下就关了、magpie 里也没多出账号? 0.3.5 及更早会这样:登录浏览器复用同一个 profile,第二个窗口一打开就读到上一个账号的凭据,于是立刻「登录成功」并关窗 —— 加到的是已有账号。0.3.6 起每次登录用一个一次性 profile(关窗即删),不会再串号。

npm 上叫 magicrew-auth,为什么卡片显示 Magicrew? 卡片标题取包内 package.json 的 name(Magicrew),而 npm 拒绝含大写字母的新包名。发布时用 publish-npm.mjs 临时换成 magicrew-auth、发完还原 —— 所以 npm 页面是小写包名,git 源装出来是 Magicrew。功能完全一样。

验证码登录报「验证码已发送」但没收到? 先看是不是发到别的账号上了(同一个手机号/邮箱在两个站点是两套账号)。再确认这个号是不是还没注册 —— 那种情况要先过旋转图,图没过,短信 / 邮件根本不会发出去,界面会直接报「旋转验证连试 4 张图都没过」。

一个账号积分用完了,会换到另一个还有积分的账号吗? 会。0.3.26 起插件把上游的 400「可用积分已不足」改写成 402 Payment Required —— magpie 对 402 一律视为可重试:先 rest 这个账号 30 分钟,再问同 provider 的下一个账号;如果整个组都没有额度,才会把错误交给客户端。

为什么模型列表会变? 因为清单是从 /api/v1/flows/models 实时拉的。订阅档位变了、平台方上下架变了,清单就跟着变 —— 插件里没有需要维护的模型表。

国际站 /v1/chat/completions 报 500,22 字节的纯文本? 那是缺 organization-code 请求头。国内站不需要,国际站强制。插件按站点自动带。

glm-5.3-flash 回复是空的? 推理 token 吃满了 max_tokens。插件已经把低于 512 的抬到 512;还是空就把 max_tokens 再调大。

Android / macOS 也支持吗? 插件只调 HTTP 接口,跟客户端无关。设备上能登录,这里就能用。


参考源

| 来源 | 用在哪 | |---|---| | dtyq/magic(Apache 2.0 + 附加限制) | 接口契约:types/login.ts 的 invite_code、LoginService.ts 关于「邀请码在创建组织时消费」的注释、constants/api.ts 的错误码 | | @magpie-community/opencode-workbuddy-auth(MIT) | 「一个包导出多个 XxxAuthPlugin」的写法:每个站点一个具名导出,各成一个供应商 | | @magpie-community/opencode-qoder-auth(MIT) | 同上,四站点四导出的对照例 | | magpie-plugin-template(MIT) | README / CHANGELOG / NOTICE 的骨架与硬规则 |

本插件不复制上游代码,只调它的公开 HTTP 接口。完整版权声明见 NOTICE.md。


更新记录:CHANGELOG.md

许可

MIT。

邀请名额与自动切换

额度窗口里那一行「邀请额度」写的是「已邀几个人 · 已经发出多少分」。上游不给上限 —— /api/v1/invitations/info 只回已邀请人数(invite_count),17 条候选路径(/limit、 /config、/statistics …)全 404。所以额度按官方奖励口径换算:

| 站点 | 每次邀请奖励 | 邀请积分封顶 | 折算人数(仅供参考) | |---|---|---|---| | 国内 | 1,000 | 60,000 | 60 | | 国际 | 200 | 10,000 | 50 |

判满只认「积分封顶」,人数不是上限(2026-10-30 实测修正)。官方文案讲的是 「邀请获得积分上限 +10,000」,不是「最多邀请 50 人」;50 只是 10,000 ÷ 200 的折算值。 反例:国际 [email protected] 已邀 54 人(超过折算的 50),10-29 批次仍照常结算奖励。 ⇒ 默认 满 = 已赚积分 ≥ 封顶;想按人数判(保守)就在 ~/.cache/magpie/magicrew-invite-quota-config-<站点>.json 配 {"countLimit":50}。

⚠ 注册不发分。被邀请人完成首个任务 / 对话之后才发 —— 所以「邀请 54 人、只结算 10 笔」 是常态,不是「有人在白送」。

开关开着(首选模式)时满了会自动换人:

  1. 供应商编辑器里「邀请码挂到首选账号」那个开关开着(关着时这一步一个请求都不打), 且当前上级的邀请积分已经封顶;
  2. 插件在本站点账号里挑「真实邮箱 + 没封顶 + 剩余额度最多」的;
  3. 把邀请上级改成它,写一行日志到 ~/.cache/magpie/magicrew-invite-switch-<站点>.log。

触发点是插件加载 20 秒后、签到(每天一次)、每次登录成功,带 10 分钟节流 —— 不会把上游打疼。

「真实邮箱」只看后缀白名单(qq.com / 163.com / gmail.com / 189.cn …),不看黑名单:

temp-mail.io 的域名是动态的,黑名单永远追不上。自建域名邮箱用配置追加:

~/.cache/magpie/magicrew-invite-quota-config-<站点>.json 的 {"realMailDomains":["yourcorp.com"]}。

⚠ 国内站不会自动切:那边没有邮箱登录,账号全是打码手机号(189****051),

按邮箱白名单永远判假。要国内站也切,显式打开同文件的 {"allowPhoneAccounts":true}(默认关)。

切换不动 magpie 账号页的「首选」(logins.json 的 first)—— 插件对 magpie 目录只有读的份,

写文件未必被重新读进内存,还会顺手改变模型调用的路由账号。「首选模式」在这个包里本来

就是指邀请策略的 fixed,换它的指向就够了。