Skip to Content
ConfigurationOverview

Configuration Overview

Squadron uses HCL (HashiCorp Configuration Language) for all configuration.

File Structure

A typical config directory:

my-config/ ├── variables.hcl # Variable definitions ├── models.hcl # LLM provider configurations ├── agents.hcl # Agent definitions ├── tools.hcl # Custom tool definitions (optional) ├── missions.hcl # Mission definitions (optional) └── mcp.hcl # MCP server config (optional)

You can also put everything in a single file—Squadron reads all .hcl files in the directory.

Loading Order

Squadron uses staged evaluation to resolve references:

  1. Variables - Load variable blocks (no context needed)
  2. Plugins - Load plugin blocks with vars context
  3. Models - Load model blocks with vars + plugins context
  4. Tools - Load custom tool blocks with vars + models + plugins context
  5. Agents - Load agent blocks with vars + models + tools + plugins context
  6. Missions - Load mission blocks with full context

This enables expressions like:

model "anthropic" { api_key = vars.anthropic_api_key # Reference a variable } agent "assistant" { model = models.anthropic.claude_sonnet_4 # Reference a model tools = [tools.weather] }

Block Types

BlockPurpose
variableDefine configuration variables
modelConfigure LLM providers
agentDefine AI agents
skillDefine on-demand capability packages for agents
toolCreate custom tools
pluginLoad external plugins
mcp "name"Pull tools from an external MCP server (npm, github, http, or bare command)
mcp_hostStart a built-in MCP host to expose Squadron to AI clients
missionDefine multi-task missions
commanderCommander server connection config
shared_folderShared file folders accessible to missions

Expressions

HCL supports expressions for dynamic values:

# String interpolation description = "Agent for ${vars.app_name}" # References api_key = vars.anthropic_api_key model = models.anthropic.claude_sonnet_4 # Lists tools = [builtins.http.get]

Validation

Always validate your config before running:

squadron verify ./my-config

This catches errors like:

  • Invalid HCL syntax
  • Missing variable values
  • Invalid model references
  • Circular mission dependencies
Last updated on