Skip to content

Full Configuration Example

This page shows a complete, annotated .weave/config.weave that uses all of Weave's customization mechanisms together. Use it as a reference when building your own config.

Complete Config

weave
# ── Domain-Specific Category Routing ───────────────────────────────
# Categories generate shuttle-{name} agent descriptors that inherit
# from the base shuttle agent with category-specific overrides.
# Adapters decide how those descriptors are materialised in the harness.

category backend {
  description "Python FastAPI backend"
  models ["anthropic/claude-opus-4"]
  temperature 0.1
  patterns ["src/api/**", "src/server/**", "src/db/**"]
  prompt_append "Use async/await. Include docstrings. Follow PEP 8."
}

category frontend {
  description "React TypeScript UI"
  models ["openai/gpt-5"]
  temperature 0.2
  patterns ["src/components/**", "src/pages/**", "**/*.tsx"]
  prompt_append "Use React 18+ hooks. Test accessibility. Use Tailwind CSS."
}

# ── Per-Agent Customization ─────────────────────────────────────────
# Configure each agent independently. All fields are optional -
# unset fields fall back to the agent's built-in defaults.

agent loom {
  models ["anthropic/claude-opus-4"]
  temperature 0.1
  prompt_append "When reviewing security-sensitive changes, delegate to both warp and security-gpt."
}

agent tapestry {
  temperature 0.0
  prompt_append "Coordinate plan execution carefully: delegate each task to Shuttle, verify the result, and keep plan progress precise."
  skills ["tdd"]
}

agent shuttle {
  description "Senior Dev"
  skills ["company-standards", "testing"]
  prompt_append "Always verify before marking complete and report results back to Tapestry."
}

agent pattern {
  models ["anthropic/claude-opus-4"]
  skills ["planning-guidelines"]
  prompt_append "Create detailed acceptance criteria."
}

agent thread {
  models ["anthropic/claude-3-haiku"]
}

# ── Custom Agents ───────────────────────────────────────────────────
# Define your own agents. They appear alongside built-ins in Loom's
# delegation table and follow the same model resolution chain.

agent security-gpt {
  description "Independent security review using a second model"
  prompt "You are a security auditor. Review code for OWASP Top 10 vulnerabilities. Produce a clear APPROVE or REJECT verdict."
  models ["openai/gpt-5"]
  mode subagent
  temperature 0.0

  tool_policy {
    read     allow
    write    deny
    execute  deny
    delegate deny
    network  deny
  }

  triggers [
    { domain "Security" trigger "Independent security review for cross-model coverage" }
  ]
}

agent docs-writer {
  description "Technical documentation specialist"
  prompt_file "docs-writer.md"
  models ["anthropic/claude-sonnet-4-5"]
  mode subagent
  skills ["writing-style"]
  temperature 0.2

  triggers [
    { domain "Documentation" trigger "README updates, API docs, user guides, changelog entries" }
  ]
}

# ── Selective Disabling ─────────────────────────────────────────────
# Remove what you don't need. Disable directives from global and
# project config are union-merged.

disable hooks ["context-window-monitor"]

# ── Settings ────────────────────────────────────────────────────────

settings {
  log_level INFO
}

# ── Continuation Behavior ────────────────────────────────────────────
# Keep post-compaction recovery on, but keep idle nudges off.

continuation {
  recovery {
    compaction true
  }
  idle {
    enabled false
    work false
    workflow false
  }
}

# ── Analytics ───────────────────────────────────────────────────────

analytics {
  enabled true
  use_fingerprint false
}

Key Architectural Notes

All customization is additive

prompt_append appends, skills prepend. Base prompts are never modified by these mechanisms. The only exception is prompt, which fully replaces the base prompt.

Config is layered

Global config (~/.weave/config.weave) and project config (.weave/config.weave) merge gracefully. Named blocks deep-merge, arrays union, scalars favor the project config.

Category shuttle agents

Each category block generates a shuttle-{name} agent descriptor (e.g. shuttle-backend, shuttle-frontend). Adapters decide how those descriptors are materialised in the harness. Adapters that support file-pattern routing can use the patterns field to guide category selection.

Skills are the primary extension point

Skills are portable, reusable, and can be shared across teams. They are the recommended way to package domain knowledge for consistent reuse. See Skills.

Which Mechanism for Which Use Case

Use CaseMechanism
Add instructions to a specific agentprompt_append in the agent block
Inject reusable domain knowledgeSkills (skills ["..."])
Optimize models per domainCategories
Change which LLM an agent usesmodels [...] in the agent block
Replace an agent's entire promptprompt "..." in the agent block (use sparingly)
Add a new specialist agentNew agent block
Restrict what tools an agent can usetool_policy { ... } in the agent block
Remove an agent from the systemdisable agents ["name"]
Turn off a governance hookdisable hooks ["name"]
Disable a skilldisable skills ["name"]
Tune recovery vs idle continuation behaviorcontinuation block
Domain routing by file patternpatterns [...] in a category block

Released under the MIT License.