Ornith-1.0 is a clever open coding model. Ollama's tool-calling isn't ready for it. Ornith-1.0, a June 2026 open-weight coding model, claims to learn by building its own harness during training, and its 9B model matches or beats Gemma4-31B on SWE-Bench Verified and Terminal-Bench 2.1. However, a developer found that Ollama's tool-calling support is not ready for it, encountering issues such as silent template fallback and unsupported capability requests, with the most critical being tool calls that are never real tool calls. Ornith-1.0 is a June 2026 open-weight coding model which claimed to have a genuinely different idea behind it: instead of learning inside a harness someone else built, it learns to build its own harness while it solves the task. The 9B model's benchmarks are strong for its size. I still couldn't get it running as a local Claude Code backend, and the reason why is more useful than the benchmark numbers. Most coding models get trained inside a harness a human already built: a fixed prompt template, retry logic, a plan-then-act loop bolted on from the outside. Ornith claimed to do something different. During training, the model first proposes a plan for how to approach each task, then solves the task using that plan. Both the plan and the answer get scored, so the model learns to write better plans, not just better answers. Over time the two improve together. On paper, the 9B model matches or beats Gemma4-31B, four times its size, on SWE-Bench Verified and Terminal-Bench 2.1. MIT-licensed, runs on a laptop. Runtime: Ollama, model built from a raw HF GGUF registry pull blocked by Zscaler on my network Proxy: LiteLLM, local instance, Anthropic-format /v1/messages front end Client: Claude Code, pointed at the local proxy instead of api.anthropic.com I've run this pattern before: point Claude Code at a local proxy instead of Anthropic, let the proxy translate to whatever model is actually running. Already wrote that up https://dev.to/mediblacksand f0ea36c53fb/one-terminal-two-trust-levels-running-claude-code-against-a-real-subscription-and-a-cheap-proxy-5c02 , with a cloud model behind it. This wasn't my first local model either: Gemma4, Qwen2, and Qwen3 before this. None stuck. The problem was never inference speed. It was trust: I don't have time to fact-check every answer for hallucination on top of doing the actual work. Bug 1: silent template fallback. Building from a raw GGUF instead of ollama pull ing the registry tag drops the chat-template metadata the manifest normally carries. Without it, Ollama falls back to bare prompt passthrough, no turn boundaries. Symptom: the model answers, keeps going, repeats the same answer, on a loop, because nothing tells it a turn ended. Fix: hand-write an explicit ChatML template plus a repeat penalty. Ollama applies neither by default when you skip the registry pull. Here's the part of the Modelfile that actually fixed it, trimmed to the load-bearing pieces: TEMPLATE """{{- if .Messages }} {{- range .Messages }} {{- if eq .Role "user" }}<|im start| user {{ .Content }}<|im end| {{ else if eq .Role "assistant" }}<|im start| assistant {{ if .Content }}{{ .Content }} {{- else if .ToolCalls }} {{- range .ToolCalls }}