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 on macOS, Linux, or Windows Bash environments such as Git Bash, MSYS2, or Cygwin:
curl -fsSL https://raw.githubusercontent.com/microsoft/waza/main/install.sh | bashThe script auto-detects the environment where Bash is running. If you run this from PowerShell and bash resolves to WSL, it installs the Linux binary inside WSL. For native Windows, download waza-windows-amd64.exe or waza-windows-arm64.exe from the newest stable vX.Y.Z CLI release on the Releases page, rename it to waza.exe, and place it in a directory on your PATH.
This downloads the latest standalone waza CLI 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 and Git LFS:
git clone https://github.com/microsoft/waza.gitcd wazagit lfs installgit lfs pullgo build -o waza ./cmd/waza./waza --version3. 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 skill 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-explainerdescription: | 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: "Read sample.py and explain the function it contains." files: - path: sample.pyexpected: output_contains: - "function" - "parameter" - "return" behavior: max_tool_calls: 5Step 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)inputs.files copies each listed file from the suite’s fixtures/ directory
into the fresh workspace for that task. File contents are not automatically
added to the prompt, so name the file and ask the agent to read it, as in the
task above.
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 executor: mock 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 in the newest stable vX.Y.Z CLI release. You can also install manually:
# Example: macOS ARM64 (Apple Silicon) — replace <version> with the latest tag (e.g. v0.34.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