Profiles

⚠️ Deprecation Notice

Profiles are deprecated and being replaced by bundles.

The bundle system provides better composability, reproducibility, and flexibility. New users should start with bundles instead.

Migration guide: MIGRATION_COLLECTIONS_TO_BUNDLES.md

Learn about bundles: Bundles page

What Profiles Were

A profile is a named, reusable "capability set" that tells the app what to mount: which provider module, which tools, which hooks, which orchestrator (loop), and which agent definitions. You can treat profiles as "workflows".

Note: This documentation is maintained for users migrating from profiles to bundles.

Where profiles live

What a profile consists of

A profile file is typically Markdown with YAML frontmatter that declares the mount plan (session orchestrator, context manager, providers, tools, hooks, agents), followed by human-readable instructions and @mentions to shared context.

What profiles control

Keep the layers straight
A provider is not a profile. A profile typically selects a provider module (and other modules) and configures them.

How to load a profile

# list what your app can see
amplifier profile list

# set default
amplifier profile use dev

# one-off selection
amplifier run --profile base "Explain this codebase"
How to inspect what a profile enables
The most reliable view is the profile’s own file (YAML frontmatter). The deep-dive page below renders that frontmatter so you can quickly see which modules (tools/hooks/providers) are actually mounted.

Verified mechanism references: ProfileLoader, compile_profile_to_mount_plan, CLI wiring (paths.py).

Existing profiles (scanned)

This list is rendered from data/catalog.json (scanned from Amplifier’s ecosystem repos, including the profiles embedded in amplifier-app-cli and profiles inside collection repos).

How to read the deep dives

The per-profile pages focus on: intended use, typical module composition (at a conceptual level), tradeoffs, and “when to choose it”.