Skip to main content
Run your first GEPA Omni optimization in under ten minutes. This walks you from install through a preflight-checked run against your own evaluator.

Prerequisites

  • Python 3.10 or newer.
  • uv if you plan to develop against the repository.
  • An OpenAI-compatible Chat Completions endpoint and API key.

1. Install the plugin

Add the GitHub repository as a Codex marketplace, then install the fleet-optimize plugin. It ships both gepa-omni-skill and fleet-optimize-skill:
Start a new Codex task after installation so the skills load.

2. Install the Python package

To call GEPA Omni from your own application, install the gepa-omni package from a repository checkout. The plugin does not install it for you:
The package declares the validated upstream GEPA Git revision as a dependency.

3. Configure the endpoint

Set the base URL and model for an OpenAI-compatible Chat Completions endpoint:
OPENAI_API_KEY is used only for the official api.openai.com host. For any other provider, keep OPENAI_BASE_URL and OPENAI_MODEL, and supply the key through GEPA_OMNI_API_KEY (or set GEPA_OMNI_API_KEY_ENV to the name of a provider-specific variable). See Providers and endpoint security. OPENAI_MODEL is authoritative for every engine. The skill never asks for an API key in chat. If a model or base URL is missing, it asks once and applies the answer to the current process only.

4. Run preflight

Preflight validates configuration and the native runtime without sending a prompt. Run it before every live run:
For a cost-capped fixed portfolio, also pass the cap and both token rates:
Pass --test-lm only if you explicitly want to exercise the endpoint with a single call.

5. Write an evaluator

The evaluator is where nearly all of the quality comes from. Return a higher-is-better score and a feedback-rich info dict:
See Writing evaluators for judge-based scoring, batching, stochastic averaging, and multi-objective scoring.

6. Launch

Call optimize with an OmniConfig. The default auto strategy pilots eligible engines and continues with the best one:
Set max_evals, max_token_cost, or both. A token cap also needs input_cost_per_million and output_cost_per_million. Keep run_dir and output_dir absolute and outside the checkout; when omitted, temporary directories are created. Use strategy="gepa" for a predictable standalone run, or strategy="omni" for the fixed portfolio. omni requires the plugin runtime and raises a RuntimeError from a package-only install.

7. Read the result

optimize returns a result with best_candidate, best_score, total_evals, metadata, and the engine-specific raw result. When test_set is supplied, the held-out report is in metadata["heldout_score"] and metadata["heldout_scores"] (also exposed as test_score and test_scores). With auto, metadata["auto"] records the pilot engines, pilot scores, seed score, and chosen continuation. Report the held-out score separately from the selection score.

Next steps

  • Fleet Optimize: parallel P×N proposals on the latest upstream GEPA.
  • Omni workflow: the fixed portfolio and the adaptive auto strategy.
  • Engines and backends: GEPA, AutoResearch, Meta-Harness, Best-of-N, and provider security.
  • Writing evaluators: feedback-rich info, judges, batching, and stochastic averaging.
  • API reference: the gepa_omni package and direct upstream contracts.
  • Gotchas: reward hacking, selection bias, and budget sizing.
Last modified on November 8, 2026