Skip to content

Docs

Server overview

Run Bedrova's local server so your own apps, scripts, and agents can use your models.

Bedrova runs a local HTTP server so anything on your Mac — your code, a script, another app — can use the models you’ve loaded. It speaks the OpenAI and Anthropic dialects plus a native management API. This page covers how to connect; the per-dialect references list every endpoint.

Connecting

Point your client at the root base URL, not a /v1 URL — Bedrova adds the path itself:

http://127.0.0.1:1337

Most OpenAI clients want a baseURL plus an API key. On localhost the key is ignored, so any placeholder works:

from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:1337/v1", api_key="local")
client.chat.completions.create(
    model="qwen35-7b-4bit",
    messages=[{"role": "user", "content": "Hello"}],
)

The port is configurable in Settings → Server/API. Ready-made snippets for common clients are in Integrations.

The three surfaces

SurfacePath prefixReference
OpenAI-compatible/v1/*API: OpenAI /v1
Anthropic-compatible/anthropic/v1/*API: Anthropic
Native management/api/v1/*API: Management /api/v1

The management routes are the same ones Bedrova’s own UI uses — models, downloads, loaded models, memory, search, rerank, perception, hardware, settings, diagnostics — and they return the shared contract shapes.

Auth and exposure

On 127.0.0.1 the server is open and needs no auth — it’s reachable only from your Mac. Exposing it to your LAN or Tailscale is behind an explicit toggle with a clear warning, and turning it on requires an access key. Send it as an OpenAI Authorization: Bearer token or an Anthropic x-api-key header. CORS origins are configurable. See Settings reference and the trust note in Network calls.

Streaming

Chat, responses, audio synthesis, and image progress stream over Server-Sent Events with OpenAI-style [DONE] framing. Set stream: true on the request.

Just-in-time loading, TTL, and MCP

A model that isn’t loaded yet loads on its first request and auto-evicts after an idle TTL you control. Pinned models stay resident. Tool calling and MCP work over the API as well as in the app — see Tool calling & MCP. The loading and eviction mechanics are in Memory & loading.

Screenshot: the Server view with the live request log — added at launch.