Skip to content

Models and roles

A role is a job the system needs done — hold a conversation, review code, speak a sentence. A provider is who does it. The two are wired together in config/roles.yaml, so swapping the model behind any role is a config edit, not a code change: nothing above the role notices.

A role either names its own model or points at a shared chain — a list written once and used by several roles, so moving all of them is one edit rather than many.

These are the shipped defaults. What you can change lives in a config file you own once TESSERACT is installed, so your copy may differ, and should, once you tune it.

RoleShips pointing atFalls back toVia
audio_transcribelocal.whisper.local_whisper—chain_6
auditorcli.codex.gpt6_astra—chain_4
channel_visionapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2
chat_brainapi.openai.gpt6_lunaapi.google.gemini_38_flash, api.openai.gpt61_solchain_1
claude_clicli.claude.opus_55—chain_3
codercli.claude.opus_55—chain_3
codex_clicli.codex.gpt6_astra—chain_4
consolidateapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2
image_generatorapi.google.gemini_31_flash_image—chain_5
observer_agentapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2
omniapi.jev.jev_1_13_0api.openai.gpt6_luna, api.google.gemini_38_flashchain_7
outbound_writerapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2
playbook_extractapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2
provider_checkapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2
scheduled_taskapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2
subagents_defaultapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2
watchmanapi.google.gemini_38_flashapi.openai.gpt6_lunachain_2

Refs read <tier>.<provider>.<model>. The tiers are api (billed per token), cli (covered by a subscription, free at the point of use) and local (runs on your machine).

TESSERACT v1.1.3 — documentation built 9 Oct 2026