> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gourmand.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Apply Role

> Apply model role

When editing code, Chat and Edit model output often doesn't clearly align with existing code. A model with the `apply` role is used to generate a more precise diff to apply changes to a file.

## Recommended Apply models

<Info>
  For the latest Apply model recommendations, see our [comprehensive model recommendations](/customization/models#recommended-models).
</Info>

We recommend [Morph Fast Apply](https://morphllm.com) or [Relace's Instant Apply model](https://hub.gourmand.dev/relace/instant-apply) for the fastest Apply experience. You can sign up for Morph's free tier [here](https://morphllm.com/dashboard) or get a Relace API key [here](https://app.relace.ai/settings/api-keys).

However, most Chat models can also be used for applying code changes. We recommend smaller/cheaper models for the task, such as Claude 3.5 Haiku.

<Info>
  Explore all apply models in [the
  Hub](https://hub.gourmand.dev/explore/models?roles=apply)
</Info>

## Prompt templating

You can customize the prompt template used for applying code changes by setting the `promptTemplates.apply` property in your model configuration. Gobi uses [Handlebars syntax](https://handlebarsjs.com/guide/) for templating.

Available variables for the apply template:

* `{{{original_code}}}` - The original code before changes
* `{{{new_code}}}` - The new code after changes

Example:

```yaml theme={null}
models:
  - name: My Custom Apply Template
    provider: anthropic
    model: claude-3-5-sonnet-latest
    promptTemplates:
      apply: |
        Original: {{{original_code}}}
        New: {{{new_code}}}

        Please generate the final code without any markers or explanations.
```
