# Roles

Source: https://zshot-cli.com/reference/llm_connections/roles/
Markdown: https://zshot-cli.com/reference/llm_connections/roles/index.md
Section: [Reference](https://zshot-cli.com/reference/) › [LLM Connections](https://zshot-cli.com/reference/llm_connections/)

States the parts a provider's models can take in a capture. Each provider's page lists its roles under the title.

| Role | Named by | Does |
| --- | --- | --- |
| [Formats](#formats) | [`--llm-format-model`](/reference/flags/document/llm-format-model) | Writes the captured page as LLM output |
| [Navigates](#navigates) | [`--navigator-type`](/reference/flags/navigator/navigator-type) | Drives [`--navigate`](/reference/flags/navigator/navigate) |
| [Writes](#writes) | `writer=true` on a navigator | Writes the text a navigator types |

## Formats

A formatter writes [`llm_text`](/reference/formats/llm_text) and [`llm_json`](/reference/formats/llm_json) from the rendered page. A formatter given with `--navigate` and no `--navigator-type` also navigates, and with `escalate=true` it joins the navigators.

## Navigates

A navigator reads the page each step and takes one action. A chat model words its own decisions. A decision model, such as [`typesafe`](/reference/llm_connections/typesafe), chooses each one from a list: the action, the element, a credential, a file or an option. Repeat `--navigator-type` to add [navigators](/reference/navigator/navigators) to escalate to.

## Writes

A provider that writes produces free text: a search, a message, a form field no credential fills. A navigator that writes types its own text. One that doesn't types only [`--navigator-credential`](/reference/flags/navigator/navigator-credential) and [`--navigator-data`](/reference/flags/navigator/navigator-data) values, unless another navigator is its writer.

`writer=true` makes a navigator the session's writer: the acting navigator still chooses where to type, and the writer is asked for the words. A provider without this role as the writer, or as `--llm-format-model`, exits with code 3.

## Example

A decision model navigates, a chat model writes for it, and a formatter writes the output:

**CLI**

```sh
zshot -t llm_text --navigate "Search the docs for WARC" \
  --navigator-type typesafe \
  --navigator-type "anthropic://?name=writer&writer=true&escalate=false" \
  --llm-format-model anthropic \
  --llm-format-prompt "List the pages the search found." \
  -f found.txt https://zshot-cli.com/
```

## Related

Flags:

- [`--llm-format-model`](https://zshot-cli.com/reference/flags/document/llm-format-model/)
- [`--navigator-type`](https://zshot-cli.com/reference/flags/navigator/navigator-type/)
- [`--navigate`](https://zshot-cli.com/reference/flags/navigator/navigate/)

Topics:

- [Navigators](https://zshot-cli.com/reference/navigator/navigators/)
- [LLM Formatting](https://zshot-cli.com/reference/llm_formatting/)
- [Connection String Options](https://zshot-cli.com/reference/llm_connections/options/) — Navigator options

## Navigation

- [Examples](https://zshot-cli.com/examples/)
- [Download](https://zshot-cli.com/download/)
- [Purchase](https://zshot-cli.com/purchase/)
- [Reference](https://zshot-cli.com/reference/)
  - [Formats](https://zshot-cli.com/reference/formats/)
  - [Flags](https://zshot-cli.com/reference/flags/)
  - [Agents](https://zshot-cli.com/reference/agents/)
  - [Configuration](https://zshot-cli.com/reference/configuration/)
  - [Crawling](https://zshot-cli.com/reference/crawling/)
  - [Docker](https://zshot-cli.com/reference/docker/)
  - [Exit Codes](https://zshot-cli.com/reference/exit_codes/)
  - [Linux](https://zshot-cli.com/reference/linux/)
  - [LLM Connections](https://zshot-cli.com/reference/llm_connections/)
    - [Connection String Options](https://zshot-cli.com/reference/llm_connections/options/)
    - **Roles**
    - [Anthropic](https://zshot-cli.com/reference/llm_connections/anthropic/)
    - [OpenAI](https://zshot-cli.com/reference/llm_connections/openai/)
    - [Google](https://zshot-cli.com/reference/llm_connections/google/)
    - [Ollama](https://zshot-cli.com/reference/llm_connections/ollama/)
    - [Mistral](https://zshot-cli.com/reference/llm_connections/mistral/)
    - [DeepSeek](https://zshot-cli.com/reference/llm_connections/deepseek/)
    - [Mercury](https://zshot-cli.com/reference/llm_connections/mercury/)
    - [Groq](https://zshot-cli.com/reference/llm_connections/groq/)
    - [HuggingFace](https://zshot-cli.com/reference/llm_connections/huggingface/)
    - [TypeSafe](https://zshot-cli.com/reference/llm_connections/typesafe/)
    - [Cloudflare](https://zshot-cli.com/reference/llm_connections/cloudflare/)
    - [OpenRouter](https://zshot-cli.com/reference/llm_connections/openrouter/)
    - [stdio](https://zshot-cli.com/reference/llm_connections/stdio/)
  - [LLM Formatting](https://zshot-cli.com/reference/llm_formatting/)
  - [Local Inputs](https://zshot-cli.com/reference/inputs/)
  - [Navigator](https://zshot-cli.com/reference/navigator/)
  - [Security](https://zshot-cli.com/reference/security/)
  - [Server](https://zshot-cli.com/reference/server/)
  - [Shell completions](https://zshot-cli.com/reference/shell_completions/)
  - [Storage](https://zshot-cli.com/reference/storage/)
  - [Timeouts](https://zshot-cli.com/reference/timeouts/)
  - [Web Bot Auth](https://zshot-cli.com/reference/web_bot_auth/)
- [Support](https://zshot-cli.com/support/)
- [Changelog](https://zshot-cli.com/changelog/)

Site index: https://zshot-cli.com/llms.txt

