Models
AlbertCode handles the engineering workflow: the plan, the isolated copy, the tests, the reviews and the approvals. The model you choose does the reasoning. You can change models at any time, even between two tasks in the same session.
Supported providers
| Provider | What you need |
|---|---|
| Major hosted model providers | An API key. /connect lists every provider AlbertCode supports |
| Kimi (Moonshot) | An API key |
| Hugging Face | A token. Open-weight models run through Hugging Face's inference router |
| OpenRouter | An API key. Gives access to many vendors' models through one account |
| Any compatible API service | Its address and, if it needs one, a key |
| A model on your machine | Ollama, LM Studio, vLLM or another local model server |
Connect a provider
| Interface | How |
|---|---|
| Terminal | /connect, or /connect <provider> |
| Browser | Connect a provider in the model menu, /connect, or the command palette |
| VS Code | Connect a Provider, or /connect |
- Pick a provider.
- Paste its key, or give the address of your local model server.
- AlbertCode checks the key or address works before saving it, and shows the provider as connected only once that check has passed.
- Choose a model from the list that opens.
The first time you run AlbertCode with nothing connected, the connect step opens by itself.
Local models
Start your model server, then connect a model on your machine with its address:
| Server | Usual address |
|---|---|
| Ollama | http://localhost:11434/v1 |
| LM Studio | http://localhost:1234/v1 |
| vLLM | http://localhost:8000/v1 |
With a local model, your code never leaves your computer.
Choose a model
| Interface | How |
|---|---|
| Terminal | /model, then type to narrow the list. In the classic terminal, /model <search> filters; recent models come first, then every connected provider's, and you can also type any model ID |
| Browser | The model chip under the message box, Alt M, or /model |
| VS Code | Choose Model, or /model |
Models… in the browser's Settings menu (Alt M) reads each connected provider's list when it opens; on the classic page, Refresh models in the ⋮ menu asks the providers for their lists again.
What a model needs
The model must support tool calling (function calling) reliably, because that is how it reads files, runs tests and makes changes. Most current hosted models do. Among local models, results vary with size and quantisation.
Check a model before relying on it:
albertcode models testThis sends one tool-calling request and tells you whether the model handled it. In the browser, Test in
Connect a provider does the same; in the classic terminal it is /test, and in VS Code Test the Chosen
Model.
Pictures you attach reach the model as pictures only if it accepts images; when it doesn't, AlbertCode tells you. The same goes for the screenshots Albert takes of the app: a model that cannot see, such as DeepSeek, is told plainly that it cannot look at them and works from the page's text instead, and no more pictures are sent to it.
A model that thinks before it answers is told how hard to think at each step, whichever provider it comes from, OpenAI's included:
| Step | How hard it thinks |
|---|---|
| A conversation about your code, and the first reading of the repository | Lightly, so an answer starts sooner |
| A review, and the check of each finding | Moderately |
| The plan, and writing the change | Hard |
Example. With an OpenAI model, "What does total() do?" is answered after a short think, while
the plan for "Make total() reject negative quantities" and the change itself get the model's full
attention. That depth can take longer than the model's own default did before AlbertCode asked for
it; whoever runs your AlbertCode service can set it lower for planning and writing. A model that
takes no such setting is simply asked without it.
Pace
| Pace | What runs | Use it for |
|---|---|---|
| thorough (default) | An independent security review and an independent quality review on every governed change | Changes others will rely on |
| fast | No reviews: about half the model calls | Quick solo iteration |
The checks, the contract and both approvals apply at either pace. Switch with /pace fast or /pace thorough, or set it on a profile with albertcode configure --pace fast.
Where your keys are kept
Keys are kept on your computer by your system's own protection (the macOS Keychain, Windows data protection or your Linux keyring), and are sent only to the provider they belong to. They are never given to the commands AlbertCode runs, and never shown to a model. See the security model.
| To | Terminal | VS Code |
|---|---|---|
| Remove one key | /disconnect |
Disconnect a Provider |
| Remove every key | /disconnect all |
Remove All Saved Keys |
In the browser, Settings… → Providers has the same; on the classic page, Models and keys in the ⋮ menu has it, plus the advanced settings.
Updating AlbertCode clears saved keys the first time the new version starts: run /connect again.
Profiles (the older way)
Before /connect, models were set up as named profiles. They still work, and suit scripts and shared
services:
albertcode configure --name local --provider local --base-url http://localhost:11434/v1 --model <model>
albertcode --profile localSee Terminal.
Privacy and your provider
To work on your code, AlbertCode sends the model the parts of your repository the task needs. That data goes to the provider you chose, under that provider's terms, and nowhere else. To keep your code entirely on your computer, use a local model. See PRIVACY.md.
From docs/models.md in huynvic/albertcode-swe-agent at a8cef99 (15 Oct 2026), shown unchanged except for links. AlbertCode SWE Agent documentation, CC BY 4.0. Latest on GitHub.