# magpie-tabbit-provider 中文文档

规范地址：https://npmcn.com/package/magpie-tabbit-provider/

版本：0\.1\.4
npm 元数据更新时间：2026-11-04T02:11:48.112Z
中文译文更新时间：2026-11-04T03:03:28.653Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/magpie-tabbit-provider
原文对照：https://npmcn.com/package/magpie-tabbit-provider/?lang=original
项目主页：https://github.com/chary1n/tabbit-providers#readme
源码仓库：https://github.com/chary1n/tabbit-providers

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：99.3 kB，11 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-11-03T11:06:37.135Z
- 最新版本发布：2026-11-04T02:11:47.921Z
- 已发布版本数：6（近 12 个月 6 个）

## 中文简介

Tabbit （web.tabbit.com）作为喜鹊/开放代码提供商：实时模型目录，cookie登录，聊天完成，循环使用和每日签到

## 安装

```sh
npm install magpie-tabbit-provider
```

也可以使用：`pnpm add magpie-tabbit-provider`、`yarn add magpie-tabbit-provider`、`bun add magpie-tabbit-provider`

## README

# 兔换喜鹊

[Tabbit](https://web.tabbit.com/) 作为 [喜鹊](https://usemagpie.ai/) (和OpenCode)。它使用Tabbit浏览器帐户登录 电脑，列出账户的真实型号目录，并一一解答 兔兔自己的聊天API——这样一个代理背后的喜鹊就可以挑选了 `tabbit/Default`， `tabbit/DeepSeek-V4.1-Flash`， `tabbit/GLM-5.3-Flash` 其余的都一样 其他供应商，与帐户的津贴，后备和使用卡。

## 安装

```sh
magpie plugin add @magpie-community/opencode-tabbit-auth   # from the community list
# from this source tree instead:   magpie plugin add .
magpie plugin login tabbit                                 # pick “Read Tabbit Browser sign-in (macOS)”
magpie provider test tabbit                                # ✓ chat · Default
```

然后选择 `tabbit/<model>` 在任何代理的模型行在喜鹊的代理页面- 或者从组路由到它：

```sh
magpie group add tabbit-pool models=tabbit/Default,tabbit/DeepSeek-V4.1-Flash routing=cheap
```

**每日自动签到**:装好并登录后,喜鹊→设置→“窗口重置时预热/每日自动签到”→ 标签条最右的 **插件** →“Tabbit·”（）。 (1)、(1)、(1)、(2)、(2)、(3)、(3)

**OpenCode**：`opencode.json` 里加 `{ "plugin": ["@magpie-community/opencode-tabbit-auth"] }`， 再 `opencode auth login`。

**提供者id:** `tabbit`

这不是Tabbit的官方API。它使用Tabbit自己的web应用程序的端点 呼叫，使用应用程序保留的登录，一个人在自己的机器上。

## 登录

塔比特的签到是a `token` cookie: RS256 JWT，由 `web.tab-browser.com` 与一个 **7天** 的生活。两种方式：

| 方法 | 它是做什么的 |
| --- | --- |
| **阅读Tabbit浏览器登录** (macOS) | 查找Tabbit浏览器保存的cookie存储(`~/Library/Application Support/Tabbit Browser/Default/Cookies`)，表示 `token` ，并使用下的登录密钥链中的密码对其进行解密 `Tabbit Browser Safe Storage`． 没有什么是手工复制的；浏览器不需要关闭——数据库在读取之前会被复制。 |
| **粘贴制表符** | 对于第一种方法无法到达的任何东西（Windows或Linux，保存在其他地方的浏览器配置文件）。在Tabbit浏览器中打开 `web.tabbit.com` 然后阅读 `token` Cookie来自开发者工具；整个粘贴。 |

粘贴的值可以是裸JWT，也可以是整个JWT `name=value; name=value` 饼干 字符串。帐户id是从令牌本身读取的，因此不需要读取其他内容 被粘贴。

没有刷新端点。当代币用完（7天），喜鹊就会出现 该帐户需要再次登录，并且第一种方法需要再登录一次 点击。

> **macOS。** 读取桌面的cookie是为macOS实现的。在 在Windows上，存储是dpapi加密的，而在Linux上，它使用不同的存储 关键的;这两件事在这里都没有做到。在这些平台上，方法拒绝和命名 平台，和粘贴方法是一种使用。

## 模型

目录来自这个帐户： `GET /proxy/v1/model_config/models?a=0&scene=chat` -同样叫兔兔 应用程序。一个模型的 **Id是目录的 `display_name`,逐字** （`DeepSeek-V4.1-Flash`， `GLM-5.3-Flash`)，因为这就是turn的名字 被问及。

| 目录字段 | 变成了 |
| --- | --- |
| `display_name` | 模型id和名称 |
| `supports_images` | 行上的图像输入 |
| `support_thinking` | 推理标志（思维）到达 `reasoning_content`） |
| `model_access_type` | `free_unlimited` / `free_metered` / `premium_only` |
| `hidden` | 被忽略了，因为应用程序把它忽略了 |

**客户端工具已关闭** （`toolcall: false`）. 目录的 `supports_tools` 意味着Tabbit _自己的_ 服务器端工具——浏览器和搜索——不是工具和 代理声明：请求调用客户端声明的工具的回合回答它已经有了 没有这样的工具。使用工具的代理应该通过喜鹊的网关工具 代替。

**限制不公布** Tabbit。已知的是硬编码的 （`DeepSeek-V4.1-Flash` 和 `DeepSeek-V4-Pro`： 1M上下文)；一切 接受默认值(`TABBIT_CONTEXT`， `TABBIT_OUTPUT`（128k / 32k）。短暂的过去 真正的极限是兔比特自己的错误。

**溢价模型** 回答 `403` 使用代码 `492` 免费账户。这个 **仅限免费模型** 切换到提供商的选项，将它们排除在 列出清单，而不是让他们失败。

## 每日签到（ebi）

Tabbit的签到是桌面宠物的活动，它会继续运行 `/api/commerce/activity/v1/sign-in` -相同的两个调用浏览器：

```
GET  /api/commerce/activity/v1/sign-in/status?scene_codes=desktop_pet
POST /api/commerce/activity/v1/sign-in   {request_no, scene_codes:["desktop_pet"]}
```

这个插件实现了喜鹊的 `auth.checkin` 钩，所以它出现在哪里 WorkBuddy的: **设置→使用→插件→按键**，之后默认开启 你翻转它，然后喜鹊每天运行一次每个账户，然后抽取 账户卡上的结果。

它首先读取状态（free），然后表示活动是否打开（open） 只有在没有签名的日子才会提出索赔。这是兔兔的回答 成为:

| Tabbit说 | 卡片显示 |
| --- | --- |
| `signed_today: true` | **完成** （根本没有发出索赔） |
| `sign_in_result: "signed"` | **声称**，以及它所授予的用法和日计数 |
| `sign_in_result: "already_signed"` | **完成** （一场比赛，而不是失败） |
| `activity_open: false` | **不活跃的** |
| 现场没有结果 | **没有资格** |
| 还有别的词吗？ | **失败的**，用塔比特自己的话来形容 |

`desktop_pet` 服务接受的唯一场景是——每出现一个其他的名字 回来 `SIGN_IN_SCENE_UNSUPPORTED`． 宠物本身需要 `required_days` （3) 在它被采用之前，所以一个签名日也报告了条纹 （`1/3 days`）.

一个 `sign_in_result` 这个插件还没有被报告为失败 一个错误的“声称”比你能做到的失败更糟糕 阅读。

## 用法

`GET /api/commerce/quota/v1/usage` 给出周期的零用钱，其中 使用卡显示为 **循环使用** -一个百分比，表示周期何时重启 （兔兔的周期是每周一次，以北京时间命名）。

## 一个回合是如何发送的

`loader()` 双手喜鹊 `fetch` ,重写 `chat/completions` 到 Tabbit的应用程序进行了三个调用：

```
POST /api/v3/chat/rooms                      → a room (the conversation)
POST /api/v3/chat/rooms/<room>/runs          → the turn: { content, selected_model }
POST /api/v3/chat/rooms/<room>/join          → text/event-stream
```

流被写回OpenAI块： `assistant_message_delta` → `choices[].delta.content`， `event_message_chunk(thinking)` → `reasoning_content`， `run_completed` → `finish_reason: "stop"`． 一个转折 结束了没有 `run_completed` 或 `run_failed` -水流切断，转弯时机 Out—作为错误事件返回，而不是作为简短的回答返回：代理会返回 否则以半句或空句作答。转弯也会超时 发送 `chat/stop`，因此它停止使用该帐户的零用钱。

**对话历史** 住在房间里。每次喜鹊会议都有一个 房间(`chat.headers` 携带会话id)，因此是会话内的后续操作 只发送新消息，并将其挂在前一个答案的id -房间上 不会重放到提示符中。请求的文字记录不能继续 房间（一个新的会话，一个编辑的历史，一个房间的兔子重置）得到一个新的 房间里的整个笔录被平摊成一个提示；测量，模型 以前面的回合为背景回答最后一个问题。

`maxConcurrency` 是 **1**兔兔一次回答一个问题。

## 正在处理这个包

从这个源代码树的签出，或者从发布的包中：

```sh
magpie plugin add .        # this checkout; the community list has the package
magpie plugin login tabbit # or: pick the provider in the app
magpie provider test tabbit
magpie models tabbit
```

在OpenCode中，添加 `@magpie-community/opencode-tabbit-auth` 下 `plugin` 和 登录 `opencode auth login`。

## 发展

```sh
node --test tests/*.test.mjs   # Bun: `bun test`. Every hook, a synthetic
                               # cookie store, a replayed SSE turn
node scripts/check.mjs         # loads the hooks the way magpie and OpenCode do
```

测试从不触及网络。 `tests/plugin.test.mjs` 塔比特四岁了 端点; `tests/sse.test.mjs` 重放已录制的回合，包括重新加入 快照和一个转弯缩短； `tests/cookie.test.mjs` 密封和拆封a 合成铬 `v10` blob。

## 值得了解的限制

-   一个回合是一个网络应用的回合：第一个文本需要几秒钟，而一个回合则以一秒的速度运行 时间。
-   Tabbit保留了房间自己的历史，所以一个扁平的提示是备用的 路径，不是正常的路径。超过模型极限的非常长的转录本 兔兔的呼唤，它用自己的错误回应。
-   目录调用在没有有效令牌的情况下应答；一个令牌，真的 “过期”在第一回合出现(`401 请先登录`)，标记该帐户。

## 常见问题

### magpie-tabbit-provider 是什么？

Tabbit （web\.tabbit\.com）作为喜鹊/开放代码提供商：实时模型目录，cookie登录，聊天完成，循环使用和每日签到

### 如何安装 magpie-tabbit-provider？

在项目目录运行 npm install magpie-tabbit-provider，或使用 pnpm add / yarn add / bun add。

### magpie-tabbit-provider 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/magpie-tabbit-provider 是否存在。

### magpie-tabbit-provider 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### magpie-tabbit-provider 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### magpie-tabbit-provider 可以商用吗？

magpie-tabbit-provider 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### magpie-tabbit-provider 还在维护吗？

最新版本 0\.1\.4 发布于 2026/11/04（今天）；至今共发布 6 个版本，其中过去 12 个月发布了 6 个；首次发布于 2026/11/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

