Skip to content

Providers & models

A provider is the service hosting AI models; a model is the specific one you talk to. Tau ships with several built-in providers and lets you add your own OpenAI-compatible endpoints (including local models).

Start Tau and use /login to connect a built-in provider:

Terminal window
tau
/login # choose a built-in provider
/login openai # save an OpenAI API key
/login openai-codex # authenticate a Codex/ChatGPT subscription via OAuth

Built-in providers include OpenAI, Anthropic, OpenAI Codex (subscription), OpenRouter, and Hugging Face. Credentials saved this way live in ~/.tau/credentials.json (private permissions).

Check what’s configured and how each provider will authenticate:

Terminal window
tau providers

Use these slash commands inside Tau:

/login [provider] # add or refresh a saved credential
/logout [provider] # remove a saved credential

Saved credentials take precedence over environment variables. /logout only edits saved credentials — it never touches your environment or providers.json.

  • /model — open the picker (lists models across configured providers; choosing one can switch the active provider too).
  • tau -m <model> or tau --provider <name> -m <model> — choose at launch.
  • Ctrl+P — cycle your scoped (favorite) models without opening the picker. Build the list with /scoped-models, or press Space on a model in the /model picker.

Any OpenAI-compatible endpoint works — including local servers like Ollama or llama.cpp. Register one with tau setup:

Terminal window
tau --provider local \
--base-url http://localhost:11434/v1 \
--api-key-env LOCAL_API_KEY \
--model qwen \
setup

This writes an entry to ~/.tau/providers.json and (by default) makes it the default provider. Run it with:

Terminal window
tau --provider local
tau --provider local "summarize this project" # TUI with an initial prompt
tau --provider local -p "summarize this project" # one-shot print mode

Provider entries support headers, timeout_seconds, max_retries, and max_retry_delay_seconds. For the full JSON shape (and thinking_levels for custom models), see Configuration.

For a given provider, Tau uses, in order: a stored credential in ~/.tau/credentials.json, then the environment variable named by the provider’s api_key_env. Use /login for built-in providers. Custom/local providers created with tau setup use their configured environment variable until Tau has a custom-provider credential form.