---
title: profiles | CodeWeaver Docs
description: API reference for codeweaver.providers.config.profiles
url: "https://docs.knitli.com/api/providers/config/profiles"
type: static
generatedAt: "2026-04-17T17:21:08.843Z"
---

# profiles
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/providers/config/profiles.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F&text=profiles)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F&text=profiles)[Share on Bluesky](https://bsky.app/intent/compose?text=profiles%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F&title=profiles)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F&t=profiles)[Share on Email](mailto:?subject=profiles&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F)[Share on WhatsApp](https://wa.me/?text=profiles%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fprofiles%2F&text=profiles)
# `codeweaver.providers.config.profiles`
[Section titled “codeweaver.providers.config.profiles”](#codeweaverprovidersconfigprofiles)
Prebuilt settings profiles for CodeWeaver quick setup.

A few important things to note about profiles (or any provider settings):

 - Most providers are *not* available with the default installation of CodeWeaver. CodeWeaver has multiple install paths that include different sets of providers. The `recommended` install flag (`pip install code-weaver[recommended]`) includes *most* of the providers available in CodeWeaver, but not all. The `full` or `full-gpu` install flags (`pip install code-weaver[full]` or `pip install code-weaver[full-gpu]`) include *all* providers, and all optional dependencies, such as auth providers and GPU support (for the gpu flag). The recommended flag gives you access to:
 - All current vector, agent and data providers
 - All embedding and reranking providers except for Sentence Transformers (because these install paths are aligned with pydantic-ai’s default dependencies, and Sentence Transformers is not a default dependency of pydantic-ai).
 - A-la-Carte installations: You can also use the `required-core` install flag (`pip install code-weaver[required-core]`) to install only the core dependencies of CodeWeaver, and then add individual providers using their own install flags, like: `pip install code-weaver[required-core,openai,qdrant]`

## Class: `ProviderConfigProfile`
[Section titled “Class: ProviderConfigProfile”](#class-providerconfigprofile)
Dataclass wrapper for provider settings profiles.

This is a frozen dataclass for use with BaseDataclassEnum.

## Class: `ProviderProfile`
[Section titled “Class: ProviderProfile”](#class-providerprofile)
Prebuilt provider settings profiles for quick setup.

### Method: `as_provider_settings`
[Section titled “Method: as_provider_settings”](#method-as_provider_settings)

**

```
as_provider_settings()
```

Get the provider settings as a dictionary.

## Class: `VersionedProfile`
[Section titled “Class: VersionedProfile”](#class-versionedprofile)
Profile configuration with version tracking for compatibility management.

Tracks the CodeWeaver version associated with each profile configuration, enabling semantic versioning-based compatibility checks between profile versions and collection metadata versions.

Version Compatibility:

 - Major version must match for compatibility (e.g., 0.x.x with 0.y.z)
 - Minor and patch versions can differ (backward compatible)
 - Changelog tracks profile evolution across versions

Integration with Collections: When a collection is created, it stores:

 - profile_name: The name of this profile
 - profile_version: The CodeWeaver version when profile was applied
 - This enables compatibility validation on collection reuse

Attributes: name: Unique identifier for the profile (e.g., “recommended”, “quickstart”) version: CodeWeaver version string following semantic versioning (e.g., “0.1.0a6”) embedding_config: The embedding provider configuration for this profile changelog: Historical record of profile changes across versions

### Method: `get_changelog_for_version`
[Section titled “Method: get_changelog_for_version”](#method-get_changelog_for_version)

**

```
get_changelog_for_version()
```

Get changelog entries relevant to upgrading to target version.

Filters changelog entries that apply when migrating from this profile’s version to the target version. Useful for displaying migration guidance.

Args: target_version: Version string to migrate to

Returns: List of relevant changelog entries, newest first

### Method: `is_compatible_with`
[Section titled “Method: is_compatible_with”](#method-is_compatible_with)

**

```
is_compatible_with()
```

Check if profile version is compatible with collection version.

Uses semantic versioning rules where major versions must match for compatibility. Minor and patch version differences are acceptable as they represent backward-compatible changes.

Args: profile_version: Version string of the profile (e.g., “0.1.0a6”) collection_version: Version string from collection metadata

Returns: True if versions are compatible (same major version), False otherwise

Examples: >>> VersionedProfile.is_compatible_with(“0.1.0”, “0.2.5”) True # Same major version (0) >>> VersionedProfile.is_compatible_with(“0.1.0”, “1.0.0”) False # Different major versions >>> VersionedProfile.is_compatible_with(“0.1.0a6”, “0.1.0”) True # Pre-release compatible with same major.minor

### Method: `validate_against_collection`
[Section titled “Method: validate_against_collection”](#method-validate_against_collection)

**

```
validate_against_collection()
```

Validate this profile can be used with an existing collection.

Checks both profile name matching and version compatibility to determine if this profile can safely be used with a collection created under different profile/version settings.

Args: collection_profile_name: Profile name stored in collection metadata collection_profile_version: Profile version stored in collection metadata

Returns: Tuple of (is_valid, error_message). error_message is None if valid.

Examples: >>> profile = VersionedProfile(“recommended”, “0.1.0”, config, []) >>> profile.validate_against_collection(“recommended”, “0.1.5”) (True, None) >>> profile.validate_against_collection(“quickstart”, “0.1.0”) (False, “Profile name mismatch: …”) >>> profile.validate_against_collection(“recommended”, “1.0.0”) (False, “Incompatible versions: …”)