Twoody
Developers

Your computer's models, from your code

Twoody runs a language model on your computer. The twoody command runs it from a terminal, and an OpenAI-compatible API gives it to your programs, on this computer only, with a key.

  • The models only
  • This computer only
  • A key you can revoke
Terminal
npm install -g twoody
twoody pull Qwen3.5-9B-Q4_K_M
twoody run Qwen3.5-9B-Q4_K_M "Summarise this text in three points"

Without the Twoody app open, the command starts Twoody Server in the background by itself; twoody stop stops it.

01

Install the command

The same command, whichever way you install it.

Wherever Node.js 22 or later runs: Mac, Windows, Linux.

npm
npm install -g twoody

On a Mac or on Linux, with Homebrew. It brings Node.js along.

Homebrew
brew install osmove/twoody/twoody

For Python: the package runs the same command, and needs Node.js 22 or later.

pip
pipx install twoody

Twoody Server alone, in a container, for a server, a NAS or a Raspberry Pi. The API answers at http://127.0.0.1:3000/v1, for the programs of this computer only.

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"

In Twoody: Settings › Developers › Install the twoody command.

Without the app

twoody serve starts Twoody Server on this computer, at http://127.0.0.1:3000. In another terminal, twoody api-key create makes a key; the first time, it also makes you the server's owner, with the setup token the server left in its data folder.

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

02

Run a model

twoody list shows the models on this computer, twoody pull installs one from Twoody's catalogue, twoody run answers once or holds a conversation. Text can be piped in.

Terminal
twoody list
twoody pull Qwen3.5-9B-Q4_K_M
twoody run Qwen3.5-9B-Q4_K_M "Summarise this text in three points"
cat notes.txt | twoody run Qwen3.5-9B-Q4_K_M "Translate into French:"
twoody api-key create "my script"

03

The OpenAI-compatible API

Make a key with twoody api-key create, or in Settings › Developers. The address is http://127.0.0.1:47821/v1 with the Twoody app, http://127.0.0.1:3000/v1 with twoody serve. It answers /v1/models, /v1/chat/completions (streamed or not) and /v1/embeddings.

  • GET /v1/models The models installed on this computer
  • POST /v1/chat/completions An answer, streamed or not
  • POST /v1/embeddings Vectors, when the semantic search model is installed
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": "Hello"}]}'

Python, with the openai package

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": "Hello"}],
)
print(answer.choices[0].message.content)

JavaScript, with the openai package

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: "Hello" }],
});
console.log(answer.choices[0].message.content);

04

In your editor or agent

Any tool that takes an OpenAI-compatible address uses Twoody's models. For example:

Continue

Add this model to the models list of your config.yaml.

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

In Cline's settings, choose the API provider OpenAI Compatible and fill in these four fields.

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

Give Aider Twoody's address and your key, then start it with the model's name after 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

Replace twk_… with your key (twoody api-key create).

Settings read in each tool's documentation on 30 October 2026: Continue, Cline, Aider.

What the API gives, and to whom

The models only: never your memory, your documents or your conversations, which stay in Twoody. It answers the programs of this computer only, never the network nor a web page, and each needs a key you can revoke.

  • The models only
  • This computer only
  • A key you can revoke