Prerequisites
- Python 3.10 or newer.
uvif you plan to develop against the repository.- An OpenAI-compatible Chat Completions endpoint and API key.
- The published
gepa[full]==0.1.4environment for the reflective GEPA engine.
1. Install the plugin
Add the GitHub repository as a Codex marketplace, then install the plugin:2. Configure the endpoint
All engines share the same OpenAI-compatible Chat Completions API. Set the three variables before launching:OPENAI_MODEL is authoritative for every engine and every branch of the Omni workflow. The plugin never asks for an API key in chat — configure it through the environment or a secret manager. If a model or base URL is missing, the interactive skill asks once and applies the answer to the current process only.
3. Run preflight
Preflight validates configuration and the native runtime without sending a prompt. Run it before every live Omni run:--test-lm only if you explicitly want to exercise the endpoint with a single call.
4. Write an evaluator
The evaluator is where nearly all of the quality comes from. Return a higher-is-better score and a feedback-richinfo dict:
5. Launch Omni
Use the plugin wrapperrun_omni() for the default two-phase workflow:
max_evals and/or max_token_cost is required. When max_evals is the only bound, provide at least four evaluations so every phase receives a positive slice.
Keep both run_dir and output_dir absolute and outside the checkout.
6. Read the result
Omni returns the best Phase 1 candidate handed to a fresh Phase 2 continuation, the selection score, and — whentask["test_set"] is supplied — a held-out report in metadata["test_score"] and metadata["test_scores"].
Report the wrapper’s held-out result separately from the selection score. The direct PyPI optimize_anything() signature has no test_set argument and does not produce held-out metadata.
Next steps
- Omni workflow — phases, budget partitioning, and continuation choices.
- Engines and backends — GEPA, AutoResearch, Meta-Harness, and Best-of-N.
- Writing evaluators — feedback-rich
info, judges, batching, and stochastic averaging. - API reference — direct PyPI vs. plugin wrapper contracts.
- Gotchas — reward hacking, selection bias, and budget sizing.