Getting Started
A complete walkthrough for installing waza and running your first evaluation.
Installation
Section titled “Installation”Choose one of three methods:
1. Binary Install (Recommended)
Section titled “1. Binary Install (Recommended)”The fastest way to get started. The script auto-detects your OS and architecture:
curl -fsSL https://raw.githubusercontent.com/microsoft/waza/main/install.sh | bashThis downloads the latest release, verifies the checksum, and installs the waza binary to:
/usr/local/bin/waza(if writable), or~/bin/waza(if/usr/local/binis not writable)
Verify installation:
waza --version2. Install from Source
Section titled “2. Install from Source”Requires Go 1.26 or later:
go install github.com/microsoft/waza/cmd/waza@latest3. Azure Developer CLI Extension
Section titled “3. Azure Developer CLI Extension”If you use Azure Developer CLI (azd):
# Add the waza extension registryazd ext source add -n waza -t url -l https://raw.githubusercontent.com/microsoft/waza/main/registry.json
# Install the extensionazd ext install microsoft.azd.waza
# Verifyazd waza --helpAll waza commands are available under azd waza:
azd waza init my-projectazd waza run eval.yamlazd waza serveQuick Start
Section titled “Quick Start”Get a complete evaluation suite running in 5 minutes.
Step 1: Initialize a Project
Section titled “Step 1: Initialize a Project”Create a new directory and initialize a waza project:
mkdir my-eval-suitecd my-eval-suitewaza initYou’ll be prompted to create your first skill. Enter a name like code-explainer:
my-eval-suite/├── skills/│ └── code-explainer/│ └── SKILL.md├── evals/│ └── code-explainer/│ ├── eval.yaml│ ├── tasks/│ │ ├── basic-usage.yaml│ │ └── edge-cases.yaml│ └── fixtures/│ └── sample.py├── .github/workflows/│ └── eval.yml└── .gitignoreSkip the prompt with --no-skill:
waza init --no-skillStep 2: Create a New Skill
Section titled “Step 2: Create a New Skill”If you didn’t create one during init, add a new skill:
waza new code-analyzerThe interactive wizard collects metadata (name, description, use cases).
Step 3: Define Your Skill
Section titled “Step 3: Define Your Skill”Edit skills/code-explainer/SKILL.md:
---name: code-explainertype: utilitydescription: | USE FOR: Explaining code, analyzing code patterns, refactoring suggestions DO NOT USE FOR: Running code, generating boilerplate---
# Code Explainer
## Overview
Helps developers understand existing code by breaking down logic and identifying patterns.
## Usage
**Triggers:**- "Explain this Python function"- "What does this code do?"Step 4: Write Evaluation Tasks
Section titled “Step 4: Write Evaluation Tasks”Edit evals/code-explainer/tasks/basic-usage.yaml:
id: basic-usage-001name: Basic Usage - Python Functiondescription: Test that the skill explains a simple Python function correctly.tags: - basic - happy-pathinputs: prompt: "Explain this function" files: - path: sample.pyexpected: output_contains: - "function" - "parameter" - "return" behavior: max_tool_calls: 5 max_response_time_ms: 30000Step 5: Add Test Fixtures
Section titled “Step 5: Add Test Fixtures”Create test files in evals/code-explainer/fixtures/sample.py:
def fibonacci(n): """Calculate the nth Fibonacci number.""" if n <= 1: return n return fibonacci(n - 1) + fibonacci(n - 2)Step 6: Configure Your Evaluation
Section titled “Step 6: Configure Your Evaluation”Edit evals/code-explainer/eval.yaml:
name: code-explainer-evaldescription: Evaluation suite for code-explainer skillskill: code-explainerversion: "1.0"
config: trials_per_task: 1 timeout_seconds: 300 parallel: false model: claude-sonnet-4.6
graders: - type: text name: explains_concepts config: pattern: "(?i)(function|variable|parameter|return)"
tasks: - "tasks/*.yaml"Step 7: Run Evaluations
Section titled “Step 7: Run Evaluations”# Run all evaluationswaza run
# Run one skill's evaluationswaza run code-explainer
# Verbose outputwaza run code-explainer -v
# Save resultswaza run code-explainer -o results.jsonExample output:
Running evaluations for code-explainer... ✓ basic-usage-001 passed ✓ edge-case-001 passed
Results: 2/2 tasks passed ✓Step 8: Check Skill Readiness
Section titled “Step 8: Check Skill Readiness”Validate your skill is production-ready:
waza check code-explainerOutput:
🔍 Skill Readiness Check━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Skill: code-explainer
📋 Compliance Score: High ✅ Excellent! Your skill meets all compliance requirements.
✅ Your skill is ready for submission!Step 9: View Results in Dashboard
Section titled “Step 9: View Results in Dashboard”Start the interactive web dashboard:
waza serveOpens http://localhost:3000. View runs, detailed results, comparisons, and trends.
Next Steps
Section titled “Next Steps”- Writing Eval Specs — Master YAML structure and task definitions
- Validators & Graders — Reference for all grader types
- Web Dashboard — Explore interactive results
- CLI Reference — All commands and flags
- GitHub Repository — Source code, examples, issues
Troubleshooting
Section titled “Troubleshooting”Install script fails or binary not found
Section titled “Install script fails or binary not found”If the install script exits with a download error or 404, check the Releases page to confirm a binary for your platform is available. You can also install manually:
# Example: macOS ARM64 (Apple Silicon) — replace <version> with the latest tag (e.g. v0.9.0)curl -fSL -o waza https://github.com/microsoft/waza/releases/download/<version>/waza-darwin-arm64chmod +x wazasudo mv waza /usr/local/bin/wazaReplace <version> and the platform suffix (darwin-arm64, linux-amd64, etc.) with the values that match your system.
”skill not found”
Section titled “”skill not found””Make sure you’re in a project with skills/ directory or a standalone skill with SKILL.md.
”eval.yaml not found”
Section titled “”eval.yaml not found””Check that:
- File is at
evals/{skill-name}/eval.yaml(project mode) - Or at
{skill}/evals/eval.yaml(standalone)
“No tasks in eval.yaml”
Section titled ““No tasks in eval.yaml””Ensure your eval.yaml has:
tasks: - "tasks/*.yaml"And that you have .yaml files in the tasks/ directory.
Support
Section titled “Support”- Issues: github.com/microsoft/waza/issues
- GitHub: github.com/microsoft/waza