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.
Start Ollama and pull a chat model
Section titled “Start Ollama and pull a chat model”ollama serveollama pull qwen3-coder:30bPull the chat model yourself: tapes local up pulls the embedding model the
server needs, not every completion model you might talk to.
Start the proxy
Section titled “Start the proxy”With default configuration, tapes forwards Ollama-compatible traffic to
http://localhost:11434:
tapes serveThe proxy answers on 8080. Send a request through it:
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.
Read it back
Section titled “Read it back”The captured exchange is a session like any other:
tapesctl config set tapes-url http://localhost:8081tapesctl sessions listWhen it fails
Section titled “When it fails”- Connection refused — the proxy is up but Ollama is not. Start
ollama serveand 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.
Other providers
Section titled “Other providers”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.