RepoMicrosoftMicrosoftpublished Oct 8, 2025seen 1d

microsoft/amplifier-app-cli

Python

Open original ↗

Captured source

source ↗
published Oct 8, 2025seen 1dcaptured 15hhttp 200method plain

microsoft/amplifier-app-cli

Description: Reference implementation of CLI interface for Amplifier project

Language: Python

License: MIT

Stars: 19

Forks: 25

Open issues: 14

Created: 2025-10-08T20:03:06Z

Pushed: 2026-06-10T19:48:47Z

Default branch: main

Fork: no

Archived: no

README:

Amplifier CLI

Command-line interface for the Amplifier AI-powered modular development platform.

> Note: This is a reference implementation of an Amplifier CLI. It works with amplifier-core and demonstrates how to build a CLI around the kernel. You can use this as-is, fork it, or build your own CLI using the core.

Installation

For Users

# Try without installing
uvx --from git+https://github.com/microsoft/amplifier amplifier

# Install globally
uv tool install git+https://github.com/microsoft/amplifier

Quick Start

# First-time setup — opens a combined dashboard to add providers,
# select a routing matrix, and verify configuration (auto-runs if no config)
amplifier init

# Tip: Set environment variables for faster setup
# export ANTHROPIC_API_KEY="your-key"
# The dashboard detects env vars and shows them as defaults

# Install shell completion (optional, one-time setup)
amplifier --install-completion

# Single command (uses foundation bundle by default)
amplifier run "Create a Python function to calculate fibonacci numbers"

# Single command via stdin (useful for scripts/pipelines)
echo "Summarize this spec" | amplifier run

# Interactive chat mode
amplifier

# Use specific bundle
amplifier run --bundle my-bundle "Your prompt"

Environment variables: ANTHROPIC_API_KEY, OPENAI_API_KEY, AZURE_OPENAI_API_KEY, GOOGLE_API_KEY detected automatically during amplifier init.

Commands

Configuration Commands

# Bundle management (primary configuration method)
amplifier bundle current # Show active bundle
amplifier bundle use [--local|--project|--global] # Set active bundle
amplifier bundle list # List available bundles
amplifier bundle show # Show bundle details
amplifier bundle add [--name alias] # Register a bundle (name auto-derived)
amplifier bundle remove # Unregister a bundle
amplifier bundle clear # Reset to default (foundation)

# Provider management
amplifier provider add [--local|--project|--global] # Add/configure a provider
amplifier provider list # List configured providers
amplifier provider remove [--scope] # Remove a provider
amplifier provider edit # Edit provider configuration
amplifier provider test [] # Test provider connectivity
amplifier provider manage # Interactive provider dashboard

# Routing matrix management
amplifier routing list # List available matrices
amplifier routing use [--local|--project|--global] # Select active matrix
amplifier routing show [] # Show resolved roles for a matrix
amplifier routing manage # Interactive routing dashboard

# Module management
amplifier module add [--local|--project|--global]
amplifier module remove [--scope]
amplifier module current
amplifier module list
amplifier module show
amplifier module refresh [] [--mutable-only]
amplifier module check-updates

# Source management
amplifier source add [--local|--project|--global]
amplifier source remove [--scope]
amplifier source list
amplifier source show

# Notification settings (requires notify bundle)
amplifier notify status # Show current notification settings
amplifier notify desktop --enable [--scope] # Enable desktop/terminal notifications
amplifier notify desktop --disable [--scope] # Disable desktop notifications
amplifier notify ntfy --enable --topic # Enable ntfy.sh push notifications
amplifier notify ntfy --disable [--scope] # Disable push notifications
amplifier notify reset --all [--scope] # Clear all notification settings

Session Commands

# New sessions
amplifier run "prompt" # Single-shot (auto-persists, shows ID)
amplifier # Interactive (auto-generates ID)

# Runtime overrides (highest priority, override all config levels)
amplifier run -p anthropic "prompt" # Use specific provider
amplifier run -m claude-sonnet-4-5 "prompt" # Use specific model
amplifier run --max-tokens 500 "prompt" # Limit output tokens
amplifier run -p openai -m gpt-5.2 --max-tokens 1000 "prompt" # Combine flags

# Resume workflows
amplifier continue # Resume most recent (interactive)
amplifier continue "new prompt" # Resume most recent (single-shot)
amplifier run --resume "prompt" # Resume specific session
echo "prompt" | amplifier continue # Resume via Unix pipe

# Session management
amplifier session list # Recent sessions
amplifier session show # Session details
amplifier session resume # Resume specific (interactive)
amplifier session delete # Delete session
amplifier session cleanup [--days N] # Clean up old sessions

Conversational Single-Shot Workflows

Build context across multiple commands:

# Question 1: Start conversation
$ amplifier run "What's the weather in Seattle?"
Session ID: a1b2c3d4
[Response about Seattle weather]

# Question 2: Follow-up with context
$ amplifier continue "And what about tomorrow?"
✓ Resuming most recent session: a1b2c3d4
Messages: 2
[Response with context from previous question]

# Question 3: Continue the thread
$ amplifier continue "Should I bring an umbrella?"
✓ Resuming most recent session: a1b2c3d4
Messages: 4
[Response informed by entire weather conversation]

Unix piping with context:

# Initial question
$ amplifier run "Analyze this log file structure"
Session ID: e5f6g7h8
[Analysis]

# Follow-up via pipe
$ cat errors.log | amplifier continue
✓ Resuming most recent session: e5f6g7h8
Messages: 2
[Analysis of errors with context from previous conversation]

Resume specific conversation:

# List your sessions
$ amplifier session list
Recent Sessions:
a1b2c3d4 2024-11-10 14:30 6 messages # Weather conversation
e5f6g7h8 2024-11-10 12:15 4 messages # Log analysis

# Resume the weather conversation specifically
$ amplifier run --resume a1b2c3d4 "What about next week?"
✓ Resuming session: a1b2c3d4
Messages: 6
[Response with full weather conversation context]

Tool Commands

# List tools available in the active bundle (shows actual tool names)
amplifier tool list # Table format (mounts tools)
amplifier tool list --modules # Show module names (fast, no mount)
amplifier tool list --bundle my-bundle # Specify bundle
amplifier tool list --output json # JSON…

Excerpt shown — open the source for the full document.