Skip to content

Providers

Provider configuration is managed in Settings → Providers. Open settings from the account menu in the sidebar footer or the settings sidebar.

The Providers page lists all providers. Providers you have connected are grouped under a Connected Providers heading, each marked with an API Key, Environment, or Connected badge.

Click any provider to open its full-page detail view, which shows the API key input, credit balance (where applicable), and model list. Use the Back button to return to the list.

  1. Open Settings → Providers.
  2. Click a provider in the list.
  3. On the provider page, paste your API key into the input field.
    • Click the eye icon to toggle show/hide.
  4. Check for the save confirmation. Tarsk saves the key when you edit the field.

Tarsk stores provider keys in its database. For providers with a key environment variable, Tarsk also writes the key to .env in the server’s working directory and sets it in the server process environment. Keep that file private.

ProviderKey URL
Anthropicconsole.anthropic.com/keys
OpenAIplatform.openai.com/api-keys
Googleaistudio.google.com
xAIconsole.x.ai
DeepSeekplatform.deepseek.com
OpenRouteropenrouter.ai/keys
AIHubMixaihubmix.com
Groqconsole.groq.com/keys

See Providers Overview for all providers and their key URLs.

Builder.io uses OAuth instead of an API key. Tarsk never shows or stores a static key for it.

  1. Open Settings → Providers and click Builder.io.
  2. Click Connect Builder.io. Tarsk opens Builder.io in your browser.
  3. Sign in and approve the request.
  4. Return to Tarsk. The provider shows Connected and its model list loads.

Tarsk registers itself with Builder, stores the OAuth grant encrypted in its database, and refreshes the access token before it expires. Click Reconnect if the grant is rejected, or Disconnect to revoke it.

If BUILDERIO_API_KEY is already set in the environment, Tarsk uses it and shows the connection as read-only.

Builder.io bills usage through your Builder account. Tarsk does not show a credit balance or per-model prices for this provider.

For OpenRouter and AIHubMix, the provider page shows your current account balance in the Models section header. Tarsk fetches it from the provider. If the balance reads $0.00 and you expect more, verify the key is correct.

After adding a key, the provider page lists all available models for that provider. Each model has a checkbox:

  • Checked — model appears in the model selector dropdown in every thread
  • Unchecked — model is hidden from the selector

The onboarding wizard preselects recommended models. Review those selections before clicking Finish, and enable or disable models here as needed.

Saving those selections also keeps the Default model alias in sync: if Default is unset, Tarsk points it at the first enabled model. If Default’s provider/model is unchecked, Tarsk moves Default to the first remaining enabled model.

Use the controls above the model list:

SortOrder
A–ZAlphabetical by model name
Sort by pricePrice per token, low to high
Coding intelligenceCoding intelligence score
Price/intelligenceIntelligence relative to price

In the chat input, select a model, then reopen the model selector. Each model row carries a brain icon. Hover the row to reveal it — the selected model’s row always shows it — and click it to expand the row:

  • Choose Off to turn reasoning off.
  • Choose an effort level to turn reasoning on at that level. Depending on the model, you can choose Minimal, Low, Medium, High, Extra high, or Max. You see the levels available for the selected model.

For models without supported reasoning levels, no brain icon appears. Hover over the model selector to check the selected model’s provider, model ID, and reasoning level, if supported.

Tarsk saves your choice for that provider/model pair across threads and projects. If you have no saved choice, Tarsk uses Medium when the model supports it, or the first supported level. You can override this setting for an alias under Model Aliases.

OpenRouter serves one model from several upstream endpoints that differ in price and throughput. For an OpenRouter model, the row’s rabbit icon chooses which endpoint the gateway should prefer:

ChoiceWhat Tarsk sendsWhat it means
Autonothing — the gateway’s own default routingOpenRouter balances across providers. Tarsk makes no promise about speed or price.
Cheapestsort by price, keep fallbacks, require supported paramsThe lowest-priced endpoint that still supports tools, caching, and reasoning. A cheap endpoint may be quantized and answer worse.
Fastestsort by throughput, keep fallbacks, require supported paramsThe highest-throughput endpoint at request time. Sorted routing can move a conversation to a different provider between turns, which starts its prompt cache cold.

The rabbit is filled whenever the choice is not Auto. Hover the model selector to read the current choice. Tarsk saves it for that provider/model pair, like reasoning, and a Remote Machine run uses the choice from the computer that started it.

When you first launch Tarsk, the Onboarding Wizard guides you through the minimum setup:

  1. Git Check — verifies git is on your PATH
  2. Provider Setup — select a provider and enter an API key
  3. Model Selection — enable the models you want to use

The wizard can be reset at any time by triple-clicking Settings in the settings sidebar.

You can configure as many providers as you like. Each thread has an independent model selector, so you can use Anthropic in one thread and Google in another simultaneously.

A common pattern:

  • Set a capable, tool-using model (e.g. Claude Sonnet 5, GPT-5.6) as the default for active coding threads
  • Set a fast, cheap model (e.g. Gemini 3.8 Flash, DeepSeek V4 Flash) for lighter tasks like summarisation or commit message generation

Tarsk includes a Local provider for connecting to local inference servers (e.g. LM Studio, Ollama-compatible endpoints). Configure the API URL in the provider settings or via the LOCAL_API_URL environment variable. The URL is resolved dynamically when you connect.

Tarsk-wide model aliases map role names to specific models. This lets you and the agent refer to models by purpose instead of by name across every project.

AliasUse case
defaultDefault model for new chats
fastQuick responses for lightweight tasks
localOn-device or local inference
cheapLower-cost models for routine work
smartMost capable models for complex tasks

Open settings, choose the General scope, then select Default Models. Choose an enabled provider/model pair for each alias and click Save. You must enable the target model in Providers first. Use Unspecified to clear an alias. Enabling or disabling models also updates Default when it is unset or no longer enabled.

Subagents also use these aliases when their AGENT.md specifies a model alias.

After you choose an alias’s target model, use the Reasoning column to configure reasoning. Models that expose no reasoning levels show Unsupported instead of a dropdown.

ChoiceEffect
Model defaultInherit the target model’s saved reasoning setting, or its default level if you have no saved setting.
OffTurn reasoning off for this alias.
An available effort levelUse that level for this alias instead of the model’s saved setting.

Click Save to apply alias changes across projects. With an alias-specific choice, you leave the target model’s saved setting and other aliases unchanged. Choose Model default to remove the override. If you change the alias’s target model, choose its reasoning setting again; you start with Model default for the new target.

Subagents that reference an alias in AGENT.md use its reasoning override. In Orchestrate mode, Tarsk uses the Smart override for the coordinator and the Cheap override for subagents. For regular chat, including a model chosen through the Default alias, use the chat model selector’s Reasoning control.

Completed chat messages show token usage and estimated cost in the message metadata. This helps you track spending per conversation.