Skip to main content
Belvedir traces agents running on local models the same way it traces cloud providers: same sessions, tasks, and training sets. The only difference is where the tokens are generated.

1. Run a model locally

Download the Belvedir Local desktop app; it bundles the llama.cpp engine (with Ollama and vLLM as switchable alternatives) and walks you through picking a model that fits your machine’s memory; the weights download on first launch.
macOS blocks the app on first open (it isn’t notarized yet). Click Done, not Move to Trash, then run xattr -cr "/Applications/Belvedir Local.app" and reopen it. Approving it under System Settings → Privacy & Security → Open Anyway also works.
The app serves on 127.0.0.1:8080, llama.cpp’s standard port, adopting a llama-server you already run there. On the Ollama engine the endpoint is 127.0.0.1:11434 instead; use whichever address matches your engine in the baseURL below.

2. Point your agent at the local endpoint

Ollama exposes an OpenAI-compatible API, so your agent talks to it through the OpenAI SDK, which the Belvedir SDK already instruments:

3. Trace it as usual

Nothing changes on the Belvedir side: initialize the SDK with instrumentModules: { openAI: openai.OpenAI } and wrap agent runs in withSession (see Quickstart). Spans arrive with the local model name (e.g. qwen3:4b) so you can tell local and cloud calls apart in the dashboard.
Note: inference stays on your machine, but traces do not: prompts and completions are exported to Belvedir like any instrumented app. Only enable tracing for local workloads you’re comfortable sending.