> ## Documentation Index
> Fetch the complete documentation index at: https://emartai.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# evalflow

> pytest for LLMs — catch prompt regressions before they reach production

evalflow is a CLI quality gate for LLM prompts. When you change a prompt, evalflow runs your test suite and blocks CI if quality regresses — the same way pytest blocks CI when tests fail.

<CardGroup cols={2}>
  <Card title="Quick Start" icon="bolt" href="/quickstart">
    Install evalflow and run your first quality gate in 10 minutes.
  </Card>

  <Card title="Core Concepts" icon="book" href="/concepts/quality-gate">
    Understand quality gates, baselines, and eval methods.
  </Card>

  <Card title="CLI Reference" icon="terminal" href="/reference/cli">
    Complete reference for every evalflow command and flag.
  </Card>

  <Card title="CI/CD Integration" icon="gear" href="/ci/github-actions">
    Add evalflow to GitHub Actions, GitLab CI, or CircleCI.
  </Card>
</CardGroup>

## How it works

<Steps>
  <Step title="Install">
    ```bash theme={null}
    pip install evalflow
    ```
  </Step>

  <Step title="Initialize">
    Run `evalflow init` to create your config, prompt files, and dataset.
  </Step>

  <Step title="Write test cases">
    Add test cases to `evals/dataset.json` with expected outputs and eval methods.
  </Step>

  <Step title="Run the gate">
    Run `evalflow eval`. Exit code `0` means pass, `1` means regression, `2` means error — ready for CI.
  </Step>
</Steps>

## Why evalflow

Traditional unit tests cannot tell you when a prompt tweak quietly degrades a task. evalflow gives you a local quality gate that works the same on your laptop and in CI.

```text theme={null}
You changed one prompt.
Summarization improved.
Classification silently broke.
Nobody noticed for 4 days.

evalflow catches this in CI before it ships.
```

## Supported providers

evalflow works with OpenAI, Anthropic, Groq, Gemini, and Ollama. Switch providers with a single flag — no code changes required.
