Choose a model
This content is not available in your language yet.
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.
What a model is used for
Section titled “What a model is used for”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(andgeo stabilitywith 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.
The choices
Section titled “The choices”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.
The free local model
Section titled “The free local model”Run geo model setup-local and follow the progress. Geometer:
- 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. - 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.
- 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. - Downloads
qwen3:8bwith progress. You can stop at any time and it continues where it stopped.
Then:
geo model setup-localgeo model use localgeo model statusBy 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.
Your own API
Section titled “Your own API”- Choose
apiwithgeo model use api. - 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. - 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 commandsgeo model use api --scope proposals --model <model name> \ --base-url https://api.example.com/v1 --key-env GEO_MODEL_API_KEY \ --limit-usd 1Use --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 --keyThat removes the agreement that code goes to that provider and, with --key, the stored key. The choice itself changes with geo model use.
Setting a model from the environment
Section titled “Setting a model from the environment”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.
- Privacy and security (What uses the network and what does not.)
- Check your agent (Model-change and stability checks.)