Skip to main content
Crush supports multiple LLM providers including Anthropic, OpenAI, Google Gemini, AWS Bedrock, Azure, and many more. You can configure providers using environment variables or configuration files.

Quick Start with Environment Variables

The quickest way to get started is to set an API key for your preferred provider. Crush recognizes these environment variables:
Just set an environment variable and run Crush. If no API key is found, Crush will prompt you to enter one.

Custom Provider Configuration

For advanced scenarios, you can configure custom providers in your crush.json file.

OpenAI-Compatible Providers

Crush supports two OpenAI provider types:
  • openai - For proxying/routing requests through OpenAI
  • openai-compat - For non-OpenAI providers with OpenAI-compatible APIs
Here’s an example configuration for Deepseek:

Anthropic-Compatible Providers

For providers that use the Anthropic API format:

Local Models

You can run Crush with local models using OpenAI-compatible servers.

Ollama

LM Studio

Cloud Providers

Amazon Bedrock

Crush supports running Anthropic models through Bedrock (caching disabled):
  1. Configure AWS credentials: aws configure
  2. Set AWS_REGION or AWS_DEFAULT_REGION environment variable
  3. (Optional) Use a specific profile: AWS_PROFILE=myprofile crush
  4. Alternative: Set AWS_BEARER_TOKEN_BEDROCK instead of running aws configure

Vertex AI Platform

Vertex AI appears when VERTEXAI_PROJECT and VERTEXAI_LOCATION are set:
Configure specific models:

Model Configuration Options

When defining models in your provider configuration, you can specify:
  • id (required) - Model identifier used by the provider API
  • name (required) - Human-readable model name
  • cost_per_1m_in - Cost per 1M input tokens
  • cost_per_1m_out - Cost per 1M output tokens
  • cost_per_1m_in_cached - Cost per 1M cached input tokens
  • cost_per_1m_out_cached - Cost per 1M cached output tokens
  • context_window - Maximum context window size
  • default_max_tokens - Default maximum tokens for responses
  • can_reason - Whether the model supports extended reasoning
  • supports_attachments - Whether the model supports file attachments

Provider Auto-Updates

By default, Crush automatically updates the provider database from Catwalk, the open source Crush provider database.

Disabling Auto-Updates

For air-gapped or restricted environments:
Or use the environment variable:

Manual Updates

Update providers manually:

Environment Variable Expansion

In configuration files, you can reference environment variables using the $VARIABLE_NAME syntax:
Crush automatically expands these variables when loading the configuration.

Next Steps

Model Selection

Learn how to list and select models

Permissions

Configure tool permissions