文档 · 指南

让 Pencil 用任意模型

Pencil(pen.dev)是一个设计画布,它的 Agent 会调用模型。Pencil 可以在 ~/.pencil/models.json 里配置你自己的供应商,格式和 Pi 一样。magpie 在这里加一个名为 magpie 的供应商,Pencil 的模型选择器里就有了 DeepSeek、GLM、Kimi、Qwen、Claude 或 ChatGPT 订阅等 magpie 里的模型。

接入 Pencil

  1. 在 magpie 里添加供应商在 供应商 页添加 API Key,或登录一个订阅。
  2. 在 Agent 页把 Pencil 的供应商设为 magpiePencil 的模型选择器里就会列出 magpie 为它选的模型。
  3. 重启 Pencil,在 Agent 输入框里选模型Pencil 只在启动时读取自定义模型,所以要重启一次。模型在 Pencil 的 Agent 输入框里选,不在 magpie 能读到的文件里。

magpie 在电脑上找到 Pencil 的方式:~/.pencil 文件夹(Pencil 应用和 pen.dev 命令行运行过一次后就有);在 Mac 上,装好但从没打开过的应用也能按 Pencil.app 或 pen.dev.app 找到。

models.json

Pencil 设置里的自定义供应商可以用 OpenAI Completions、OpenAI Responses 或 Anthropic Messages,对整个供应商生效。magpie 的供应商用 OpenAI Completions(Pi 的 openai-completions),指向网关的 /v1,网关对每个模型都接受这个协议:

终端
// ~/.pencil/models.json
{
  "providers": {
    "magpie": {
      "name": "magpie",
      "baseUrl": "http://127.0.0.1:3425/v1",
      "api": "openai-completions",
      "apiKey": "",
      "models": [
        {
          "id": "deepseek/deepseek-v4-pro",
          "name": "…",
          "reasoning": …,
          "input": ["text", …],
          "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
          "contextWindow": …,
          "maxTokens": …,
          "compat": {}
        }
      ]
    }
  }
}

Pencil 的请求带着 magpie 给 Pencil 的 Key,magpie 靠它认出 Pencil,因为 Pencil 的 User-Agent 不好分辨。

模型字段

每个模型都带上 Pencil 自己给模型写的全部字段。magpie 不知道的值用 Pi 的默认值:上下文 128K,回复 16K。cost 全是 0,因为花费由 magpie 自己统计。模型自己的 api 和 baseUrl 不写,Pi 会读它们,但 Pencil 自己的编辑器从不写。

你的供应商保持不变

你在 Pencil 里配置的其他供应商保持不动。magpie 供应商里不是 magpie 写的键(比如别的工具加的设置)也会保留。模型列表只归 magpie 管:目录里没有了的模型会从列表里消失。

切回

在 magpie 里关掉 Pencil 时,magpie 从 models.json 里删掉 magpie 供应商,其他供应商保持不动。

常见问题

Pencil 能用 DeepSeek 或 GLM 吗?

能。magpie 在 ~/.pencil/models.json 里加一个 magpie 供应商,重启 Pencil 后在 Agent 输入框里选模型即可。

为什么 Pencil 里看不到 magpie 的模型?

Pencil 只在启动时读取自定义模型。重启 Pencil。

magpie 的供应商用什么协议?

OpenAI Completions,指向网关的 /v1,所有模型都走它。

magpie 会改我在 Pencil 里的其他供应商吗?

不会。magpie 只写自己的 magpie 供应商。

更多 Agent 用同样的模型:让 OpenPencil 用任意模型、让 WorkBuddy 用任意模型、让 Pi 用任意模型、让 Mistral Vibe 用任意模型。遇到报错?见 常见错误排查,或到 Discord 提问。