Skip to content

Choose a model

A model is optional. Without one, Geometer still finds problems using rules it reads from your code. A model can suggest more rules and can be tried on your agent’s tasks before you switch to it. This guide covers the choices and what each one sends where.

Geometer has two separate uses for a model, and you can choose a different model for each.

  • Suggesting rules. A model reads your tests, docs and code and suggests more rules for you to review. Each stays a suggestion until you accept it with geo rules review <ID> --accept.
  • A model change check, geo model-upgrade (and geo stability with another model). The model Geometer tries on your agent’s tasks when you want to compare models.

Geometer calls a model only when you ask: with geo rules propose --model, or by starting a model-change or stability check. Listing rules, reviewing them, exploring and geo ci use stored answers and never call a model.

Run geo model status to see the current choice for each use. Each use has these choices, set with geo model use:

Model choices and what leaves your computer

Choice Where the model runs What leaves your computer
No model (default), none Nowhere Nothing. Geometer finds rules from your code, tests and database schema without a model.
Free local model, local On your computer, through Ollama, with the model qwen3:8b Nothing of your project. The model itself is a download of about 5 GB, through Ollama.
Your own API, api At the service you name, which can be any OpenAI-compatible service Excerpts of your code and the agent’s requests go to that service, under your agreement with its provider. Geometer asks once before any of your code is sent.
Geometer models (paid), geometer Not available yet Not applicable in the alpha. geo model use geometer does not work yet.

Models that Ollama runs in its own cloud (names ending in :cloud) are always refused.

Run geo model setup-local and follow the progress. Geometer:

  1. Looks for your own Ollama: a server already answering at 127.0.0.1:11434, or an installed Ollama program. If it finds the program, it starts it privately on your computer and stops it afterwards.
  2. If you have no Ollama, it can download the pinned official release into its own records folder and checks the download against a pinned digest before it unpacks it.
  3. Checks that you have enough disk (the model’s size plus 10 GB) and memory (8 GB for qwen3:8b). If you are short, it says so in words and suggests your own API instead.
  4. Downloads qwen3:8b with progress. You can stop at any time and it continues where it stopped.

Then:

geo model setup-local
geo model use local
geo model status

By default Geometer talks to Ollama only on your own computer (http://127.0.0.1:11434). Commands that take --model-endpoint accept another loopback address; a non-local address needs --allow-remote-endpoint, which is an explicit decision.

  1. Choose api with geo model use api.
  2. Give it the address of the service (for example https://api.openai.com/v1) with --base-url, the model name with --model, the name of the variable that holds your key with --key-env, and the most to spend in one run in US dollars with --limit-usd.
  3. Read the notice that excerpts of your code are sent to that service, and agree if you want to continue. Geometer asks once for each use and provider.

The key is stored on your computer and never in a file with your settings. Geometer never takes a key from a command line argument.

export GEO_MODEL_API_KEY=... # your key; do not paste it into commands
geo model use api --scope proposals --model <model name> \
--base-url https://api.example.com/v1 --key-env GEO_MODEL_API_KEY \
--limit-usd 1

Use --key-stdin to pass the key on standard input. --yes-send-code agrees to send excerpts of your code without asking, so use it only when you mean it. The spend limit per run defaults to 1 US dollar (use --limit-usd or --limit-tokens to change it). Without a known price, a token limit applies. geo model price records a hosted model’s price so a money limit can bound it.

To take back what you agreed to:

geo model forget api.example.com --key

That removes the agreement that code goes to that provider and, with --key, the stored key. The choice itself changes with geo model use.

For scripts and CI, the environment can set a model. It overrides the setting you chose with geo model use.

Environment variables for models

Variable What it sets
GEO_MODEL For both uses: none, local (optionally local:<model>) or api:<model>@<base url>
GEO_MODEL_PROPOSALS and GEO_MODEL_CHECK The same, for rule suggestions and for model checks separately
GEO_MODEL_API_KEY The key for api:, read from the environment
GEO_MODEL_CONSENT For example proposals,check: the agreement to send code to the hosted model, for those uses

Command flags such as --model and --to win over the setting.