On this page
Choose a provider and model
Haarness works with most model providers. Connect at least one, then pick a model in the terminal UI, Desktop or on the command line. This page helps you choose; the pages after it show how.
Pick a way to connect
| You have | Connect with | Guide |
|---|---|---|
| ChatGPT Plus or Pro, GitHub Copilot or SuperGrok | Sign in | Sign-ins and keys |
| A key from OpenAI, Anthropic, Google or another provider | API key | Sign-ins and keys |
| Azure OpenAI, Google Vertex AI or Amazon Bedrock | Your cloud credentials | Cloud platforms |
| Ollama or LM Studio running locally | Nothing; found automatically | Local and custom |
| Another model server or gateway | A custom endpoint | Local and custom |
| A self-hosted Haarness Router | Its address | Haarness Router |
| No provider account | A Haarness Cloud account | Cloud models |
You can connect several at once and switch between their models at any time.
Connect from the app
- Terminal UI: type
/connectand pick a provider. - Desktop: open Settings → Providers → Connect a provider.
- Command line:
haarness auth login PROVIDER.
Each one either opens a sign-in in your browser or asks for a key. When it worked, the provider shows as connected and its models appear in the model picker.
A key you paste in the terminal UI or Desktop is checked with the provider before it is saved, so a mistyped key is caught at once instead of in your first chat.
Use a specific model
Every model has an id of the form provider/model. List the ones you can use:
haarness models # every model you can use
haarness models anthropic # one provider
haarness providers # which providers are connectedThen choose one:
| Where | How |
|---|---|
| Terminal UI | /models, then pick |
| Desktop | The model picker in the composer |
| One prompt | haarness run -m anthropic/claude-sonnet-4-6 "…" |
| Default for new chats | "model": "anthropic/claude-sonnet-4-6" in haarness.json |
See Configuration for where haarness.json lives.
Which models do I see?
The list comes from the provider, using your credentials, so it shows what your key or subscription can actually run. With a ChatGPT sign-in, for example, you see the models your plan includes. For most providers, new models appear without a Haarness update.
- Refresh it: the list is fetched again at most every five minutes while you use Haarness.
/modelsin the terminal UI and Refresh models in Desktop's provider settings refresh it at once. - Before you connect, each provider shows a short built-in list so you can see what it offers.
- With a ChatGPT sign-in, a model your plan does not include fails before anything is sent, and the error lists the models you can use instead.
- Provider errors are shown with the provider's own message, not just an HTTP status.
What every request contains
Each request carries the chat so far, the tools the agent may use, and a short description of the
environment: the provider and model id, the working directory, whether it is a Git repository,
the operating system and CPU type, and the date the chat started. Your global and project
AGENTS.md instructions are included, each marked with where it came from.
What else leaves your computer, and what never does, is in Data and storage.