← All posts

OmniCodex: adaptive orchestration for OpenAI Codex

How OmniCodex separates orchestration from execution to route each phase to a suitable model without lowering the task quality bar.

OmniCodex is an experimental model-routing and multi-agent orchestration layer for OpenAI Codex. Its premise is simple: keep planning, risk and acceptance criteria in the control plane while routing bounded work to the most suitable worker.

Use the right intelligence, at the right time.

The project is an experimental public preview. It does not promise subscription savings, and it never lowers tests, security or requirements to reduce usage.

Why orchestration and execution are separate

Not every phase needs the same kind of reasoning. Locating a function, implementing a known change and reviewing an architectural decision carry different costs and risks. OmniCodex classifies each phase and aims to use the least expensive model that can still complete it well.

  • Luna handles narrow research and repeatable work.
  • Terra covers normal exploration and implementation.
  • Sol handles architecture, review and difficult debugging.
  • Astra is reserved for exceptional blockers or critical risk.

Worker selection does not transfer final responsibility: the orchestrator remains accountable for context, acceptance and verification.

Available profiles

Profile Orchestrator Policy summary
economy Terra / Medium Luna and Terra first; escalates consequential work
balanced Sol / Medium Recommended balance between control and delegation
quality Sol / High More depth for review and execution
max Astra / High Stronger control plane for justified situations

Auto is not a fifth static profile. It preserves the current session’s parent model and selects workers by phase. Enabling Auto therefore does not silently replace the model of an already-running conversation.

Local installation

The current preview requires Python 3.11 or newer and a compatible Codex CLI. Review the repository and run the tests before installing:

git clone https://github.com/MoroniGL/Omnicodex.git
cd Omnicodex
python3 -m unittest discover -s tests -v
python3 scripts/install.py

The installer adds profiles, agents and OmniCodex skill files to CODEX_HOME. It preserves the base config.toml, checks for conflicts and backs up replaced files. Optional MCP servers are not installed or registered automatically.

Since this article was first published, main has started rejecting symlinks in both the manifest directory and manifest file before any backup or write. Regression coverage was added in PR #5. This protection does not make the whole installation transactional: automatic recovery and rollback after interruption remain pending.

Starting with Balanced

Balanced is the recommended starting point. It requests Sol with Medium reasoning for the parent and uses Luna or Terra for bounded work:

codex --strict-config -p omnicodex-balanced

Inside the new session, ask explicitly for dynamic routing when it is useful:

Use OmniCodex Auto for this task: describe the objective and acceptance criteria here.

Profiles do not change a task that is already open in Desktop or an IDE. Start a new session with the desired profile when you need a different control plane.

Evidence and limitations

In the latest local test, a persisted Balanced session recorded Sol/Medium in the parent and Luna/Low and Terra/Medium in sequential children. Those values came from local Codex records; they are not independent attestation of the model actually served by the provider.

The project also documents its current limits: optional context integrations still require separate configuration, quality and savings comparisons remain under evaluation, and routing does not replace human review or project gates.

Compact inter-agent responses, diagnostics and simulation reduce repetition and context pressure, but they are not a subscription-quota controller. Context Mode and codebase-memory-mcp have integration instructions; providers are not installed automatically and real-world validation remains pending. RTK, persistent memory, effective budget control and GPT-6 Sol/Luna profiles are still roadmap items.

There is also an important branch-versus-package distinction: main contains the symlink fix, while the latest release, v0.1.0-alpha.1, points to a commit from before PR #5. To assess the fix today, review the main branch; do not assume that release artifact already contains it.

Code and documentation

The source, installer, routing policy, architecture decisions and known limitations are public.

View the code on GitHub


Published by MoroniGL.dev. The audit that informed the installer improvement evaluated free materials from Flux Growth Agency; no external package was incorporated into OmniCodex.

← All posts