---
title: "Caveman vs Not Diamond: AI model router comparison"
description: "Not Diamond and Caveman Router answer the same question: which model should handle this request. Not Diamond is already selling its answer and is the more complete product today. Caveman Router is not"
canonical: https://caveman.ac/compare/not-diamond
last-updated: 2026-10-13
---

# Caveman vs Not Diamond: AI model router comparison

Not Diamond and Caveman Router answer the same question: which model should handle this request. Not Diamond is already selling its answer and is the more complete product today. Caveman Router is not released yet.

The part of Caveman you can use now does a different job. Caveman Middleware and Caveman Proxy make each request smaller, and that works on top of whatever model Not Diamond picks.

## What is Not Diamond?

Not Diamond is a model router: it predicts which LLM should answer each input, so you pay less without giving up accuracy. Its docs cover two products, intelligent model routing and automatic prompt optimization, with Python, TypeScript and REST APIs. The Python SDK is Apache-2.0.

The chat router takes your messages and a list of candidate models and returns a recommendation. It does not proxy the call. You get a model back, call it with your own SDK, and keep your keys. A `tradeoff` setting leans toward cost or latency, and a `hash_content` flag hashes message content, which the SDK says is then not persisted.

If the pretrained router doesn't fit your traffic, you can train a custom one on your own data: the inputs, each candidate model's response, and a score for each. The minimum is 15 samples.

In August 2026 it launched Not Diamond Code, a router for long-running coding agents that picks both the model and the reasoning effort at each step. The launch post says it runs as a local proxy next to your harness, Claude Code included, sends traffic through your existing gateway or provider, and routes on derived metadata, so agent inputs and outputs stay on your machine. Its docs page currently links to an early preview signup.

Pricing is public. Pay-as-you-go is $0.05 per million tokens routed, and the enterprise tier adds SSO, org analytics and a privacy-preserving deployment. The pricing page puts average added latency at 100 to 150 ms per request. Logos on the homepage include IBM, Dropbox, Hugging Face and OpenRouter, and the company states SOC 2 and ISO 27001 compliance.

## What is Caveman Router?

Caveman Router picks the model for each subagent Claude Code spawns. A repo search the lead agent would run on its frontier model can go to a smaller one, and you see one line in the terminal when that happens. It keeps your claude.ai login, so Claude turns stay on your Pro or Max plan.

If the router doesn't answer within its 2.5 second budget, or there is no key or the reply is bad, the spawn runs exactly as Claude Code proposed. The hook and API client are [open source on GitHub](https://github.com/caveman-ai/router-client) under Apache-2.0; the routing service itself is hosted. The hook sends the subagent's prompt, description, proposed model and the parent session's token counts. Per its README, prompts are kept after automatic redaction and used to improve routing. Files, tool output and transcripts are not sent.

Router is not released yet, and Caveman hasn't published a savings methodology for it yet, so this page quotes no number. [Read the Router page](/router).

## Not Diamond vs Caveman: feature comparison

| | Not Diamond | Caveman |
|---|---|---|
| Available today | Chat router, custom routers; Code router in early preview | Middleware, Proxy, Cloud and Router |
| What gets routed | Each prompt, or each agent step with Code | Each Claude Code subagent spawn |
| Chooses reasoning effort | Yes, in Not Diamond Code | No |
| Router trained on your data | Yes | No |
| Prompt optimization | Yes | No |
| Leaves your machine for routing | Messages (chat router), derived metadata (Code) | Subagent prompt and token counts |
| Price | $0.05 per million tokens routed | Router unpriced; Middleware client is MIT |
| Shrinks tool output | No | Yes |
| Original text recoverable | n/a | Yes, through a retrieve tool |

## Where Not Diamond is the better pick

For routing, Not Diamond wins on most rows. It is live, it routes apps as well as coding agents, and you can train it on your own labels, which Caveman has no answer for.

The Code router's privacy design deserves credit. Routing on derived metadata means prompt text doesn't have to leave the machine, while Caveman Router's hook sends the subagent prompt to a hosted service. Choosing reasoning effort on every step is also broader than moving subagents only.

Not Diamond's launch post says its Code router approximates Opus 4.8 Xhigh performance at 39% lower inference cost on Poly-SWE-Bench and 61% lower on LongCodeQA. Those are its own benchmark runs. Take them as a reason to try it on your repos, then measure.

## Where Caveman Router fits

Caveman Router is narrow by design. It never touches the lead agent's model, it never blocks a spawn by default, and it runs inside Claude Code on the subscription you already pay for. If that is the shape you want, [follow the Router page](/router). Until it ships, Not Diamond is the router you can actually run.

## Does Caveman work with Not Diamond?

Yes. Routing lowers the price per token; compression lowers the number of tokens. The two multiply.

Caveman Middleware wraps the provider client or framework that makes the final model call. Before the call it shortens eligible tool results, such as file reads, API responses and command output, in a copy of the outbound request. The model gets a `caveman_retrieve` tool to pull back the original when it needs detail. Your app's history keeps the original bytes, and user messages, system prompts and images are left alone.

That gives a clean order with the chat router. Pass your normal history to `select_model`, so Not Diamond scores the uncompressed conversation. Then send the call to the recommended model through a Caveman-wrapped client. A 20,000-token JSON result in that history travels as a short view plus a handle, and the routing decision was made on the full text.

Adapters exist for the OpenAI, Anthropic and Google Gen AI SDKs in both TypeScript and Python, plus frameworks such as the Vercel AI SDK, LangChain, Mastra, Pydantic AI and CrewAI. Both packages are alpha. The runtime is local and needs no Caveman account. For Claude Code itself, [Caveman Proxy](/products/caveman-proxy) is the equivalent; it hasn't been tested chained behind Not Diamond's local proxy.

The only numbers Caveman publishes for Middleware are 13 synthetic samples run through the real local runtime, counted as inferred token estimates. They are sample reductions, not bill savings. See the [Middleware page](/products/caveman-middleware).

## When should you use Not Diamond alone?

Use it alone when your requests carry little tool output. A support bot answering short questions has nothing for compression to shrink, so the router is the whole win. The same goes for traffic where output tokens dominate spend.

Add Caveman when tool results fill the context: an agent reading repo files, a workflow pulling large API responses, a coding session re-sending test logs every turn. Those tokens get paid for on every call, cheap model or not.

## How to add Caveman to Not Diamond

Wrap the provider client you already call after `select_model`, start the local runtime, and compare one workload with and without it. The [Not Diamond setup guide](/switch/not-diamond) has the code, the checks and a rollback. For the testing method, read [model routing for agents](/guides/model-routing) and [measuring cost per task](/guides/measure-agent-cost).

## FAQ

**Is Caveman a Not Diamond alternative?**
Caveman Router overlaps with Not Diamond for Claude Code subagents, but it is not released yet. If you need a router this month, use Not Diamond.

**Does compressing the prompt change which model Not Diamond picks?**
Not with the chat router, if you pass your original history to `select_model` and compress only the provider call. That is how Caveman Middleware works: it edits the outbound copy.

**Does Not Diamond compress prompts?**
No. Its prompt optimization rewrites prompts to improve accuracy and adapt them to new models. It doesn't shrink tool output.

**Do I need a Caveman account for compression?**
No. Middleware and Proxy run a local runtime. Inference still goes to your provider with your keys.

## Sources

- [Not Diamond homepage](https://www.notdiamond.ai/)
- [What is Not Diamond?](https://docs.notdiamond.ai/docs/what-is-not-diamond)
- [Not Diamond pricing](https://www.notdiamond.ai/pricing)
- [Not Diamond Code launch post](https://www.notdiamond.ai/blog/not-diamond-code-intelligent-model-routing-for-coding-agents)
- [Training a custom router](https://docs.notdiamond.ai/docs/router-training-quickstart)
- [Caveman Router client README](https://github.com/caveman-ai/router-client)
- [Caveman Middleware docs](https://docs.caveman.so/docs/sdk/middleware)
