Skip to main content

Self-Contained by Design

Ante is a single self-contained binary (a ~15MB compressed download) that manages its own inference engine. Add a GGUF file and you have a complete coding agent on your own hardware: no API key, no account, and model calls that never leave your machine.

Privacy boundary

Local inference keeps model requests and responses on your hardware. Ante application telemetry is separate from model traffic; set ANTE_TELEMETRY=off for runs where no OpenTelemetry metrics or logs should be exported. This does not disable local log files. See Telemetry.

Local is a first-class way to run Ante. Hosted and local providers live in the same catalog, run the same full prompt and tool stack, and go through the same public benchmarks. You choose per session which one a task deserves.

Pick your topology

TopologyWhat it looks likeReach for it when
All frontierHosted providers onlyYou want peak capability and have connectivity and budget
MixedLocal and hosted side by side, switched per session or mid-conversationSome work is privacy-sensitive or high-volume, some needs a frontier model
All localThe built-in engine serves everythingAir-gapped machines, hard privacy requirements, zero marginal cost

How Ante treats local models

A provider like any other. Any local server with an OpenAI-compatible endpoint (Ollama, vLLM, LM Studio, your own) registers through the same catalog.json mechanism as a hosted provider. No special casing, and nothing to migrate away from later. See Providers and the Catalog Reference.

Native integration. Ante goes further than tolerating a base URL. Offline mode manages llama.cpp itself: pinned, checksum-verified builds matched to your hardware (Metal on Apple silicon, CUDA or Vulkan or CPU on Linux), GGUF discovery across your disk, memory estimation before a model loads, live load progress, and server lifecycle handled in the TUI. A curated model list tells you what runs well before you download 17 GB. Prefer your own build or launch flags? Custom engines covers that.

Agent-native inference, in progress. The endgame is an inference engine inside the agent process, tuned for how agents actually call models: prefix reuse across turns, constrained decoding for tool calls, batching across subagents. We explore that in the open with nanochat-rs, a small pure-Rust inference core you can clone and run. See Agent-Native Inference.

Mixing local and frontier

When offline mode loads a model, Ante registers it as the local provider: an ordinary OpenAI-compatible entry in the catalog, next to Anthropic or OpenAI. From there, mixing is normal provider mechanics:

  • Switch mid-session. /providers in the TUI switches provider and model without a restart. Draft against a frontier model, flip to local for a sensitive repo, flip back.
  • Pick per invocation. ante --offline-model <file> runs a script or headless job against a local model while other sessions use hosted providers.
  • Share one model across clients. ante serve --offline-model <path> loads the model once for every connecting client, and any session can attach to a llama server already running on your machine (ports 8080-8179 are scanned automatically).
  • Lighter models for subagents. A subagent can pin its own model id via model: frontmatter, so exploration or search agents can run on a smaller model than the main loop.

One boundary to know: a session talks to one provider at a time. Switching is instant, but a subagent runs on its parent session's provider, so you cannot yet route the main loop to a frontier provider and a subagent to local within the same session.

Numbers you can check

We benchmark local models with the same rigor as frontier ones: same harness, same pinned public builds, same auditable Harbor runs. Qwen3.6 27B, a 17 GB download, scores 56.2% on Terminal-Bench 2.1 across 445 trials — live at antigma.ai/eval, with the full curated list on Verified Models.