Provider Auto-Updates
By default, Crush automatically checks for the latest provider and model information from Catwalk, Crush’s open-source provider database. This ensures you always have:- The latest model offerings
- Up-to-date pricing information
- New provider support
- Correct model metadata
Disabling Provider Auto-Updates
There are two ways to disable automatic provider updates:Method 1: Configuration File
Add the following to yourcrush.json configuration:
- Local project configuration (
.crush.jsonorcrush.json) - Global user configuration (
~/.config/crush/crush.json)
Project-level configuration takes precedence over global configuration.
Method 2: Environment Variable
Set theCRUSH_DISABLE_PROVIDER_AUTO_UPDATE environment variable:
Permanent Configuration
To make the environment variable permanent:Manual Provider Updates
Even with auto-updates disabled, you can manually update provider information using thecrush update-providers command.
Update from Remote (Catwalk)
Update providers from the default Catwalk repository:Update from Custom URL
Update providers from a custom base URL:- You have an internal mirror of Catwalk
- Your organization maintains a custom provider database
- You need to use a proxy or gateway
Update from Local File
Update providers from a local JSON file:- Download the provider data on a machine with internet access
- Transfer the file to the air-gapped environment
- Manually update Crush
Reset to Embedded Version
Reset providers to the version embedded in Crush at build time:- You want a known, stable provider configuration
- Custom updates caused issues
- You’re reverting to a clean state
The embedded version is the provider snapshot from when your Crush binary was built and may be outdated.
Local Provider Files
When you update providers manually, Crush stores the provider data locally:Unix/Linux/macOS
Windows
- All provider configurations
- Model metadata (context windows, pricing, capabilities)
- Provider API endpoints
Embedded Provider Version
Crush includes a provider snapshot embedded at build time. This ensures basic functionality even without any provider updates:- Always available: No network required
- Stable: Doesn’t change unless you update Crush
- May be outdated: Doesn’t include recent providers or model updates
Restricted Internet Access Considerations
Minimal Network Requirements
If you disable provider auto-updates, Crush requires network access only for:- API calls to LLM providers (e.g., OpenAI, Anthropic, etc.)
- MCP server communication (if using HTTP/SSE-based MCP servers)
- Access to Catwalk (provider database)
- Telemetry endpoints (if metrics are disabled)
- GitHub or other external services
Firewall Configuration
For air-gapped environments, allow outbound connections to:- Your LLM provider’s API endpoint (e.g.,
api.anthropic.com,api.openai.com) - Any custom provider endpoints you’ve configured
- Local model servers (e.g., Ollama on
localhost:11434)
Proxy Configuration
If using a proxy, set standard environment variables:Working Completely Offline
To use Crush in a completely offline environment:-
Disable provider auto-updates:
-
Use local models (Ollama or LM Studio):
-
Disable metrics collection:
Or:
Updating Provider Data in Air-Gapped Environments
Workflow
-
On a machine with internet access:
- Transfer the file to your air-gapped environment (USB drive, internal network, etc.)
-
On the air-gapped machine:
Troubleshooting
Auto-Updates Still Happening
If Crush still attempts to update providers:- Verify
disable_provider_auto_updateis set totruein your configuration - Check that
CRUSH_DISABLE_PROVIDER_AUTO_UPDATEenvironment variable is set - Ensure you’re using the correct configuration file (check precedence)
- Restart Crush to reload configuration
Cannot Update Providers Manually
If manual updates fail:- Check file permissions on the providers file location
- Verify the provider JSON file is valid JSON
- Ensure you have write access to
~/.local/share/crush/(Unix) or%LOCALAPPDATA%\crush\(Windows)
Provider Data Seems Outdated
If your providers are outdated:- Run
crush update-providersto manually update - Verify internet access (if updating from remote)
- Check if you’re using the embedded version (consider updating)
No Providers Available
If Crush shows no providers:- Reset to embedded version:
crush update-providers embedded - Check if provider file exists and is readable
- Try updating from a known-good provider JSON file
Best Practices
- Document your configuration: Keep notes on disabled features and manual update procedures
- Test in isolation: Verify Crush works in your restricted environment before deployment
- Plan update cycles: Establish a schedule for manual provider updates
- Use local models when possible: Reduces external dependencies
- Keep Crush updated: Newer versions may include better embedded provider data
- Monitor provider changes: Subscribe to Catwalk updates to know when manual updates are needed
Security Considerations
Provider Data Integrity
When manually updating providers:- Verify source authenticity: Only download from trusted sources
- Check file integrity: Use checksums when available
- Review changes: Inspect provider data before applying updates
Credential Management
In restricted environments:- Use environment variables for API keys
- Restrict config file permissions:
chmod 600 crush.json - Audit access logs: Monitor who accesses Crush configuration
- Rotate credentials: Especially after personnel changes
Command Reference
Next Steps
Local Models
Set up local models for completely offline operation
Custom Providers
Configure custom API providers