How it works

One endpoint. The right model, every time.

Kultivait.ai speaks the same API language your tools already use — OpenAI-compatible and Anthropic-compatible endpoints, both streaming. Swap the endpoint, keep your workflow, and let the router do the economics.

Your prompts agents · chat · tools Kultivait.ai router local embedding classifies in milliseconds Local model most prompts · $0 Premium cloud only when it counts
1

Connect

Point any OpenAI- or Anthropic-compatible tool at http://localhost:4114 with model: auto. No retraining, no workflow changes — it speaks the language your tools already use.

2

Route

A local embedding model (nomic-embed-text, 274 MB) classifies each prompt in milliseconds against four roles — simple, reasoning, docs, architect. Routine work runs on your own hardware; hard problems go to a cloud tier.

3

Harvest

Every decision is recorded to a local savings ledger with costs computed against frontier-model baseline pricing. kultivait harvest shows what was routed where and what you saved.

What routes where

Local by default. Cloud when it counts.

The router's job is simple to state: never spend a premium token on work a free model does well. Here's how a typical workload splits.

🌱 Stays local — free

  • Renames, formatting, type hints, docstrings
  • Summaries, first drafts, rewrites, commit messages
  • Classification, tagging, and data extraction
  • Local reasoning — debugging a deadlock, tracing an off-by-one
  • Translation of routine content

☁️ Goes to premium cloud

  • Cross-file architecture and refactoring plans
  • Migration design and API-splitting strategy
  • Security review of critical flows
  • Doc-grounded checks against current API documentation
  • Prompts the classifier isn't sure about — thin margins route up, never down

You stay in control: routing lives in a plain TOML config (~/.kultivait/config.toml) you can edit freely, and kultivait route "your prompt" dry-runs any classification so you can see exactly what the router would do — and why — before it does it. Every decision lands in the ledger with its classification margin, so you can audit the router's judgment after the fact.

When local isn't enough

Routing knows its limits — and hands off cleanly.

Some prompts deserve a frontier model. When one arrives and no cloud tier is available — or your agent's tool loop keeps the work local — Kultivait.ai serves it with your best local model and archives the full conversation as an escalation.

kultivait escalations --brief then distills it into a paste-ready TASK / CONTEXT / PROGRESS / NEEDED brief using a local model, and names where to take it. Escalating costs one paste instead of re-explaining the whole session — and the distillation itself costs zero cloud tokens.

Honest by design

Would-be escalations are never silently swallowed: each one is flagged in the ledger and surfaced by kultivait harvest.

Context hygiene built in

kultivait prune distills long transcripts at phase boundaries — findings, decisions, constraints, open questions — so the next phase starts light.

Nothing lost

Distillation is lossy, so every full transcript is composted to disk first. The compost pile is the escape hatch.

Setup

What you need

Your existing tools

Anything that talks to an OpenAI- or Anthropic-style API today can talk to Kultivait.ai instead. One endpoint change.

ollama + a model or two

An 8–14B model runs comfortably on a modern dev machine. kultivait init surveys what you have: your smallest capable model becomes the simple tier, your largest the reasoning tier.

Cloud CLIs (optional)

If claude or gemini CLIs are on your PATH, they become cloud tiers. None installed? Local-only mode is first-class — cloud-worthy prompts are still recognized and packaged as escalation briefs.

Get started

One command. Your models, your machine.

Kultivait.ai is free during early access. If you run local models with ollama, you're two minutes from routing.

curl -fsSL https://kultivait.ai/install.sh | sh

Full quickstart, command reference, and agent integration on the developers page.