Skip to content

Profiles

Profiles are pre-configured capability sets that define which modules (providers, tools, hooks) are available during a session.

Built-in Profiles

Profile Description Use Case
foundation Minimal - just LLM access Simple chat, no tools
base Basic tools (filesystem, bash) Light development work
dev Full development suite Day-to-day development
test Testing focused Running tests, debugging
full All features enabled Exploring capabilities

Using Profiles

List Available Profiles

amplifier profile list

Use a Profile

# For a single command
amplifier run --profile dev "Analyze this code"

# Set as default
amplifier profile use dev

Show Profile Configuration

amplifier profile show dev

Check Current Profile

amplifier profile current

Profile Contents

foundation

The minimal profile - just LLM access:

  • Provider: Your configured provider
  • Tools: None
  • Hooks: Basic logging

base

Adds essential development tools:

  • Everything in foundation
  • Tools: filesystem, bash
  • Use for: Basic file operations, running commands

dev

Full development capabilities:

  • Everything in base
  • Tools: web, search, task
  • Agents: explorer, bug-hunter, zen-architect, researcher
  • Hooks: approval, streaming-ui
  • Use for: Day-to-day development work

full

All available features:

  • Everything in dev
  • Additional experimental tools
  • All available hooks
  • Use for: Testing new features, maximum capability

Creating Custom Profiles

Profiles are YAML files with markdown frontmatter.

Profile Location

Profiles are loaded from (in order):

  1. .amplifier/profiles/ (project)
  2. ~/.amplifier/profiles/ (user)
  3. Bundled profiles (fallback)

Profile Format

Create .amplifier/profiles/my-profile.md:

---
name: my-profile
extends: base
description: My custom development profile
---

# My Profile

Custom instructions that will be included in the system prompt.

## Guidelines

- Follow our coding standards
- Write tests for all new code

Profile Schema

---
# Required
name: profile-name

# Optional - inherit from another profile
extends: base

# Optional
description: What this profile is for

# Optional - override session settings
session:
  orchestrator: loop-streaming
  context: context-persistent

# Optional - configure providers
providers:
  - module: provider-anthropic
    config:
      default_model: claude-opus-4-1

# Optional - add/configure tools
tools:
  - module: tool-filesystem
  - module: tool-bash
    config:
      timeout: 60

# Optional - configure hooks
hooks:
  - module: hooks-logging
    config:
      level: debug

# Optional - define agents
agents:
  my-agent:
    description: A specialized agent
    tools:
      - tool-filesystem
    system:
      instruction: You are a specialist in...
---

Profile Inheritance

Profiles can extend other profiles:

---
name: my-dev
extends: dev
---

Additional system instructions on top of dev profile.

The child profile:

  • Inherits all parent settings
  • Can override specific configurations
  • Adds its own system instructions

Inheritance Chain

foundation → base → dev → your-profile

Each level adds capabilities without removing parent features.

Profile-Specific Tools

Enable or disable tools per profile:

---
name: safe-profile
extends: base
tools:
  - module: tool-filesystem
    config:
      read_only: true
  # tool-bash intentionally omitted
---

Profile System Instructions

The markdown content after the frontmatter becomes the system instruction:

---
name: code-reviewer
extends: base
---

# Code Review Assistant

You are an expert code reviewer. When reviewing code:

1. Check for bugs and edge cases
2. Suggest performance improvements
3. Ensure code follows best practices
4. Look for security vulnerabilities

Be constructive and explain your reasoning.

Mentions in Profiles

Reference context files using @mentions:

---
name: team-profile
extends: dev
---

Follow our team standards:

@project:context/coding-standards.md
@project:context/architecture.md

Sharing Profiles

Via Git Repository

Commit profiles to your project's .amplifier/profiles/ directory.

Via Collections

Package profiles in a collection for broader sharing:

my-collection/
├── profiles/
│   ├── my-profile.md
│   └── another-profile.md
├── agents/
└── context/

See Collections for more details.

Troubleshooting

Profile Not Found

# Check profile exists
amplifier profile list

# Check profile locations
ls ~/.amplifier/profiles/
ls .amplifier/profiles/

Profile Not Loading

Verify YAML syntax:

# Show profile content
amplifier profile show my-profile

Inheritance Issues

Check the inheritance chain:

# Show full resolved profile
amplifier profile show my-profile --resolved

Best Practices

  1. Start minimal: Extend foundation or base, add only what you need
  2. Use inheritance: Don't duplicate - extend parent profiles
  3. Document purpose: Include clear descriptions
  4. Project-specific: Put team profiles in .amplifier/profiles/
  5. Test profiles: Run amplifier profile show to verify

See Also