Model Selection logo

Model Selection

CommunityPopular
bradygaster
model-selection

Determines which LLM model to use for each agent spawn

Overview

Publisherbradygaster
Repositorysquad
Skill namemodel-selection
Stars
3.3K
Forks
506
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by bradygaster on GitHub. Read the source before you install it.

Installation

Install the Model Selection AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/bradygaster/squad/tree/dev/packages/squad-cli/templates/skills/model-selection
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bradygaster/squad.git /tmp/squad
mkdir -p .claude/skills
cp -r /tmp/squad/packages/squad-cli/templates/skills/model-selection .claude/skills/model-selection
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Model Selection in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Model Selection on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Model Selection is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Model Selection

Determines which LLM model to use for each agent spawn.

SCOPE

✅ THIS SKILL PRODUCES:

  • A resolved model parameter for every task tool call
  • Persistent model preferences in .squad/config.json
  • Spawn acknowledgments that include the resolved model

❌ THIS SKILL DOES NOT PRODUCE:

  • Code, tests, or documentation
  • Model performance benchmarks
  • Cost reports or billing artifacts

Context

Squad supports a curated model catalog across three tiers (premium, standard, fast). The coordinator must select the right model for each agent spawn. Users can set persistent preferences that survive across sessions.

5-Layer Model Resolution Hierarchy

Resolution is first-match-wins — the highest layer with a value wins.

LayerNameSourcePersistence
0aPer-Agent Config.squad/config.json → agentModelOverrides.{name}Persistent (survives sessions)
0bGlobal Config.squad/config.json → defaultModelPersistent (survives sessions)
1Session DirectiveUser said "use X" in current sessionSession-only
2Charter PreferenceAgent's charter.md → ## Model sectionPersistent (in charter)
3Task-Aware AutoCode/prompts → Terra, docs → Luna, visual → SolComputed per-spawn
4Defaultgpt-5.6-lunaHardcoded fallback

Key principle: Layer 0 (persistent config) beats everything. If the user said "always use opus" and it was saved to config.json, every agent gets opus regardless of role or task type. This is intentional — the user explicitly chose quality over cost.

AGENT WORKFLOW

On Session Start

  1. READ .squad/config.json
  2. CHECK for defaultModel field — if present, this is the Layer 0 override for all spawns
  3. CHECK for agentModelOverrides field — if present, these are per-agent Layer 0a overrides
  4. STORE both values in session context for the duration

On Every Agent Spawn

  1. CHECK Layer 0a: Is there an agentModelOverrides.{agentName} in config.json? → Use it.
  2. CHECK Layer 0b: Is there a defaultModel in config.json? → Use it.
  3. CHECK Layer 1: Did the user give a session directive? → Use it.
  4. CHECK Layer 2: Does the agent's charter have a ## Model section? → Use it.
  5. CHECK Layer 3: Determine task type:
  • Code (implementation, tests, refactoring, bug fixes) → gpt-5.6-terra
  • Prompts, agent designs → gpt-5.6-terra
  • Visual/design with image analysis → gpt-5.6-sol
  • Non-code (docs, planning, triage, changelogs) → gpt-5.6-luna
  1. FALLBACK Layer 4: gpt-5.6-luna
  2. INCLUDE model in spawn acknowledgment: 🔧 {Name} ({resolved_model}) — {task}

When User Sets a Preference

Trigger phrases: "always use X", "use X for everything", "switch to X", "default to X"

  1. VALIDATE the model ID against the catalog
  2. WRITE defaultModel to .squad/config.json (merge, don't overwrite)
  3. ACKNOWLEDGE: ✅ Model preference saved: {model} — all future sessions will use this until changed.

Per-agent trigger: "use X for {agent}"

  1. VALIDATE model ID
  2. WRITE to agentModelOverrides.{agent} in .squad/config.json
  3. ACKNOWLEDGE: ✅ {Agent} will always use {model} — saved to config.

When User Clears a Preference

Trigger phrases: "switch back to automatic", "clear model preference", "use default models"

  1. REMOVE defaultModel from .squad/config.json
  2. ACKNOWLEDGE: ✅ Model preference cleared — returning to automatic selection.

STOP

After resolving the model and including it in the spawn template, this skill is done. Do NOT:

  • Generate model comparison reports
  • Run benchmarks or speed tests
  • Create new config files (only modify existing .squad/config.json)
  • Change the model after spawn (fallback chains handle runtime failures)

Config Schema

.squad/config.json model-related fields:

json
{
  "version": 1,
  "defaultModel": "claude-opus-4.6",
  "agentModelOverrides": {
    "agent-alpha": "claude-sonnet-4.6",
    "agent-beta": "claude-haiku-4.5"
  }
}
  • defaultModel — applies to ALL agents unless overridden by agentModelOverrides
  • agentModelOverrides — per-agent overrides that take priority over defaultModel
  • Both fields are optional. When absent, Layers 1-4 apply normally.

Fallback Chains

If a model is unavailable (rate limit, plan restriction), retry within the same tier:

Premium:  gpt-5.6-sol → claude-opus-5 → claude-opus-4.8 → claude-opus-4.7 → claude-opus-4.6 → claude-sonnet-4.6 → (omit model param)
Standard: gpt-5.6-terra → claude-sonnet-5 → claude-sonnet-4.6 → gpt-5.5 → gpt-5.4 → gpt-5.3-codex → claude-sonnet-4.5 → gemini-3.1-pro → (omit model param)
Fast:     gpt-5.6-luna → claude-haiku-4.5 → gpt-5.4-mini → gpt-5-mini → (omit model param)

Never fall UP in tier. A fast task won't land on a premium model via fallback.

Frequently asked questions

What does the Model Selection AI skill do?

Determines which LLM model to use for each agent spawn

Why use Model Selection on TypingMind?

Because you install it once and use it with any model. Model Selection is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Model Selection in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bradygaster/squad/tree/dev/packages/squad-cli/templates/skills/model-selection. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Model Selection?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Model Selection?

As many as you like. As long as a model supports skills, you can use Model Selection with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Model Selection AI skill free?

Yes. It is published on GitHub by bradygaster under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇