Skip to content

Capture local Ollama traffic

Not every client is a harness the client CLI can launch. For those, tapes runs as a plain forward proxy: point the client’s base URL at it, and whatever flows through is captured. Ollama is the default upstream, which makes it the shortest proxy journey — no flags at all.

Terminal window
ollama serve
ollama pull qwen3-coder:30b

Pull the chat model yourself: tapes local up pulls the embedding model the server needs, not every completion model you might talk to.

With default configuration, tapes forwards Ollama-compatible traffic to http://localhost:11434:

Terminal window
tapes serve

The proxy answers on 8080. Send a request through it:

Terminal window
curl http://localhost:8080/api/chat \
-H 'Content-Type: application/json' \
-d '{"model":"qwen3-coder:30b","messages":[{"role":"user","content":"hello"}],"stream":false}'

Any Ollama-compatible application works the same way: configure its base URL as http://localhost:8080 instead of http://localhost:11434.

The captured exchange is a session like any other:

Terminal window
tapesctl config set tapes-url http://localhost:8081
tapesctl sessions list
  • Connection refused — the proxy is up but Ollama is not. Start ollama serve and retry.
  • Model not found — the model was never pulled. ollama pull <model> fixes it; the proxy forwards the error verbatim, so the message you see is Ollama’s own.

The same pattern covers Anthropic- and OpenAI-compatible clients: run tapes serve with the matching --provider and --upstream, and preserve the path convention the client and provider expect. The integrations page has the details.