<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Quantiles.io</title>
    <description>The latest articles on DEV Community by Quantiles.io (@quantiles-io).</description>
    <link>https://dev.to/quantiles-io</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4051944%2F2316610d-8030-4abc-8ed9-fba5f336777c.png</url>
      <title>DEV Community: Quantiles.io</title>
      <link>https://dev.to/quantiles-io</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/quantiles-io"/>
    <language>en</language>
    <item>
      <title>Build an AI Evaluation from a Hugging Face Dataset Without Writing Python</title>
      <dc:creator>Quantiles.io</dc:creator>
      <pubDate>Tue, 04 Aug 2026 16:48:38 +0000</pubDate>
      <link>https://dev.to/quantiles-io/build-an-ai-evaluation-from-a-hugging-face-dataset-without-writing-python-1bhh</link>
      <guid>https://dev.to/quantiles-io/build-an-ai-evaluation-from-a-hugging-face-dataset-without-writing-python-1bhh</guid>
      <description>&lt;p&gt;AI benchmarks and evaluations have varying datasets, prompts, measurement techniques, and more, but core execution logic rarely changes. In most cases, maintaining multiple custom implementations of the same evaluation pattern increases complexity and maintenance overhead.&lt;/p&gt;

&lt;p&gt;Quantiles' Custom No-code Evaluations provide a purely configuration-based way to build evaluations without writing any code yourself. Below, we'll walk through creating one using the MMLU-Pro dataset, but you can use any dataset compatible with the evaluation styles described below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supported custom no-code evaluation styles
&lt;/h2&gt;

&lt;p&gt;Quantiles custom no-code evaluations currently support two deterministic scoring styles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;exact_match&lt;/code&gt;: each sample has a golden answer, and that answer is one fixed string, number, or boolean, and each sample has a golden answer&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;multiple_choice&lt;/code&gt;: each sample has an answer selected from a finite set of choices, and each sample includes possible answers and the correct choice&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building an evaluation that fits either of these two styles, we encourage you to use custom no-code evaluations. Otherwise, if your evaluation requires the use of retrieval, multi-step agents, judges, highly specialized scoring logic, or any other logic that doesn't fit the custom no-code framework, use Quantiles &lt;a href="https://quantiles.io/documentation/custom-evaluations" rel="noopener noreferrer"&gt;custom code evaluations&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;We introduced the Quantiles CLI installation process in our &lt;a href="https://huggingface.co/blog/phranzia/quantiles-local-ai-evaluation" rel="noopener noreferrer"&gt;previous Hugging Face article&lt;/a&gt;. Here is the command again for reference:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cli.quantiles.io/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After you have the &lt;code&gt;qt&lt;/code&gt; CLI installed, create a working directory containing these two files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
├── quantiles.toml
└── prompts/
    └── mmlu-pro.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The example in this article uses the public &lt;code&gt;quantiles/MMLU-Pro&lt;/code&gt; mirror of the canonical MIT-licensed &lt;a href="https://huggingface.co/datasets/TIGER-Lab/MMLU-Pro" rel="noopener noreferrer"&gt;TIGER-Lab/MMLU-Pro&lt;/a&gt; dataset.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Define the evaluation
&lt;/h2&gt;

&lt;p&gt;Each evaluation is built around four core configuration fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;type&lt;/code&gt;: set this value to &lt;code&gt;custom_nocode&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dataset&lt;/code&gt;: define the dataset source, configuration, split, and revision.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;prompt_template_file&lt;/code&gt;: specifies how the prompt should be rendered for each sample.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;style&lt;/code&gt;: configures the specific style (see above for details on valid styels), maps dataset fields to choices and expected labels as appropriate, and selects parsing and scoring behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The following &lt;code&gt;quantiles.toml&lt;/code&gt; configuration shows how to define the MMLU-Pro evaluation using these four fields:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="c"&gt;# MMLU-Pro Custom No-Code Evaluation Example&lt;/span&gt;
&lt;span class="nn"&gt;[benchmarks.mmlu-pro-nocode]&lt;/span&gt;

&lt;span class="c"&gt;# This field must be set to "custom_nocode"&lt;/span&gt;
&lt;span class="py"&gt;type&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"custom_nocode"&lt;/span&gt;

&lt;span class="c"&gt;# Identifies the Hugging Face dataset to evaluate&lt;/span&gt;
&lt;span class="py"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"quantiles/MMLU-Pro"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="py"&gt;config_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"default"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="py"&gt;split&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"test"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;# This example uses the built-in demo model.&lt;/span&gt;
&lt;span class="c"&gt;# To evaluate another model (e.g., OpenAI or Anthropic), specify its model identifier below.&lt;/span&gt;
&lt;span class="c"&gt;# See the following documentation for details on configuring models:&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# https://quantiles.io/documentation/model-configuration&lt;/span&gt;
&lt;span class="py"&gt;model&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"random"&lt;/span&gt;

&lt;span class="c"&gt;# The relative path to the Jinja-formatted prompt template for this dataset.&lt;/span&gt;
&lt;span class="py"&gt;prompt_template_file&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"prompts/mmlu-pro.txt"&lt;/span&gt;

&lt;span class="c"&gt;# Limit this smoke test to 10 dataset rows. Remove this to run the full dataset.&lt;/span&gt;
&lt;span class="py"&gt;limit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

&lt;span class="c"&gt;# Configure the benchmark's multiple-choice question and answer structure.&lt;/span&gt;
&lt;span class="nn"&gt;[benchmarks.mmlu-pro-nocode.style]&lt;/span&gt;
&lt;span class="py"&gt;type&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"multiple_choice"&lt;/span&gt;
&lt;span class="py"&gt;choices&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="py"&gt;column&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"options"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="py"&gt;choice_labels&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"A"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"B"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"C"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"D"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"E"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"F"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"G"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"H"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"I"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"J"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="py"&gt;answer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="py"&gt;label_column&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"answer"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; This walkthrough uses the MMLU-Pro dataset schema but does not match its implementation with 100% precision. If you need 100% fidelity to the original benchmark, see the &lt;a href="https://github.com/TIGER-AI-Lab/MMLU-Pro" rel="noopener noreferrer"&gt;authors’ reference implementation&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Write the prompt template
&lt;/h3&gt;

&lt;p&gt;Create &lt;code&gt;prompts/mmlu-pro.txt&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jinja"&gt;&lt;code&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;row.question&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;

&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;choice&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;choices&lt;/span&gt; &lt;span class="cp"&gt;%}{{&lt;/span&gt; &lt;span class="nv"&gt;choice.label&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;. &lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;choice.text&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;
&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endfor&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
Answer with only the letter of the correct choice.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every field in the current dataset sample is available to the prompt template through the &lt;code&gt;row&lt;/code&gt; object, as shown above. For multiple-choice evaluations, Quantiles also provides a normalized &lt;code&gt;choices&lt;/code&gt; list containing each configured answer label and its corresponding choice text.&lt;/p&gt;

&lt;p&gt;The configuration file also defines how dataset fields map to the evaluation inputs and expected answer, and the prompt template controls how those values are presented to the model. This separation allows you to modify the prompt without changing the evaluation logic and makes the fields used to determine the expected answer explicit in the configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Run the evaluation
&lt;/h2&gt;

&lt;p&gt;To run the new custom no-code benchmark you've just specified, simply invoke &lt;code&gt;qt run&lt;/code&gt; from the same directory as your new &lt;code&gt;quantiles.toml&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt run mmlu-pro-nocode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;This example uses the built-in demo model, which randomly selects from the configured answer labels so you can validate the evaluation workflow without model credentials or inference costs. Step 4 below shows how to replace the demo model with your own AI model.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Immediately after you start the &lt;code&gt;qt run&lt;/code&gt; command, you'll see a progress bar, and when the evaluation completes, the output will look similar to the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Created run 1
mmlu-pro-nocode: 100%|████████████████████████████| 10/10
Run 8 completed successfully in 0.46s

Aggregate metrics
 METRIC             VALUE        UNIT
 accuracy           0.82         -
 max_latency_ms     0.059792     ms
 mean_latency_ms    0.022361     ms
 median_latency_ms  0.003959     ms
 min_latency_ms     0.003334     ms
 p95_latency_ms     0.054208     ms
 p99_latency_ms     0.058675     ms

Run `qt show 1 --json` for sample-level details.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Inspect the results
&lt;/h2&gt;

&lt;p&gt;When the run finishes, the CLI prints a &lt;code&gt;run_id&lt;/code&gt; and aggregate metrics. To inspect the complete run record, including per-sample results, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt show &amp;lt;run_id&amp;gt; &lt;span class="nt"&gt;--json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each sample includes several metrics, with these three providing a helpful starting point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;is_correct&lt;/code&gt;: whether the parsed label matches the expected answer.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;response_parsed&lt;/code&gt;: whether the response could be mapped to a configured label.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;latency_ms&lt;/code&gt;: time spent processing the sample, including provider latency when a hosted model is used.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also opt-in to more metrics for &lt;code&gt;multiple_choice&lt;/code&gt; evaluations. See &lt;a href="https://quantiles.io/documentation/custom-evaluations/custom-nocode-evaluations#optional-metrics-for-multiple_choice-evaluations" rel="noopener noreferrer"&gt;this document&lt;/a&gt; for more details.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Evaluate a hosted model
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;random&lt;/code&gt; demo model is useful for validating your setup, but its results do not reflect the quality of your own model. To evaluate a hosted model, first configure the required API key then pass its model identifier through &lt;code&gt;--input&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;your_openai_api_key&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt run mmlu-pro-nocode &lt;span class="nt"&gt;--input&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"openai:gpt-5.6-luna","limit":10}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;--input&lt;/code&gt; flag applies only to the current evaluation run, and overrides just the values you pass. If you omit it, only the configuration defined in &lt;code&gt;quantiles.toml&lt;/code&gt; will be used.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Use coding agents to create and run custom evaluations
&lt;/h2&gt;

&lt;p&gt;Your favorite coding agent, such as Codex or Claude Code, can handle most of the work required to create and run Quantiles custom no-code evaluations. Given a dataset and prompt template, it can inspect the available fields, configure the appropriate exact-match or multiple-choice scorer, and run the evaluation. The Quantiles agent skill provides the workflow and safeguards needed to complete those steps reliably.&lt;/p&gt;

&lt;p&gt;If you haven't done so yet, &lt;a href="https://quantiles.io/documentation/install-the-skill" rel="noopener noreferrer"&gt;install the Quantiles agent skill&lt;/a&gt; by passing this prompt to your coding agent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Please install the Quantiles skill at github.com/quantiles-evals/skill
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After you've installed the skill, give your coding agent the following prompt for a multiple-choice evaluation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create and run a custom no-code multiple-choice evaluation named &amp;lt;evaluation_name&amp;gt; using the Hugging Face dataset &amp;lt;dataset_id&amp;gt;. Use &amp;lt;prompt_column&amp;gt; as the prompt column, &amp;lt;choice_source&amp;gt; as the choice source, &amp;lt;choice_labels&amp;gt; as the choice labels, &amp;lt;answer_source&amp;gt; as the correct-answer source, and the following Jinja prompt template: &amp;lt;jinja_prompt_template&amp;gt;. Inspect the run and summarize the results.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And use the following prompt to create an exact-match evaluation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create and run a custom no-code exact-match evaluation named &amp;lt;evaluation_name&amp;gt; using the Hugging Face dataset &amp;lt;dataset_id&amp;gt;. Use &amp;lt;prompt_column&amp;gt; as the prompt column, &amp;lt;answer_column&amp;gt; as the golden-answer column, and the following Jinja prompt template: &amp;lt;jinja_prompt_template&amp;gt;. Inspect the run and summarize the results.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Quantiles custom no-code evaluations provide a high-performance execution pipeline for evaluations defined only through configuration, reducing the need for custom code for each benchmark or evaluation. You can specify your dataset, prompt, model, and scoring format in a configuration file, run the evaluation with a single command, and be sure it runs efficiently and correctly, with standardized metrics, reproducibility, and resilience. Coding agents can also handle both setup and execution with the Quantiles agent skill.&lt;/p&gt;

&lt;p&gt;Custom no-code evaluations currently support exact-match and multiple-choice scoring as detailed above, and more evaluation styles are in development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation and References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://quantiles.io/documentation/custom-evaluations/custom-nocode-evaluations" rel="noopener noreferrer"&gt;Custom No-code Evaluations Documentation&lt;/a&gt; - A guide to Custom No-Code Evaluations&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://quantiles.io/documentation/model-configuration" rel="noopener noreferrer"&gt;Model Configuration Documentation&lt;/a&gt; - Use hosted AI models with Quantiles&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/quantiles-evals/skill" rel="noopener noreferrer"&gt;Quantiles Agent Skill Repository&lt;/a&gt; - Coding-Agent Skill and Workflow Guide&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
      <category>opensource</category>
      <category>llm</category>
    </item>
    <item>
      <title>Run and Compare AI Evaluations with a CLI for Developers and Coding Agents</title>
      <dc:creator>Quantiles.io</dc:creator>
      <pubDate>Tue, 28 Jul 2026 21:10:55 +0000</pubDate>
      <link>https://dev.to/quantiles-io/run-and-compare-ai-evaluations-with-a-cli-for-developers-and-coding-agents-385m</link>
      <guid>https://dev.to/quantiles-io/run-and-compare-ai-evaluations-with-a-cli-for-developers-and-coding-agents-385m</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; This walkthrough shows how developers and coding agents can use &lt;a href="https://github.com/quantiles-evals/quantiles" rel="noopener noreferrer"&gt;Quantiles&lt;/a&gt;, an open-source AI evaluation platform licensed under Apache 2.0, to quickly run, analyze, and compare AI evaluations locally. We'll use the SimpleQA Verified benchmark as an example throughout this post, letting you follow the commands, inspect the evaluation results, and configure your own model for the same workflow.&lt;/p&gt;

&lt;p&gt;Running an AI evaluation is rarely as simple as sending prompts to a model. Developers must connect datasets, model APIs, scoring logic, result storage, and comparison tooling before they can answer a basic question: did the system get better? When those pieces are spread across scripts, notebooks, and logs, every rerun becomes harder to reproduce and diagnose. A score alone cannot reveal whether the model changed or whether the dataset, prompt, scorer, or sample set changed with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quickstart: Run an example benchmark
&lt;/h2&gt;

&lt;p&gt;The Quantiles CLI is called &lt;code&gt;qt&lt;/code&gt; on the command line. A simple &lt;code&gt;curl ... | bash&lt;/code&gt; command supports macOS and Linux on X86-64 and Arm64 systems. First, use it to install the CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cli.quantiles.io/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;If you don't want to run code directly sourced from the internet, see the &lt;a href="https://github.com/quantiles-evals/quantiles/blob/main/cli/scripts/install.sh" rel="noopener noreferrer"&gt;&lt;code&gt;install.sh&lt;/code&gt; source code&lt;/a&gt; first.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Next, let’s run a built-in benchmark from start to finish using a single command. &lt;a href="https://huggingface.co/datasets/google/simpleqa-verified" rel="noopener noreferrer"&gt;SimpleQA Verified&lt;/a&gt; is a 1,000-prompt benchmark created by Google DeepMind and Google Research. It re-curates questions from OpenAI's &lt;a href="https://openai.com/index/introducing-simpleqa/" rel="noopener noreferrer"&gt;SimpleQA&lt;/a&gt; benchmark to reduce problems such as incorrect labels, topical bias, redundant questions, and ambiguous source evidence. Each example includes a short factual question in &lt;code&gt;problem&lt;/code&gt;, its reference &lt;code&gt;answer&lt;/code&gt;, topic and answer-type metadata, and supporting URLs.&lt;/p&gt;

&lt;p&gt;Use the following command to run &lt;code&gt;simpleqa-verified&lt;/code&gt; using the built-in Quantiles demo model, which doesn't incur any usage charges:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt run simpleqa-verified
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Results from the demo model are intended only to demonstrate the evaluation workflow because its outputs are generated randomly. See the configuration section to run evaluations with your own model.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The current Quantiles integration reads &lt;code&gt;problem&lt;/code&gt; and &lt;code&gt;answer&lt;/code&gt; columns from the &lt;a href="https://huggingface.co/datasets/quantiles/simpleqa-verified" rel="noopener noreferrer"&gt;quantiles/simpleqa-verified&lt;/a&gt; dataset, which is a fork of the canonical Google dataset. The benchmark remains the work of the original authors.&lt;/p&gt;

&lt;p&gt;The above &lt;code&gt;qt run&lt;/code&gt; command embeds each response and reference answer using a local embedding model powered by &lt;a href="https://docs.rs/fastembed/latest/fastembed/" rel="noopener noreferrer"&gt;fastembed&lt;/a&gt;, and then compares the two using cosine similarity. It then records a sample-level similarity score and aggregates the score distribution. This flow exercises dataset loading, sample execution, scoring, aggregation, and evaluation metadata and metrics storage, without using an LLM provider. It does not reproduce the benchmark's canonical GPT-4.1 autorater, so does not report the resulting similarity metrics as SimpleQA Verified model performance.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When you’re ready to evaluate LLMs, refer to the model configuration documentation section below for detailed setup instructions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quantiles calculates and displays the aggregate metrics after all samples have been evaluated and reports the evaluation name, status, timestamps, duration, workflow input and output, error state, and aggregate metrics.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;qt run simpleqa-verified
&lt;span class="go"&gt;
Created run 1
simpleqa-verified: 100%|████████████████████| 1000/1000 [00:18&amp;lt;00:00, 1195.52it/s]
Run 1 completed successfully in 19.21s

Aggregate metrics
 METRIC                VALUE     UNIT
 max_similarity        0.8351    -
 mean_similarity       0.5647    -
 median_similarity     0.5589    -
 min_similarity        0.4497    -
 p95_similarity        0.6359    -
 p99_similarity        0.6734    -
 stdev_similarity      0.0396    -
 variance_similarity   0.0015    -

Run `qt show 1 --json` for sample-level details.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Inspect and analyze sample-level results
&lt;/h2&gt;

&lt;p&gt;Each completed evaluation reports its &lt;code&gt;run_id&lt;/code&gt;. If the ID is no longer visible, use the following command to list previous runs and their IDs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use the following command to display the sample-level details for a specific run. Here, &lt;code&gt;run_id&lt;/code&gt; 1 refers to the SimpleQA Verified evaluation completed above.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt show 1 &lt;span class="nt"&gt;--json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use the &lt;code&gt;--json&lt;/code&gt; flag to retrieve sample-level results and execution details as structured, machine-readable output. The JSON document has three top-level fields: &lt;code&gt;run&lt;/code&gt;, &lt;code&gt;metrics&lt;/code&gt;, and &lt;code&gt;samples&lt;/code&gt;. Depending on the recorded step, a sample might include its step key, status, input hash, timestamps, stored output, error, and associated metrics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare two benchmark runs
&lt;/h2&gt;

&lt;p&gt;Many system changes can affect model behavior, including changes to prompts, datasets, code, infrastructure, and the model itself. Comparing two runs makes it possible to measure and inspect the effects of a change.&lt;/p&gt;

&lt;p&gt;Run the same &lt;code&gt;simpleqa-verified&lt;/code&gt; evaluation a second time and retain both run IDs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt run simpleqa-verified
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, the two SimpleQA Verified runs have &lt;code&gt;run_id&lt;/code&gt; values of 1 and 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt compare 1 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Comparing runs 1 and 2
                       Run 1              Run 2              Delta
Eval                   simpleqa-verified  simpleqa-verified  SAME
Status                 COMPLETE           COMPLETE
Duration               23.201s            18.720s            -4.481s
Model                  demo-builtin       demo-builtin       SAME
max_similarity         0.7409             0.7618             +0.0209
mean_similarity        0.5634             0.5647             +0.0013
median_similarity      0.56               0.56               -0.000041
min_similarity         0.4501             0.4341             -0.0161
p95_similarity         0.6387             0.6397             +0.001
p99_similarity         0.6779             0.6798             +0.0018
stdev_similarity       0.0409             0.0407             -0.000228
variance_similarity    0.0017             0.0017             -0.000019

Run 'qt compare 1 2 --json' for sample-level details
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;qt compare&lt;/code&gt; exits with status &lt;code&gt;1&lt;/code&gt; when any checked input, output, step, or aggregate metric differs, and &lt;code&gt;0&lt;/code&gt; when the runs match, which can be useful for scripts or CI jobs. It's important to remember, however, that a &lt;code&gt;1&lt;/code&gt; status means "different," and doesn't necessarily indicate that the model got worse. Even a metric improvement counts as a difference. Make sure to apply your own release policy to the JSON output and the status code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Customize the benchmark
&lt;/h2&gt;

&lt;p&gt;So far, the examples have used the default demo model and the full evaluation dataset. You can instead configure a model from a supported provider, such as OpenAI or Anthropic, and set a sample limit when you do not need to evaluate all 1,000 prompts. Provider-backed evaluations send prompts to an external service and may incur usage charges, so start with a small smoke test.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;--input&lt;/code&gt; flag
&lt;/h3&gt;

&lt;p&gt;The quickest way to customize a built-in benchmark such as SimpleQA Verified is to use &lt;code&gt;--input&lt;/code&gt; to override the model or sample limit. These overrides apply only to the current run and the value passed must be a JSON object. To reuse the settings in future SimpleQA Verified runs, add them to &lt;code&gt;quantiles.toml&lt;/code&gt; configuration file.&lt;/p&gt;

&lt;p&gt;For example, this command limits SimpleQA Verified to 10 samples while still using the built-in demo model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt run simpleqa-verified &lt;span class="nt"&gt;--input&lt;/span&gt; &lt;span class="s1"&gt;'{"limit":10}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To evaluate the same subset with a specific model, such as one from OpenAI, add the model to the JSON object and ensure that &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; is already set:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt run simpleqa-verified &lt;span class="nt"&gt;--input&lt;/span&gt; &lt;span class="s1"&gt;'{"limit":10,"model":"openai:gpt-5.6-luna"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configuration file
&lt;/h3&gt;

&lt;p&gt;You can use a configuration file when you want the same model and sample settings to apply across repeated runs. To do this, create exactly one of either &lt;code&gt;quantiles.toml&lt;/code&gt; or &lt;code&gt;.quantiles.toml&lt;/code&gt; in the directory where you run &lt;code&gt;qt&lt;/code&gt; (the CLI will throw an error if it finds both).&lt;/p&gt;

&lt;p&gt;The below &lt;code&gt;quantiles.toml&lt;/code&gt; configuration runs the first 10 SimpleQA Verified samples with an OpenAI model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[benchmarks.simpleqa-verified]&lt;/span&gt;
&lt;span class="py"&gt;samples&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="py"&gt;model&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"openai:gpt-5.6-luna"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Omit the &lt;code&gt;samples&lt;/code&gt; key from configuration if you intend to run the evaluation over its complete dataset.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quantiles loads the matching benchmark section automatically when you run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qt run simpleqa-verified
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Choose a model and configure its API key
&lt;/h3&gt;

&lt;p&gt;Quantiles currently supports four model provider prefixes. It forwards the text after the prefix as the provider's model ID, so the available models depend on the provider's current catalog and your account access. The repository examples below show identifiers that work with the current configuration format.&lt;/p&gt;

&lt;h4&gt;
  
  
  Supported providers and model ID formats
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model source&lt;/th&gt;
&lt;th&gt;
&lt;code&gt;model&lt;/code&gt; value&lt;/th&gt;
&lt;th&gt;Required environment variables&lt;/th&gt;
&lt;th&gt;Repository example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Built-in demo&lt;/td&gt;
&lt;td&gt;Omit &lt;code&gt;model&lt;/code&gt;, or use &lt;code&gt;random&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Generates random text for workflow validation only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://developers.openai.com/api/docs/models/all" rel="noopener noreferrer"&gt;OpenAI&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;openai:&amp;lt;model-id&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/quantiles-evals/quantiles/blob/main/cli/examples/configs/openai/quantiles.toml" rel="noopener noreferrer"&gt;OpenAI&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://platform.claude.com/docs/en/about-claude/models/overview" rel="noopener noreferrer"&gt;Anthropic&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;anthropic:&amp;lt;model-id&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/quantiles-evals/quantiles/blob/main/cli/examples/configs/anthropic/quantiles.toml" rel="noopener noreferrer"&gt;Anthropic&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://ai.google.dev/gemini-api/docs/models" rel="noopener noreferrer"&gt;Google Gemini&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini:&amp;lt;model-id&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/quantiles-evals/quantiles/blob/main/cli/examples/configs/gemini/quantiles.toml" rel="noopener noreferrer"&gt;Gemini&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://developers.cloudflare.com/workers-ai/models/" rel="noopener noreferrer"&gt;Cloudflare AI Gateway and Workers AI&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cloudflare_ai_gateway:&amp;lt;model-id&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CLOUDFLARE_API_KEY&lt;/code&gt;, &lt;code&gt;CLOUDFLARE_ACCOUNT_ID&lt;/code&gt;, and &lt;code&gt;CLOUDFLARE_GATEWAY_ID&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/quantiles-evals/quantiles/blob/main/cli/examples/configs/cloudflare/quantiles.toml" rel="noopener noreferrer"&gt;Cloudflare AI Gateway&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Cloudflare includes models from families such as OpenAI's gpt-oss, Llama, Mistral, Gemma, DeepSeek, Qwen, and GLM. Use the &lt;a href="https://developers.cloudflare.com/workers-ai/models/" rel="noopener noreferrer"&gt;Cloudflare model catalog&lt;/a&gt; to choose an exact model ID because availability and access can change independently of Quantiles.&lt;/p&gt;

&lt;p&gt;Keep API keys out of &lt;code&gt;quantiles.toml&lt;/code&gt;, &lt;code&gt;--input&lt;/code&gt; JSON, and source control. Quantiles reads provider credentials from environment variables, so set the variable listed in the table for the selected provider.&lt;/p&gt;

&lt;p&gt;For the OpenAI examples below, export the key in the same terminal session where you will run your &lt;code&gt;qt&lt;/code&gt; commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;your-openai-api-key&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Credentials are configured the same way whether you pass the model through a configuration file or the &lt;code&gt;--input&lt;/code&gt; flag.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Use a coding agent for evaluation workflows
&lt;/h2&gt;

&lt;p&gt;Quantiles provides an &lt;a href="https://github.com/quantiles-evals/skill" rel="noopener noreferrer"&gt;open-source agent skill&lt;/a&gt; that gives coding agents, such as Codex or Claude Code, reusable instructions for running evaluations, inspecting sample-level results, comparing runs, and recovering interrupted work with the &lt;code&gt;qt&lt;/code&gt; CLI. Run the agent from your project root so it can find your Quantiles configuration and local run history.&lt;/p&gt;

&lt;p&gt;First, ask your coding agent to install the skill:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Please install the Quantiles skill at github.com/quantiles-evals/skill
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then prompt your agent to run the SimpleQA Verified benchmark with the demo model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Run the simpleqa-verified benchmark and summarize the results.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you are ready to evaluate your model, replace the placeholder in the following prompt and run a small smoke test to verify the model configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Run 10 samples of the simpleqa-verified benchmark using &amp;lt;model provider and model_id&amp;gt;. Confirm that the required provider credentials are available without showing their values; if they are not, stop and tell me what is missing. When finished, summarize the results. Do not run the evaluation until I confirm.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After you have two comparable runs, ask the agent to analyze the change:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Compare the two most recent runs for 'simpleqa-verified'. Summarize the aggregate metrics, sample-level results, failures, and any notable errors. Identify the highest-impact issues to review first, and recommend specific next steps.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Limitations and reproducibility
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The built-in demo model generates random, unseeded text. Run IDs, timings, responses, and similarity values will differ between runs, and none of these results should be interpreted as evidence of model quality.&lt;/li&gt;
&lt;li&gt;SimpleQA Verified is designed to test answers produced without web search or external tools. When evaluating a model, disable tool access so the run measures the intended task. A coding agent can orchestrate the evaluation workflow, but it should not use tools to answer the benchmark questions.&lt;/li&gt;
&lt;li&gt;The first run with a new dataset requires network access to load dataset metadata and any uncached rows. The &lt;code&gt;qt&lt;/code&gt; CLI uses the default Hugging Face revision, so be sure to record the dataset repository, configuration, split, and revision in your configuration file when strict reproduction matters.&lt;/li&gt;
&lt;li&gt;Model evaluations send prompts to an external service and may incur usage charges. Provider availability and behavior can also change independently of Quantiles.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The Quantiles stack provides a structured, local-first system for running, analyzing, comparing, and reproducing AI evaluations. You can use the built-in demo model to verify that your workflow is configured correctly, then switch to a model from a supported provider (e.g., OpenAI or Anthropic) with a fixed configuration to evaluate real model behavior consistently. Since running evaluations, analyzing results, and comparing runs all use the same CLI, the entire process can be carried out through your preferred coding agent.&lt;/p&gt;

&lt;p&gt;If you’d like your benchmark included in Quantiles so others can run it with a single command, submit a request through the &lt;a href="https://github.com/quantiles-evals/quantiles/issues" rel="noopener noreferrer"&gt;Quantiles issue tracker&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation and references
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://quantiles.io" rel="noopener noreferrer"&gt;Quantiles&lt;/a&gt; - overview of the local-first AI evaluation platform&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://quantiles.io/documentation" rel="noopener noreferrer"&gt;Quantiles documentation&lt;/a&gt; - installation, configuration, CLI, SDK, and evaluation workflow guides&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/quantiles-evals/quantiles" rel="noopener noreferrer"&gt;Quantiles GitHub repository&lt;/a&gt; - source code, examples, releases, and issue tracker&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/quantiles-evals/skill" rel="noopener noreferrer"&gt;Quantiles agent skill repository&lt;/a&gt; - reusable instructions and installation files for coding-agent evaluation workflows&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
      <category>opensource</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
