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

# AskModel

> A free-form chat-completions LLM (optionally vision-capable) — the JS analogue of the primitive.

A free-form chat-completions LLM (optionally vision-capable) — the JS
analogue of the `ask` primitive.

Given a `prompt`, optional accessibility/structural `text`, and zero or
more `images`, \[`AskModel.ask`] returns the model's response as a plain
string. The wire format is OpenAI-compatible chat completions, so any
provider config that points at such an endpoint works.

## Constructor

```typescript
AskModel(): AskModel
```

### Returns

`AskModel`

## Properties

<ResponseField name={"name"} type={"string"} required>
  The wire-level model identifier sent in the request body.
</ResponseField>

## Methods

### ask()

```typescript
ask(prompt: string, text?: null | string, images?: null | Image[]): string
```

Ask the model a question, optionally grounded in accessibility text
and/or images.

* `prompt`: the question or task to answer.
* `text`: optional accessibility-tree (or any) text included as
  structural context. Pass `null` / omit to skip.
* `images`: zero or more images to attach. Each is encoded as a
  base64 data URL and sent as an `image_url` chat content part. Pass
  `null` / omit for none.

Returns the trimmed assistant response on success.

#### Parameters

<ResponseField name={"prompt"} type={"string"} required />

<ResponseField name={"text"} type={"null | string"} />

<ResponseField name={"images"} type={"null | Image[]"} />

#### Returns

`string`

### availableAliases()

```typescript
availableAliases(): string[]
```

Every LLM model alias accepted by `byAlias` on this machine,
deduplicated and sorted alphabetically. Use to discover what aliases
the loaded config (bundled defaults plus any user provider files)
advertises.

#### Returns

`string[]`

### byAlias()

```typescript
byAlias(alias: string): AskModel
```

Resolve a model alias against the loaded config (e.g.
`"openrouter_gpt_4o_mini"` from the bundled `openrouter` provider, or
any alias declared by a user provider). Throws if the alias is unknown.

#### Parameters

<ResponseField name={"alias"} type={"string"} required />

#### Returns

`AskModel`

### default()

```typescript
default(): AskModel
```

First LLM model advertised by the first LLM-capable provider in the
loaded configuration whose credentials are currently available.
Throws if no provider in the loaded config advertises an LLM service.

#### Returns

`AskModel`
