tauτ

Configuration

TAU can be configured via config files, environment variables, and project-specific settings.

Configuration Priority

Settings are loaded in order (later overrides earlier):

  1. 1. Defaults — Built-in defaults
  2. 2. Global config~/.config/tau/config.toml
  3. 3. Project config.tau/config.toml
  4. 4. Environment variablesTAU_*
  5. 5. CLI arguments--model, etc.

Global Config

Location: ~/.config/tau/config.toml

# General settings
[general]
log_level = "info"           # trace, debug, info, warn, error
telemetry_enabled = false

# Default provider and model
[providers]
default_provider = "anthropic"
default_model = "claude-sonnet-4-5"

# Provider-specific settings
[providers.anthropic]
api_key_source = "keyring"   # keyring, env, or inline
# api_key = "sk-ant-xxx"     # if api_key_source = "inline"

[providers.openai]
api_key_source = "env"

[providers.ollama]
host = "http://localhost:11434"

# Embeddings configuration
[embeddings]
provider = "mlx"             # mlx, ollama, google, openai
fallback_provider = "google"
fallback_model = "text-embedding-004"
offline = false
auto_download = true

# MLX settings (macOS only)
[mlx]
model = "nomic-ai/nomic-embed-text-v1.5-GGUF"
model_base_url = "https://huggingface.co"
models_dir = "~/.local/share/tau/mlx_models"
warmup = true

# Indexing settings
[indexing]
enabled = true
watch = true
debounce_ms = 500
max_file_size_mb = 10
vector_search_enabled = true

# TUI settings
[tui]
theme = "windsurf"           # windsurf, monokini, light
tab_size = 4
show_line_numbers = true

Project Config

Location: .tau/config.toml (per-project)

# Project name (optional)
[general]
name = "MyProject"

# Override default model for this project
[providers]
default_model = "claude-opus-4-5"

# Indexing exclusions
[indexing]
ignore_patterns = [
    "target/",
    "node_modules/",
    "*.test.ts",
    "**/__pycache__/",
    "dist/",
    "build/",
]

# Tantivy index settings
[indexing.tantivy]
heap_size_mb = 50

# LanceDB vector index settings
[indexing.lancedb]
embedding_dims = 768
ivf_partitions = 256
pq_sub_vectors = 96

# Hooks (run after specific events)
[hooks]
file_edit = ["./scripts/format.sh"]     # After file edits
session_start = ["./scripts/setup.sh"]  # On session start

Environment Variables

VariableDefaultDescription
TAU_DATA_DIR~/.local/share/tauData storage directory
TAU_CONFIG_DIR~/.config/tauConfig directory
TAU_LOGinfoLog level
TAU_MODEL-Default model (provider/model)
TAU_TOOL_SELECTIONdynamicdynamic, all, or none
TAU_MLX_WARMUPtruePre-load MLX model
TAU_MLX_AUTO_DOWNLOADtrueAuto-download missing models
TAU_EMBEDDINGS_OFFLINEfalseDisable embeddings
TAU_INDEX_ENABLEDtrueEnable project indexing
TAU_RLM_CONTEXT_THRESHOLD50000Tokens for RLM activation
TAU_RLM_MAX_SUBCALLS50Max RLM subcalls

API Keys

# Provider API keys
export ANTHROPIC_API_KEY=sk-ant-xxx
export OPENAI_API_KEY=sk-xxx
export GOOGLE_API_KEY=xxx
export GROQ_API_KEY=xxx
export DEEPSEEK_API_KEY=xxx

# Enterprise
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx
export AWS_REGION=us-east-1
export AZURE_OPENAI_API_KEY=xxx

# Local
export OLLAMA_HOST=http://localhost:11434

# Web search
export BRAVE_API_KEY=xxx

TAU.md (Project Rules)

Create a TAU.md file in your project root to define agent behavior:

# TAU.md - Project Instructions

## Project Overview
This is a Rust backend service using Axum framework.

## Coding Standards
- Use rustfmt for formatting
- Run clippy before commits
- Write tests for all public functions

## Architecture
- /src/handlers - HTTP handlers
- /src/services - Business logic
- /src/models - Data models

## Do Not
- Modify .github/workflows without permission
- Use unwrap() in production code
- Skip error handling

Also compatible with AGENTS.md and CLAUDE.md

Secure Key Storage

Store API keys securely in system keyring:

# Store key in keyring
tau auth set anthropic

# List stored keys
tau auth list

# Remove key
tau auth remove anthropic

# In config, use keyring source:
[providers.anthropic]
api_key_source = "keyring"