Skip to content

About

A client for OpenAI-compatible APIs (OpenAI, Ollama, vLLM, OpenRouter, Azure): chat with tools and structured output, embeddings, models

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

@deckyard/openai

test Documentation release

A client for the OpenAI-compatible API for Jennifer programs: Chat Completions with tools and structured output, a tool loop that runs the model's tool calls through a function, embeddings and model listing. The base URL is settable, so it talks to OpenAI, Azure OpenAI, Ollama, vLLM, the llama.cpp server, LM Studio, OpenRouter, Groq, Mistral and Together alike. Every request has a deadline, a reply cap and retries on 408, 409, 429, 5xx and a refused connection, never resending a request the server may have received; errors carry the server's status, type, code, the wait it asked for and its rate-limit headers.

Documentation

Install

jvc add @deckyard/openai

This vendors the deck to vendor/<scope>/openai/. Without jvc, unpack the src/ subtree of a release archive (<scope>-openai-<version>.tar.gz) there.

Usage

import "@deckyard/openai/" as openai;

def c as openai.Client init openai.client(os.getEnv("OPENAI_API_KEY"));
def req as json.Value init openai.newRequest("gpt-5.4-mini");
$req = openai.addUserText($req, "Name three prime numbers.");
io.printf("%s\n", openai.text(openai.chat($c, $req)));

A local model through Ollama needs no key:

def local as openai.Client init openai.withBaseUrl(openai.client(""), "http://127.0.0.1:11434/v1");

Requirements

Jennifer 0.26.0 or newer, the default binary: the deck opens sockets (capability net), which jennifer-tiny does not have. An API key for a hosted service, or a local OpenAI-compatible server. No streaming yet.

Development

tools/check-all.sh                   # the full gate, as CI runs it
jennifer test src/openai_test.j      # the test overlay (a loopback fake, no key needed)
tools/check-docs.sh                  # docs against the code
tools/pack.sh dist                   # build the release archive

Licence

LGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <mplx@jennifer-lang.dev>.

About

A client for OpenAI-compatible APIs (OpenAI, Ollama, vLLM, OpenRouter, Azure): chat with tools and structured output, embeddings, models

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors