Twoody
开发者

你电脑上的模型,从你的代码中调用

Twoody 在你的电脑上运行语言模型。twoody 命令可以在终端中使用它,兼容 OpenAI 的 API 可以把它提供给你的程序,仅限这台电脑,并且需要密钥。

  • 只有模型
  • 只限这台电脑
  • 可以撤销的密钥
Terminal
npm install -g twoody
twoody pull Qwen3.5-9B-Q4_K_M
twoody run Qwen3.5-9B-Q4_K_M "用三点总结这段文字"

没有打开 Twoody 应用时,命令会自动在后台启动 Twoody Server;twoody stop 可将其停止。

01

安装命令

无论用哪种方式安装,都是同一个命令。

任何能运行 Node.js 22 或更高版本的地方:Mac、Windows、Linux。

npm
npm install -g twoody

在 Mac 或 Linux 上使用 Homebrew,会一并安装 Node.js。

Homebrew
brew install osmove/twoody/twoody

面向 Python 用户:这个包运行同一个命令,需要 Node.js 22 或更高版本。

pip
pipx install twoody

在容器中单独运行 Twoody Server,适用于服务器、NAS 或树莓派。API 地址为 http://127.0.0.1:3000/v1,只响应这台电脑上的程序。

Docker
docker run -d --init --name twoody -p 127.0.0.1:3000:3000 \
  -e TWOODY_API_ALLOW_NETWORK=1 -v twoody:/data ghcr.io/osmove/twoody-server
docker exec twoody twoody-server models add Qwen3.5-4B-Q4_K_M
docker exec twoody twoody-server api-key create "my-script"

在 Twoody 中:设置 › 开发者 › 安装 twoody 命令。

不用应用

twoody serve 在这台电脑上启动 Twoody Server,地址为 http://127.0.0.1:3000。在另一个终端中运行 twoody api-key create 创建密钥;第一次运行时,它还会用服务器留在数据文件夹中的设置令牌,让你成为这台服务器的所有者。

Twoody Server
twoody serve
twoody api-key create "my-script"

02

运行模型

twoody list 显示这台电脑上的模型,twoody pull 从 Twoody 的目录中安装模型,twoody run 回答一次或进行对话。也可以通过管道传入文本。

Terminal
twoody list
twoody pull Qwen3.5-9B-Q4_K_M
twoody run Qwen3.5-9B-Q4_K_M "用三点总结这段文字"
cat notes.txt | twoody run Qwen3.5-9B-Q4_K_M "翻译成英文:"
twoody api-key create "my-script"

03

兼容 OpenAI 的 API

用 twoody api-key create 或在 设置 › 开发者 中创建密钥。使用 Twoody 应用时地址为 http://127.0.0.1:47821/v1,使用 twoody serve 时为 http://127.0.0.1:3000/v1。它响应 /v1/models、/v1/chat/completions(流式或非流式)和 /v1/embeddings。

  • GET /v1/models 这台电脑上安装的模型
  • POST /v1/chat/completions 回答,流式或非流式
  • POST /v1/embeddings 向量(安装了语义搜索模型时)
curl
curl http://127.0.0.1:47821/v1/chat/completions \
  -H "Authorization: Bearer $TWOODY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "Qwen3.5-9B-Q4_K_M", "messages": [{"role": "user", "content": "你好"}]}'

Python,使用 openai 包

Python
from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:47821/v1", api_key="twk_…")
answer = client.chat.completions.create(
    model="Qwen3.5-9B-Q4_K_M",
    messages=[{"role": "user", "content": "你好"}],
)
print(answer.choices[0].message.content)

JavaScript,使用 openai 包

JavaScript
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "http://127.0.0.1:47821/v1", apiKey: "twk_…" });
const answer = await client.chat.completions.create({
  model: "Qwen3.5-9B-Q4_K_M",
  messages: [{ role: "user", content: "你好" }],
});
console.log(answer.choices[0].message.content);

04

在你的编辑器或智能体中

任何接受兼容 OpenAI 地址的工具都能使用 Twoody 的模型。例如:

Continue

把这个模型加到 config.yaml 的 models 列表中。

config.yaml
models:
  - name: Twoody
    provider: openai
    model: Qwen3.5-9B-Q4_K_M
    apiBase: http://127.0.0.1:47821/v1
    apiKey: twk_…

Cline

在 Cline 的设置中选择 API 提供方 OpenAI Compatible,并填写这四项。

API Provider
OpenAI Compatible
Base URL
http://127.0.0.1:47821/v1
API Key
twk_…
Model ID
Qwen3.5-9B-Q4_K_M

Aider

把 Twoody 的地址和你的密钥告诉 Aider,然后用 openai/ 加模型名启动它。

Terminal
export OPENAI_API_BASE=http://127.0.0.1:47821/v1
export OPENAI_API_KEY=twk_…
aider --model openai/Qwen3.5-9B-Q4_K_M

把 twk_… 换成你的密钥(twoody api-key create)。

以下设置于 2026 年 10 月 30 日在各工具的文档中核实: Continue, Cline, Aider.

API 提供什么,提供给谁

只提供模型:绝不涉及你的记忆、文档或对话,它们留在 Twoody 中。它只响应这台电脑上的程序,绝不响应网络或网页,每个程序都需要一个你可以撤销的密钥。

  • 只有模型
  • 只限这台电脑
  • 可以撤销的密钥