# Model Aliases

> Give friendly names to models

You can define **model aliases** in your project to give friendly names to models and abstract away from a particular model version/tag.

So instead of hard-coding a model type,

```js
script({
    model: "openai:gpt-4o",
})
```

You can use/define an alias like `large`.

```js
script({
    model: "large",
})
```

Model aliases can be defined as environment variables (through the `.env` file), in a configuration file, through the [cli](/genaiscript/reference/cli/run) or in the `script` function.

This `.env` file defines a `llama32` alias for the `ollama:llama3.2:1b` model.

.env

```txt
GENAISCRIPT_MODEL_LLAMA32="ollama:llama3.2:1b"
```

You can then use the `llama32` alias in your scripts.

```js
script({
    model: "llama32",
})
```

## Defining aliases

[Section titled “Defining aliases”](#defining-aliases)

The following configuration are support in order importance (last one wins):

* [configuration file](/genaiscript/reference/configuration-files) with the `modelAliases` field

genaiscript.config.json

```json
{
    "modelAliases": {
        "llama32": "ollama:llama3.2:1b"
    }
}
```

* environment variables with keys of the pattern `GENAISCRIPT_MODEL_ALIAS=...`
* [cli](/genaiscript/reference/cli/run) with the `--model-alias` flag

```sh
genaiscript run --model-alias llama32=ollama:llama3.2:1b
```

* in the `script`function

```js
script({
    model: "llama32",
    modelAliases: {
        llama32: "ollama:llama3.2:1b",
    },
})
```

## Alias of aliases

[Section titled “Alias of aliases”](#alias-of-aliases)

An model alias can reference another alias as long as cycles are not created.

genaiscript.config.json

```json
{
    "modelAliases": {
        "llama32": "ollama:llama3.2:1b",
        "llama": "llama32"
    }
}
```

## Builtin aliases

[Section titled “Builtin aliases”](#builtin-aliases)

By default, GenAIScript supports the following model aliases, and various candidates in different LLM providers.

* `large`: `gpt-4o like` model
* `small`: `gpt-4o-mini` model or similar. A smaller, cheaper faster model
* `vision`: `gpt-4o-mini`. A model that can analyze images
* `reasoning`: `o1` or `o1-preview`.
* `reasoning_small`: `o1-mini`.

The following aliases are also set so that you can override LLMs used by GenAIScript itself.

* `agent`: `large`. Model used by the Agent LLM.
* `memory`: `small`. Model used by the agent short term memory.

The default aliases for a given provider can be loaded using the `provider` option in the [cli](/genaiscript/reference/cli/run).

```sh
genaiscript run --provider anthropic
```